以下示例并不适用于所有设计,但可演示层级的作用。DSP 设计一般允许对设计增加时延。这样可以在设计中添加寄存器,实现时钟频率更高的设计。此外,寄存器还可用于提升布局灵活性。这非常重要,因为时钟频率较高时,信号无法在 1 个时钟周期内遍历裸片。添加寄存器可使难以到达的区域变为可供使用。下图显示了有效的层级规划对于加速时序收敛的作用。
图 1. 有效的层级规划示例
本设计部分分 3 个层级:
-
DSP_i
在 DSP_i 算法块中,输入和输出将同时寄存。由于器件拥有大量寄存器,因此,这是提升时序预算的首选方法。
-
floorplanning_wrapper_i
在
floorplanning_wrapper_i
中有 1 个 CE 信号。CE 信号一般为重负载信号,会导致时序问题,应在布局规划时包含这些信号。通过创建布局规划封装,后续即可根据需要手动对此模块进行布局规划。此外,在模块层次已添加 KEEP_HIERARCHY 以确保保留该层级用于布局规划,与任何其他全局综合选项无关。
-
placement_flexibility_wrapper_i
在
placement_flexibility_wrapper_i
中,寄存 DATA_IN、VALID_IN、DATA_OUT 和 VALID_OUT 信号。由于并未计划在布局规划中包含这些信号,因此这些信号不包含在floorplanning_wrapper_i
中。如果这些信号包含在布局规划中,将无法满足布局灵活性的要求。此外,只要将 DATA_IN + VALID_IN 或 DATA_OUT 与 VALID_OUT 配对处理,稍后即可添加更多寄存器。如果添加更多寄存器,综合工具可能推断移位寄存器 LUT (SRL),这将强制所有寄存器集中到 1 个组件中,这对于布局灵活性无益。为避免出现此情况,在模块层次已添加 SHREG_EXTRACT 并将其设置为 NO。