将逻辑从控制管脚推送到数据管脚 - 2023.2 简体中文

适用于 FPGA 和 SoC 的 UltraFast 设计方法指南 (UG949)

Document ID
UG949
Release Date
2023-11-29
Version
2023.2 简体中文

分析关键路径期间,您可能会发现有多条路径止于控制管脚。您必须对这些路径进行分析,以判定是否能够将逻辑推送到数据路径中,同时避免发生惩罚(例如,额外的逻辑层次)。相同逻辑层次的前提下,相比于指向 CE/R/S 管脚的路径,指向 D 管脚的路径的延迟较小,因为从最后一个 LUT 的输出到 FF 的 D 输入之间存在直接连接。以下编码示例显示了如何将逻辑从控制管脚推送到寄存器的数据管脚。

在以下示例中,dout_reg[0] 的使能管脚的逻辑层次数为 2,而数据管脚的逻辑层次数则为 0。在此情况下,您可通过将使能逻辑移至 D 管脚来改进时序,方法是在 RTL 文件中的 dout 寄存器定义上将 EXTRACT_ENABLE 属性设置为“no”。

图 1. 止于寄存器控制管脚(使能)的关键路径

以下示例显示了如何拆分组合逻辑和顺序逻辑以及如何将完整逻辑映射到数据路径中。这将把逻辑推送到仍含 2 个逻辑层次的 D 管脚中。

您可通过将 EXTRACT_ENABLE 属性设置为“no”来实现相同的结构。如需了解有关 EXTRACT_ENABLE 属性的更多信息,请访问此链接以参阅 Vivado Design Suite 用户指南:综合(UG901) 中的相应内容。

图 2. 止于寄存器的数据管脚(禁用使能提取)的关键路径