FPGA动态功耗降低技术解析
1. FPGA中减少毛刺的方法
在FPGA设计里,毛刺是引发动态功耗的关键因素之一。减少毛刺能够有效降低功耗,下面将介绍几种减少毛刺的技术。
1.1 负边沿触发器插入法
之前提到,添加由异相时钟控制的触发器会带来显著的功耗开销,主要源于新增时钟的时钟资源功耗。所以,使用大量时钟相位并不能实现更多的功耗节省。Czajkowski和Brown提出了单相位触发器插入方案,采用负边沿触发的触发器,即相位偏移180°。
在电路中,由于输入信号延迟不同,某些模块会产生毛刺,这些毛刺会传播到后续模块。在产生毛刺的模块输出端插入负边沿触发的触发器,能阻止时钟周期前半段出现的所有毛刺。研究表明,180°的相位偏移足以阻止电路中的所有毛刺。在时钟周期的后半段,新增的触发器会锁存其输入数据,并保持到下一个周期。
在插入负边沿触发的触发器时,作者采用了简单的CAD技术,在电路中可能出现毛刺的每个节点放置负边沿触发器,前提是功耗节省要超过添加触发器的功耗成本。以下是负边沿触发器插入对面积、延迟和功耗影响的表格:
| 电路 | 面积变化(%) | 延迟变化(%) | 功耗变化(%) |
| — | — | — | — |
| barrel64 | 1.46 | 8.74 | -17.5 |
| mux64_16bit | 0 | 0 | 0 |
| fip_cordic_rca | 0 | 3.82 | -8.76 |
| oc_des_perf_opt | 0.96 | 2.64 | -24.75 |
| oc_video_comp_sys_huffman_enc