仅对英特尔可见 — GUID: esc1445896765189
Ixiasoft
2.4.2.1. 高速时钟域(High-Speed Clock Domains)
2.4.2.2. 重构回路(Restructuring Loops)
2.4.2.3. 控制信号反压(Control Signal Backpressure)
2.4.2.4. 使用FIFO状态信号的流程控制
2.4.2.5. 包含skid缓冲器的流程控制
2.4.2.6. Read-Modify-Write存储器
2.4.2.7. 计数器和累加器
2.4.2.8. 状态机
2.4.2.9. 储存器
2.4.2.10. DSP模块
2.4.2.11. 一般逻辑
2.4.2.12. 求模与除法
2.4.2.13. 复位
2.4.2.14. 硬件重用
2.4.2.15. 算法要求
2.4.2.16. FIFO
2.4.2.17. 三元加法器(Ternary Adders)
5.2.1. 不足的寄存器(insufficient Registers)
5.2.2. 短路径/长路径(short path/long path)
5.2.3. 快进限制(Fast Forward Limit)
5.2.4. 回路(loop)
5.2.5. 每个时钟域一个关键链
5.2.6. 相关时钟组中的关键链
5.2.7. 复杂的关键链
5.2.8. 延伸到可定位的节点
5.2.9. 域边界入口和域边界出口(Domain Boundary Entry and Domain Boundary Exit)
5.2.10. 包括双时钟存储器的关键链
5.2.11. 关键链比特和总线
5.2.12. 延迟线
仅对英特尔可见 — GUID: esc1445896765189
Ixiasoft
2.1.5. 避免广播信号
要尽量避免使用广播信号。广播信号是高扇出控制网,并且在路径之间产生很大的延迟差异。此路径延迟差异对Compiler为寄存器找到合适的位置增加了难度,从而导致不平衡的延迟路径。使用流水线来解决这个问题,复制寄存器来驱动广播信号。
广播信号要传播很长的距离才能到达每个独立的寄存器。因为这些扇出寄存器可能会在平面布局图中分散开,因此要使用手动寄存器复制来改进布局。流水线级的正确布局会对性能产生显著影响。
在图 4中,黄色框突出显示了在一个模块中插入的寄存器有助于时序。此模块将输出广播到多个收发器通道。这些额外的寄存器可能无法充分改进时序,因为最终的寄存器阶段会在器件的广泛区域上扇出到目的地。
图 4. 广播信号的次优流水线
图 5显示了一种更好的方法:复制最后一个流水线寄存器,然后将寄存器的副本放置在目标模块中(本例中的收发器通道)。此方法会产生更好的布局和时序。由于每个通道的流水线寄存器布局有助于覆盖黄色模块中的最后一个寄存器级与收发器中的寄存器之间的距离,因此会进行改进。
图 5. 广播信号的优化流水线
除了复制最后一个流水线寄存器之外,您还可以应用dont_merge综合属性以避免在综合期间合并重复的寄存器,这将消除任何益处。
Compiler会尽可能自动添加流水线级并将寄存器移到Hyper-Registers中。您还可以使用手动流水线操作来获得更好的布局结果。
相关信息