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