我正在设计一个与USB芯片通信的ULPI接口。
但是我遇到了一些关于时间限制的问题。
数据在时钟的上升沿输出,并在下降沿采样。
我可以看到(使用Post-Route)从时钟上升沿到数据输出有大约6 is的“最佳情况下可实现的延迟”是有效的。
如果我想要一个较小的延迟,我是否应该重写我的代码,例如延迟我的时钟,直到上升沿适合数据?
我知道上面的解决方案可能不是很好,因为它将是fpga设备和路由的依赖…但是还有什么其他的选择呢?
发布于 2012-08-21 19:34:12
您的数据输出寄存器是否打包为IO寄存器?UCF中的约束是:INST "some_ff" IOB = TRUE;,或者,您可以使用映射选项-pr b,它会将输入和输出(两者)打包到io寄存器中。
这有两个效果:
编辑:上述建议适用于Xilinx工具链。其他供应商可能具有类似的体系结构,但调用该选项所需的参数/控件有所不同。
发布于 2012-08-21 20:12:28
假设Xilinx设备:
使用FPGA编辑器检查触发器的位置。有时,如果它们是从非顶级块推断出来的,即使UCF和选项被设置为应该如此,工具也不会将它们打包到IOB中。
作为一种解决方法,在顶层添加额外的一层人字拖可能会有所帮助。或者,您可以实例化一个ODDR2块来强制执行该问题,并将两个数据输入连接到相同的内部信号。
https://stackoverflow.com/questions/12051020
复制相似问题