仅对英特尔可见 — GUID: mtr1430269489509
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: mtr1430269489509
Ixiasoft
2.2. Hyper-Retiming (协助寄存器移动)
Fitter的Retime阶段可以通过将ALM寄存器重定时(移动)到布线架构中的Hyper-Registers来平衡寄存器链。Retime阶段也可以通过在组合逻辑中前后移动寄存器来执行顺序优化。通过平衡一系列寄存器钟每个阶段之间的传播延迟,重定时(retiming)可以缩短关键路径,降低时钟周期和增加操作频率。
然后,Retime阶段在Fitter期间运行,将寄存器移入理想的Hyper-Register位置。此Hyper-Retiming过程需要最少的工作量,同时又实现了1.1 – 1.3倍的性能提升。
在在LUT之间移动寄存器中,左边的寄存器显示重定时前两个LUT的最坏情况延迟。右边的寄存器显示重定时后一个LUT的最坏情况延迟。
图 6. 在LUT之间移动寄存器
当Compiler不能重定时寄存器时,这是一种重定时限制,这种限制会限制设计的fMAX。在设计的性能关键部分中最小化重定时限制以实现最高性能。
有各种各样的限制性能的情况。限制关系到硬件特性,软件行为或者设计特性。使用下面的设计技巧来协助寄存器重定时和避免重定时限制:
- 除非必要,否则要避免异步复位。请参考复位策略部分。
- 避免同步清零。同步清零通常是不利于重定时器的广播信号。
- 在时序约束和异常中使用通配符或名称。请参考时序约束考量部分。
- 避免单周期(停止/启动)流程控制,例如时钟使能和FIFO full/empty信号。请考虑分别使用有效信号和almost full/empty。
- 避免preserve寄存器属性。请参考重定时限制和解决方法部分。
- 关于添加流水线寄存器的详细信息,请参考Hyper-Pipelining (添加流水线寄存器)部分。
- 关于解决环路和重定时的其他RTL限制的详细信息,请参考Hyper-Optimization (优化RTL)部分。
以下部分提供了在特定设计情况下协助寄存器移动的设计技巧。