首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

DDR布线举足轻重,一文看懂背后的大学问

DDR布线举足轻重,一文看懂背后的大学问

DDR布线在PCB设计中占有举足轻重的地位,设计成功的关键就是要保证系统有充足的时序裕量。要保证系统的时序,线长匹配又是一个重要的环节。我们来回顾一下,DDR布线,线长匹配的基本原则是:地址,控制/命令信号与时钟做等长。数据信号与DQS做等长。为啥要做等长?大家会说是要让同组信号同时到达接收端,好让接收芯片能够同时处理这些信号。那么,时钟信号和地址同时到达接收端,波形的对应关系是什么样的呢?我们通过仿真来看一下具体波形。

由上图可知,在地址信号比时钟信号长的情况下,保持时间为684ps,建立越为1.1ns。可见,相对于地址线与时钟线等长来说,地址线比时钟线长会使地址信号的建立时间更短。同理,如果时钟线比地址线长,则建立时间会变长,而保持时间会变短。那么双倍速率的数据信号又是怎样的?下面通过具体的仿真实例来看一下。




图5 DQ 与 DQS仿真示意



仿真通道如上图所示,驱动端和接收端为某芯片公司的IBIS模型,仿真波形如下:




图6 DQ与DQS仿真波形



我们将DQS和DQ信号同时生成眼图,在一个窗口下观测,结果如下:




图7 DQ与DQS眼图



如上图所示,大家可能发现了,如果按照原始对应关系,数据信号的边沿和时钟信号的边沿是对齐的,如果是这样,时钟信号怎样完成对数据信号的采样呢?实际上并不是这样的。以上仿真只是简单的将两波形放在了一起,因为DQ和DQS的传输通道长度是一样的,所以他们的边沿是对齐的。实际工作的时候,主控芯片会有一个调节机制。一般数据信号会比DQS提前四分之一周期被释放出来,实际上,在颗粒端接收到的波形对应关系应该是这样的:




图8 平移后的眼图



通过主控芯片的调节之后,DQS的边沿就和DQ信号位的中心对齐了,这样就能保证数据在传输到接收端有足够的建立时间与保持时间。和上面分析时钟与地址信号一样,如果DQ与DQS之间等长做的不好,DQS的时钟边沿就不会保持在DQ的中间位置,这样建立时间或者保持时间的裕量就会变小。先简单的来看一张图




图9 延时偏差对时序的影响



上图中,T_vb与T_va表示的是主控芯片在输出数据时时钟与数据之间的时序参数。在理想情况下,时钟边沿和数据电平的中心是对齐的,由于时钟和数据传输通道不等长,使得时钟边沿没有和数据脉冲的中间位置对其,使得建立时间的裕量变小。在理解了这些基础问题之后,我们需要做的就是将这些时间参数转化为线长。



下面我们通过具体实例来看看时序的计算,下图是Freescale MPC8572  DDR主控芯片手册,这张图片定义了从芯片出来的时候,DQS与DQ之间的相位关系。




图10 MPC8572时序图




图11 MPC8572时序参数



颗粒端为美光DDR,该芯片的时序图以及时序参数如下图所示,这张图片则定义了颗粒端芯片识别信号所需要的建立时间与保持时间。




图12 DDR颗粒时序图以及时序参数



我们用T_pcbskew来表示DQ与DQS之间的延时偏差,如果想要得到足够的时序裕量,则延时偏差要满足以下关系:



T_pcbskew《T_vb-T_setup



T_pcbskew》T_hold-T_va



代入数据,有:



T_vb-T_setup=375-215=160ps



T_hold-T_va=-160ps



这样,如果传输线的速度按照6mil/ps来计算,T_pcbskew为+/-960mil。大家会发现裕量很大,当然这只是最理想情况,没有考虑时钟抖动以及数据信号的抖动,以及串扰、码间干扰带来的影响,如果把这些因素都考虑进来,留给我们布线偏差的裕量就比较小了。



综上所述,时序控制的目的就是要保证数据在接收端有充足的建立时间与保持时间,明白了这一点,我们在线长匹配这个问题上就能做到胸有成竹,游刃有余了。

返回列表