一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

DDR4接口数据交错走线的识别与重映射方法与流程

2022-04-27 02:40:50 来源:中国专利 TAG:

ddr4接口数据交错走线的识别与重映射方法
技术领域
1.本发明涉及芯片技术领域,尤其涉及一种ddr4接口数据交错走线的识别与重映射方法。


背景技术:

2.ddr是目前最常见的内存接口,而绝大多数芯片都需要用到内存,尤其是soc芯片。soc芯片内通常需要集成一个ddrphy(double data rate physical interface),将内部数字信号进行模拟调制为pcb板上的高速信号后与dram颗粒存取数据。ddr作为世界最通用的技术协议家族之一,经过几十年发展,从低速到高速依次发展ddr1/ddr2/ddr3/ddr4/ddr5,以及其他衍生类lpddr/gddr/hbm/等协议。
3.ddr4接口总体分为两类信号——ca(控制)信号传递命令/地址与dq/dm/dqs(数据)等信号传递数据。
4.dq总的位宽决定了整个芯片数据总线位宽;在pcb板上需要对面有相匹配位宽的dram颗粒来拼接。dram颗粒有三种位宽规格——x4、x8、x16,ddr接口总线位宽设计为16bit,如果用x16的dram颗粒,只需要一颗,如图6;如果用x8的dram颗粒,则需要两颗,如图7;如果用x4的颗粒,则需要4颗。pcb板上布局连接soc芯片与ddr颗粒的时候,必须要保证ca信号间的一一对应,但是很难做到dq间一一对应(即ddrphy dq0连接dram dq0;ddrphy dqn连接dram dqn等),经常会出现ddrphy dqn连接到dram dqm的现象,如图8。
5.ddrphy与dram颗粒间的dq信号被dqs高速双沿采样并行传输,如ddr4协议规定速率就到了1600mbps~3200mbps。由于芯片内跟pcb上的走线差异,dq与dm与dqs等电信号间在传递到接收方时会出现mismatch。每次上电开始工作,ddrphy都会做training(训练),调整ddrphy内部dq/dm与dqs等信号的tx/rx delayline(延迟线);使dq与dm与dqs等电信号间在传递到接收方时都互相match,dq/dm被dqs正确采样到中心点。其中有两个非常重要的training—分别是read training跟write training。
6.第一种常用也非常经典的read training方式是ddrphy从dram颗粒中读取mpr寄存器中预存的testpattern(测试码型),跟内部产生的校对用的testpattern做对比,然后逐bit调整内部dq/dm/dqs rx delayline,找到对比测试通过的左右边界,并记录,最后取中间值。做完read training,保证读没问题后,ddrphy才能做write training,即写自定义的随机pattern到dram颗粒,然后再读回来,检查数据是否匹配,再逐bit调整内部dq/dm/dqs tx delayline找到对比测试通过的左右边界,并记录,最后取中间值。这里的read training读数据一定要放在write training写数据前面;而这里read training可以通过是基于两个前提;一个是dram颗粒跟ddrphy内的testpattern一致,第二个是ddrphy dqn与dram dqn之间一一对应映射。第一个前提基于ddrn协议的规定,肯定是一致的,但是第二个前提由于前面提到pcb板dq间布线的复杂性,经常得不到满足;所以这个问题也经常导致ddr接口调试时间的耽误。
7.第二种read training是先降频,保证将自定义的testpattern完全正确写入dram
颗粒,然后再升频,将刚刚写入的testpattern读取回来做read training。这样虽然ddrphy与dram dq间也许有交错映射,但是一写一读,负负得正,所以写读数据是匹配的,可以互为对比。不过本来training的作用就是为了保证正确的读写,这种training前要保证正确的写入数据的操作复杂,且是有风险的。所以其实上面第一种read training会更简单可靠些,但是怎么解决其遇到的dq间remap问题呢?
8.针对上面说到的第一种read training遇见的pcb板上dq间remap问题,一般ddrphy会提供解决方案——通过寄存器配置把ddrphy dq remap,比如把内部dqn pad remap重映射为dqm。这样经过芯片内部的remap可以把pcb板上dq间的错配给纠正过来。但是这个方案仍然有一个缺点:就是需要预先知道pcb板上dq间映射情况。作为芯片开发商,提供一整套打包好的芯片加软件解决方案给到设备厂家客户,客户会自己设计pcb电路;在pcb布线时我们soc芯片的ddr接口dq信号线跟dram dq信号线的连接经常会出现不可预知的交错映射情况。这样芯片产品在交付不同客户,交付不同产品时都需要定制化修改下ddr dq remap参数,增加了人力成本与使用成本。


技术实现要素:

9.本发明提供了一种ddr4接口数据交错走线的识别与重映射方法,可以自动识别ddrphy与dram颗粒的ddr4接口dq间交错连接情况,并自动配置寄存器remap重映射ddrphy内dq。
10.为了实现本发明的目的,所采用的技术方案是:ddr4接口数据交错走线的识别与重映射方法,包括如下步骤:
11.1)ddrphy的数据线与dram的数据线相连;
12.2)ddrphy的控制线与dram的控制线一一对应相连,ddrphy通过控制线向dram的mpr寄存器配置独热码;
13.3)ddrphy再通过数据线把dram的mpr寄存器里面的独热码读回来,从而识别ddrphy与dram的数据映射关系。
14.作为本发明的优化方案,独热码为0x1、0x2、0x4、0x8、0x10、0x20、0x40、0x80中的一种或几种组合。
15.作为本发明的优化方案,ddrphy通过数据线把dram的mpr寄存器里面的独热码读回来时采用的是并行读取方式。
16.作为本发明的优化方案,ddrphy读独热码时,以中间几个dqs为时钟沿采回来的dq数据为准。
17.本发明具有积极的效果:1)本发明增加自动识与校正ddrphy跟dram之间交错映射的解决方案,使得该方案既简单可靠,又方便pcb板上ddrphy跟dram颗粒之间dq走线;
18.2)本发明使用并列读取方式,保证读取的数据不会翻转。
附图说明
19.下面结合附图和具体实施方式对本发明作进一步详细的说明。
20.图1是发明的方法的流程图;
21.图2和3是本发明方法具体实施流程图;
22.图4是本发明以parallel方式读mpr寄存器示意图;
23.图5是本发明以parallel方式读mpr寄存器时,截取数据示意图;
24.图6是ddr接口16bit位宽对接x16dram连接示意图;
25.图7是ddr接口16bit位宽对接x8dram连接示意图;
26.图8是ddrphy与dram颗粒之间交错连接情况,左边为dram侧,右边是ddrphy侧连接示意图。
具体实施方式
27.如图1所示,本发明公开了一种ddr4接口数据交错走线的识别与重映射方法,包括如下步骤:
28.1)ddrphy的数据线与dram的数据线相连;
29.2)ddrphy的控制线与dram的控制线一一对应相连,ddrphy通过控制线向dram的mpr寄存器配置独热码;
30.3)ddrphy再通过数据线把dram的mpr寄存器里面的独热码读回来,从而识别ddrphy与dram的数据映射关系。
31.独热码为0x1、0x2、0x4、0x8、0x10、0x20、0x40、0x80中的一种或几种组合。
32.ddrphy通过数据线把dram的mpr寄存器里面的独热码读回来时采用的是并行读取方式。
33.ddrphy读独热码时,以中间几个dqs为时钟沿采回来的dq数据为准,以保证数据绝对正确;这里不同芯片设计方案取法可能会有差异。本实施例中dfi接口(ddrphy与芯片内部dmc模块的内部数据标准接口)数据位宽为64bit,ddr4数据位宽为16bit;bl8读一次独热码,会有连续的8个dqs沿采dq数据,总共会有8*16=128bit数据以两拍的方式传到dfi数据接口上;截取出来的dfi接口不同位域数据即对应于不同dqs采到的数据。因为还没做读写training,直接读dram中mpr可能会出错,通过这一点可以保证读到正确的独热码。其中,bl8即burst length(突发长度)为8;ddr4默认以bl8为最基本的读写操作模式;即dq会连续的出现8拍数据,被dqs连续的4个上升沿跟4个下降沿交替采样。
34.本发明可以自动识别ddrphy与dram颗粒的ddr4接口dq间交错连接情况,并自动配置寄存器remap重映射ddrphy内dq,各个厂商不同的ddrphy ip都会有自己的寄存器可配置重映射dq的映射关系,具体执行时先识别出映射关系后,再配置寄存器重映射下以纠正过来。
35.实施例:
36.如图2和图3所示,正常初始化流程,完成wl、rxdqs_gat training后,可以保证后面更加容易正确的读到dram里的独热码,mr3是dram中的模式寄存器,然后通过控制信号依次往dram写独热码,接着依次通过数据信号以并行的方式把独热码读出来,依次识别ddrphy跟dram在pcb板上的数据连接关系,然后配置寄存器重映射纠正过来,最后完成经典可靠的读写training。注意,以并行方式读dram的mpr寄存器时,在一个bl8中,dq值是固定的,不会出现翻转,可以八次读出dq同样的值;而我们又是取的中间dqs沿采到dq,所以可以保证在没有做read training的前提下正确读出dq的值,如图4和5所示。ddrphy2dram_remap(m,n)即配置ddrphy寄存器,把ddrphy的dqm映射为dqn,确认dq映射关系后,恢复mpr
寄存器默认值。
37.本发明创造本质上是通过ca信号线往dram颗粒里page0mpr寄存器写入特定码型独热码(ca线之间不会交错连接),然后通过dq按照parallel方式读回来mpr寄存器中的独热码,这里巧妙点在于,parallel读方式可以保证读回来的bl8内,dq不会翻转,如图4;理论上在bl8读中,dqs八个沿都会采到同样的dq码型;我们要截取中间几个dqs沿采到的dq独热码来分析ddrphy跟dram之间的dq映射关系(如图5),这也是整个专利在read training前正确读取dram颗粒dq码型具有可实施的关键点。本发明可迁移到其它类ddr协议。
38.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献