随着性能需求增加,架构级权衡产生的影响远比工具选项或简单的设计修改大。这种权衡通过插入流水线寄存器级把最长的关键路径切割成较小的、更快速的工作段,牺牲时延来提升时钟频率。
Vivado Design Suite 的流水线分析特性 ( report_pipeline_analysis)通过增加流水线寄存
器,独特而深入地洞察出设计瓶颈与机遇,以便提升设计的 FMAX。因为流水线会改变设计的顺序行为,需要特别关注验证,因此会把重点放在提供准确的指引而非自动插入流水线级。
通过如下三步可充分发挥这一功能的作用
1. report_pipeline_analysis 特性用于分析设计并给出总结。在内部该设计被细分为多个反馈和前馈部分,流水线分析只对前馈段开展。
2. 细分完成后,就会制作一份设计的副本供探索使用。接着把时延级添加到前馈部分的探索模式中,每次迭代后产生新的、更快的关键路径。
最终直到因为新的关键路径已经足够快,插入流水线寄存器不能增加 FMAX,或者因为新的关键路径构成反馈环路的一部分,无法进一步提升性能为止。流水线分析功能还会考虑可能的最大工作时钟频率。如果会造成 FMAX 远远超出器件能力范围,则不建议插入寄存器。在图 5 的示例报告中,通过添加两个流水线级,结果共有 107 个寄存器添加到设计的特定前馈路径中 (即列出端点的地方), FMAX 可从 295 MHz 提高到 710 MHz。在本例中,反馈环路明显比前馈路径快,不会制约通过流水线实现的性能提升。流水线分析在添加两级时延后停止。插入第三级很可能让估计的FMAX 超出最慢环路和器件最大 FMAX 能力的极限。
3. 设计人员根据报告建议修改 HDL 代码,在路径的端点上添加两个流水线寄存器级。在启用新的重定时优化后重新运行综合。这些新的寄存器级被自动重定时到前馈逻辑锥中,用于平衡关键路径。图 6 所示的是这些增添的流水线寄存器 (以绿色高亮显示)重定时到两个端点之间的关键路径上(以蓝色高亮显示)。
因为流水线寄存器被有效插在 LUT 之间,对布局布线的总体影响极小。如图 7 所示,每个 LUT 在架构上与两个寄存器配对,让 LUT 的输出直接路由到寄存器,不用任何代价。此外使用时间借用或有益歪斜技术,该寄存器驱动的走线段引起的延迟也会降低。与这些技术相比,备选方法需要在互联架构上添加数百万个寄存器,不但不能带来明显好处,而且还会增大面积占用、复杂性和功耗。
在顺序反馈环路中插入流水线级相当复杂,由于对此前周期数据的依存性,这样做会改变设计的功
能。对反馈环路进行流水线操作的成功概率极低,而且即便成功,也会显著增大占位面积,大幅降低系统吞吐量。小环路有时可以手动转换,但大环路往往不能进行流水线操作。通过流水线分析,可发现环路及其规模,以帮助设计人员评估转换它们的可操作性。参见: 图 8。