时间限制

时间:2012-08-21 08:36:35

标签: fpga

我正在设计一个用于与USB芯片通信的ULPI接口 但是我遇到了一些关于时序约束的问题。

数据在时钟的上升沿输出,在下降沿采样。

我可以看到(使用Post-Route)大约有6ns"最佳案例可实现的延迟"从时钟上升沿到数据输出有效。

如果我想要一个较小的延迟,我应该重写我的代码,例如延迟我的时钟,直到上升沿适合数据输出?

我知道上面的解决方案可能并不好,因为它将同时依赖于fpga设备和路由......但还有其他选择吗?

2 个答案:

答案 0 :(得分:2)

您的数据输出寄存器是否已打包到IO寄存器中? UCF中的约束是:INST "some_ff" IOB = TRUE; 或者,您可以使用映射选项-pr b将输入和输出([b])打包到io寄存器中。

这有两个影响:

  1. 锁定IO引脚与FF的第一个/最后一个D / Q引脚之间的时序(构建一致性)
  2. 最大限度地提高时钟输出性能(无法使Q更接近输出引脚)。
  3. 编辑:上述建议适用于Xilinx工具链。其他供应商可能具有类似的架构,但调用该选项所需的参数/控件不同。

答案 1 :(得分:1)

假设Xilinx设备:

用FPGA编辑器检查触发器的位置。有时,如果从非顶级块推断出它们,则工具不会将它们打包到IOB中,即使UCF和选项设置为它们应该是。

作为一种解决方法,在顶层添加一层额外的触发器可以提供帮助。或者您可以实例化ODDR2块以强制解决问题,并将两个数据输入连接到相同的内部信号。