赛灵思
直播中

孙瑞军

7年用户 222经验值
私信 关注
[问答]

在virtex-6中添加几纳秒延迟的最佳方法是什么?

嗨,
我正在尝试在我的设计中添加DDR SDRAM接口。
接口规范表明dqs信号应延迟约1/4时钟周期。
在我的设计中,内存时钟(mclk)为12MHz。
那么在virtex-6中添加几纳秒延迟的最佳方法是什么?
1.为每个dq添加BUF?
但是,BUF的信号会被延迟多少?
2.将IODELAYE1添加到每个dqs?
如果我有200MHz参考时钟,延迟会是什么?
数据表显示“T_IDELAYRESOLUtiON = 1 /(32 x 2 x F_REF)ps”
但如果延迟只有几ps,那么它太小而无意义。

回帖(3)

余婧

2020-6-8 09:21:29
嗨,
由于您的设计内存时钟为12MHz,我认为您可以使用更高的频率来生成延迟信号。
如果使用IODelay,则只能实现72ps * 64(tap)=约5 ns的延迟。
如果你同时使用更高频率的计数器和IOdelay,它就足以产生延迟信号。
希望可以帮到你。
最好的祝愿,
乔纳森
举报

陈蓓萤

2020-6-8 09:30:07
对于现代FPGA,12MHz相对较慢。
首先,我将使用Xilinx提供的工具之一为您创建此接口。
重新发明轮子没有任何意义,除非您的应用程序有特殊要求。
如果计划使用内部处理器访问此内存,请使用多端口内存控制(MPMC)。
否则,请使用存储器接口生成器(MIG)。
您可以使用PLL来合成频率为4倍的另一个时钟,并在每个输入上实现移位寄存器。
如果您在第一个换档阶段轻敲输出,您将获得1/4周期延迟。
如果您点击第2个,您将获得1/2周期等。如果您的FPGA设备包含SRL,您可以使用相对较少的硅来实现。
如果您尝试以超过12MHz的速度驱动设计,如果您没有LOC这些输入寄存器/ SRL,则可能会遇到网络偏斜问题。
即使净延迟为2ns,也不到时钟周期的15%,并且可能在1/4周期延迟的误差范围内。
或者,如果您使用的是具有它们的设备,请使用内置于ISERDES块的移位寄存器。
您可以使用IODELAY和IOSERDES组件的组合创建一个非常强大的运行时自适应解决方案。
举报

杨玲

2020-6-8 09:47:36
kkt77写道:
嗨,
我正在尝试在我的设计中添加DDR SDRAM接口。
在我的设计中,内存时钟(mclk)为12MHz。
1)查看存储器部件数据表。
我知道没有可以运行的SDRAM
低于66 MHz的时钟。
2)如果您使用的部件可能以某种方式以12 MHz运行,那么您实际上并不需要1/4
时钟周期延迟。
这是为了使采样点在数据窗口中居中,但是因为
您在12 MHz的数据窗口是巨大的,您只需要足够的延迟就足够了
在采样触发器处设置和保持时间。
IODELAY组件应该是
能够弥补这么多延迟,但正如所指出的那样,运行起来可能更容易
2倍甚至4倍时钟。
问候,
的Gabor
- Gabor
举报

更多回帖

发帖
×
20
完善资料,
赚取积分