仅对英特尔可见 — GUID: mtr1430270852827
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: mtr1430270852827
Ixiasoft
2.4.1.2. 时间域多路复用(Time Domain Multiplexing)
时间域多路复用通过使用多线程计算来提高电路吞吐量。这种技术也称作C缓慢重定时(C-slow retiming)或者多线程处理(multithreading)。
时间域多路复用使用一组串联C寄存器取代电路中的每个寄存器。每个额外的寄存器复制创建一个新的计算线程。通过设计的一次计算要求C与原始电路一样多的时钟周期相乘。然而,Compiler能够重定时额外的寄存器以提高fMAX一个C因子。例如,您可以例化一个运行在800 MHz的模块,而不是例化两个运行在400 MHz的模块。
下图显示了C缓慢重定时的进程,开始于一个初始电路。
图 45. C缓慢重定时起点
编辑RTL设计,将每个寄存器(包括回路中的寄存器)替换为一组C寄存器,每个独立计算线程有一个寄存器。
图 46. C缓慢重定时中间点此实例显示了每个寄存器被两个寄存器替换。
此时此刻编译电路。当Compiler优化电路时,用附加寄存器执行重定时有更大的灵活性。
图 47. C缓慢重定时终点
除了用一组寄存器替换每个寄存器之外,还必须将多个输入数据流多路复用到模块中,并将输出流多路分解出此模块。当设计包含多个并行线程时使用时间域多路复用,为此回路限制每个线程。您优化的模块不能对延迟敏感。