Intel® Hyperflex™ 体系结构高性能设计手册

ID 683353
日期 7/13/2020
Public

本文档可提供新的版本。客户应 单击此处 前往查看最新版本。

文档目录

2.1.5. 避免广播信号

要尽量避免使用广播信号。广播信号是高扇出控制网,并且在路径之间产生很大的延迟差异。此路径延迟差异对Compiler为寄存器找到合适的位置增加了难度,从而导致不平衡的延迟路径。使用流水线来解决这个问题,复制寄存器来驱动广播信号。

广播信号要传播很长的距离才能到达每个独立的寄存器。因为这些扇出寄存器可能会在平面布局图中分散开,因此要使用手动寄存器复制来改进布局。流水线级的正确布局会对性能产生显著影响。

图 4中,黄色框突出显示了在一个模块中插入的寄存器有助于时序。此模块将输出广播到多个收发器通道。这些额外的寄存器可能无法充分改进时序,因为最终的寄存器阶段会在器件的广泛区域上扇出到目的地。

图 4. 广播信号的次优流水线
图 5显示了一种更好的方法:复制最后一个流水线寄存器,然后将寄存器的副本放置在目标模块中(本例中的收发器通道)。此方法会产生更好的布局和时序。由于每个通道的流水线寄存器布局有助于覆盖黄色模块中的最后一个寄存器级与收发器中的寄存器之间的距离,因此会进行改进。
图 5. 广播信号的优化流水线

除了复制最后一个流水线寄存器之外,您还可以应用dont_merge综合属性以避免在综合期间合并重复的寄存器,这将消除任何益处。

Compiler会尽可能自动添加流水线级并将寄存器移到Hyper-Registers中。您还可以使用手动流水线操作来获得更好的布局结果。