前言:本文章为FPGA问答系列,我们会定期整理FPGA交流群(包括其他FPGA博主的群)里面有价值的问题,并汇总成文章,一方面是希望能帮到不经常看群消息的小伙伴,另一方面也算是我们的技术积累。
Q:为什么DDR3/4不需要设置input delay和output delay?
A:有大概下面几个原因:
- 内置校准: DDR3和DDR4控制器通常具有内置的校准机制,如ODT (On-Die Termination)、ZQ校准和DLL (Delay Locked Loop)。这些机制可以自动调整驱动和接收电路的特性,以优化信号完整性和时序。
- Read and Write Leveling: 这是一个过程,通过它,控制器可以自动调整数据线与时钟之间的相位关系,以确保数据在正确的时钟边缘被采样或输出。
- Training Algorithms: DDR3和DDR4控制器包含一系列的训练算法,如write leveling、gate training、read training等,这些算法在上电初始化期间自动运行,以优化数据和时钟之间的时序关系。
- DLL和PLL: 这些是用于调整和同步时钟的电路。它们确保了内部时钟与外部时钟的正确对齐,从而消除了手动设置输入/输出延迟的需要。
- 自适应接口: 许多现代的DDR3和DDR4控制器设计具有自适应功能,可以在运行时自动调整时序参数,以适应温度、电压和其他工作条件的变化。
Q:在dds compiler设置动态范围为96的时候输出信号位宽是16bit,差不多是6倍的关系。但是设置动态范围为144时输出信号位宽是25bit,两者又不是6倍的关系了,为什么会出现这种情况?
A:DDS的动态范围计算公式为:动态范围 (dB)=6.02×位宽 (bits) 1.76,所以动态范围跟位宽是线性关系,这样算的话,144dB的动态,只需要24bit就够了;但DDS中可以选择是否加扰,如果位宽很大,加扰是必须要选的,这样会导致位宽的增大,所以144dB的动态需要25bit。
FPGA问答系列
- FPGA问答系列--FPGA中Bank和Clock Region之前有什么关系?
- FPGA问答系列--Vivado Schematic中的实线和虚线有什么区别?
- FPGA问答系列--clock skew是影响时序收敛吗?
- Vivado中SmartConnect和InterConnect的区别?