改进 RAMB 输出上的关键逻辑 - 2023.2 简体中文

Vivado Design Suite 用户指南: 设计分析与收敛技巧 (UG906)

Document ID
UG906
Release Date
2023-10-19
Version
2023.2 简体中文

以下测试用例以将宏(块 RAM)推送至距离目标寄存器更近的位置为例,重点提供了有关通过重构来对关键路径进行改进的信息。

下图显示了 1 个 16x1 多路复用器,其中仅含 1 个从块 RAM 到多路复用器的输入,其余输入由寄存器馈送。

关键路径:块 RAM-> 2 个逻辑层次 -> FF。

图 1. 连接到块 RAM 输出的 16x1 多路复用器

下图显示的关键路径中,以红色高亮显示块 RAM 到 FF 的路径。块 RAM->FF 和 FF->FF 都存在 2 个逻辑层次。由于块 RAM CLK->Q 延迟对于块 RAM 更高,因此 RAM->FF 为关键路径。

图 2. 关键 RAMB-LUT-FF 路径

下一步,请注意下图中所示 RTL 代码,查看是否能够重构逻辑。

图 3. RTL 代码片段

重构逻辑的最佳方法是将 16x1 多路复用器拆分为 2 个多路复用器来重写上述代码片段。您可将选择值 4'd5 的条件豁免,将其用作为 2x1 多路复用器的启用条件(如下图所示),创建此级联多路复用器结构可生成含 3 个逻辑层次的 FF->FF;但块 RAM->FF 减少至 1 个逻辑层次。这样即可改进块 RAM->FF 路径,从而帮助下游工具实现更好的布局,因为 RAMB 布局比 LUT 和 FF 布局难度更高。总之,对于任意给定设计,减少宏原语(如 RAMB、URAM 和 DSP)周围的长路径即可改进 QoR 结果。

图 4. 用于减少 RAMB 输出逻辑级数的级联多路复用器结构