一、低功耗RTL设计的底层逻辑
动态功耗 :P_dynamic = α × C × V² × f ------ 重点是翻转率(α) 和负载电容(C)。
静态功耗:泄漏电流,与门电路状态相关。
代码风格不同,综合出不同结构的门级电路,不同的翻转率和寄生电容对功耗有本质的影响。
作为前端设计的目标,用最小的硬件开销和翻转完成相同的功能。
二、时钟门控
时钟门控的核心思想 :当寄存器组无需更新数据时,关断通往该寄存器的时钟信号,使其停止翻转,从而消除该时钟子树下的所有动态功耗。
时钟门控在物理上对应集成时钟门控单元(ICG, Integrated Clock Gating Cell),其标准结构为:
- 一个高电平使能的Latch (负沿锁存)+ 一个与门(AND)。
Latch在时钟下降沿 锁存使能信号,确保en在时钟高电平期间保持稳定 ,再与clk相与,输出无毛刺的门控时钟。
三、低功耗收益
- 节省功耗 ≈ (1 - α) × P_clock_tree(时钟树动态功耗)
当gating比例低于一定比例时,插时钟门控收益很小,因为本身也会消耗功耗。通常,门控率由项目规模和经验规定达标数值。
四、简述编码风格
1.组合逻辑避免无用翻转
-
坏风格:
assign sum = a + b;(a/b一直变化,加法器一直翻转) -
好风格:
assign sum = en ? a + b : 0;或使用时钟门控单元。
2.状态机状态编码以及case中的sel采用独热码