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. 延迟线
2.1.1.2. 速度和延迟
下表列出了随着总线宽度的增加,各种电路的增长率。电路函数与作为总线宽度函数的面积的大O符号交错,开始于log(N)的子线性直到N*N的超线性。
| Circuit Function | |||||||
|---|---|---|---|---|---|---|---|
| 总线宽度 (N) | log N | Mux | ripple add | N*log N | barrel shift | Crossbar | N*N |
| 16 | 4 | 5 | 16 | 64 | 64 | 80 | 256 |
| 32 | 5 | 11 | 32 | 160 | 160 | 352 | 1024 |
| 64 | 6 | 21 | 64 | 384 | 384 | 1344 | 4096 |
| 128 | 7 | 43 | 128 | 896 | 896 | 5504 | 16384 |
| 256 | 8 | 85 | 256 | 2048 | 2048 | 21760 | 65536 |
通常,当总线宽度加倍时,电路组件使用2倍以上的面积。对于像多路复用器(mux)这样的简单电路,随着总线宽度的增加,面积呈亚线性增长。降低多路复用器的总线宽度会略差于线性面积益处。随着总线宽度的增加,纹波加法器呈线性增长。
随着总线宽度的增加,诸如桶型移位器(barrel shifter)和交叉开关(crossbar)的更复杂的电路呈超线性增长。如果将桶型移位器,交叉开关或其他复杂电路的总线宽度减半,那么面积效益能显著地好于半速率,接近二次速率。对于那些所有输入影响所有输出的组件,增加总线宽度会导致二次增长。那么预期的结果将会是,如果利用加速来处理半宽度总线,那么所生成设计的面积将少于原始面积的一半。
使用流数据通路(streaming datapaths)时,寄存器的数量与流水线的延迟(以比特为单位)相近似。将宽度减半可以使流水线级增加一倍,而不会对延迟产生负面影响。这种更高的性能通常需要远远少于两倍的额外寄存量,以产生延迟效益。