为什么DDR3/4不需要设置input delay和output delay?

前言:本文章为FPGA问答系列,我们会定期整理FPGA交流群(包括其他FPGA博主的群)里面有价值的问题,并汇总成文章,一方面是希望能帮到不经常看群消息的小伙伴,另一方面也算是我们的技术积累。

Q:为什么DDR3/4不需要设置input delay和output delay?

A:有大概下面几个原因:

1. 内置校准: DDR3和DDR4控制器通常具有内置的校准机制,如ODT (On-Die Termination)、ZQ校准和DLL (Delay Locked Loop)。这些机制可以自动调整驱动和接收电路的特性,以优化信号完整性和时序。

2. Read and Write Leveling: 这是一个过程,通过它,控制器可以自动调整数据线与时钟之间的相位关系,以确保数据在正确的时钟边缘被采样或输出。

3. Training Algorithms: DDR3和DDR4控制器包含一系列的训练算法,如write leveling、gate training、read training等,这些算法在上电初始化期间自动运行,以优化数据和时钟之间的时序关系。

4. DLL和PLL: 这些是用于调整和同步时钟的电路。它们确保了内部时钟与外部时钟的正确对齐,从而消除了手动设置输入/输出延迟的需要。

5. 自适应接口: 许多现代的DDR3和DDR4控制器设计具有自适应功能,可以在运行时自动调整时序参数,以适应温度、电压和其他工作条件的变化。

Q:在dds compiler设置动态范围为96的时候输出信号位宽是16bit,差不多是6倍的关系。但是设置动态范围为144时输出信号位宽是25bit,两者又不是6倍的关系了,为什么会出现这种情况?

A:DDS的动态范围计算公式为:动态范围 (dB)=6.02×位宽 (bits)+1.76,所以动态范围跟位宽是线性关系,这样算的话,144dB的动态,只需要24bit就够了;但DDS中可以选择是否加扰,如果位宽很大,加扰是必须要选的,这样会导致位宽的增大,所以144dB的动态需要25bit。

本文转载自: 傅里叶的猫微信公众号

最新文章

最新文章