仿真通道如上图所示,驱动端和接收端为某芯片公司的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。大家会发现裕量很大,当然这只是最理想情况,没有考虑时钟抖动以及数据信号的抖动,以及串扰、码间干扰带来的影响,如果把这些因素都考虑进来,留给我们布线偏差的裕量就比较小了。
综上所述,时序控制的目的就是要保证数据在接收端有充足的建立时间与保持时间,明白了这一点,我们在线长匹配这个问题上就能做到胸有成竹,游刃有余了。
仿真通道如上图所示,驱动端和接收端为某芯片公司的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。大家会发现裕量很大,当然这只是最理想情况,没有考虑时钟抖动以及数据信号的抖动,以及串扰、码间干扰带来的影响,如果把这些因素都考虑进来,留给我们布线偏差的裕量就比较小了。
综上所述,时序控制的目的就是要保证数据在接收端有充足的建立时间与保持时间,明白了这一点,我们在线长匹配这个问题上就能做到胸有成竹,游刃有余了。
举报