转载自:http://www.chipsbank.com/news_detail/newsId=122.html
1. 时钟信号的功耗占系统功耗的很大一部分(40%左右)占动态功耗的50%以上
1. DC门控时钟命令:
intert_clock_gatingset_clock_gating_style1. 门控时钟插入:
1. 使用效果实例:
a. 对于一个180nm工艺的芯片:有clock gating和没有clock gating的结果相比(芯片实测):
a. 功耗节省34%到43%(具体更应用模式有关)
a. 面积节省20%(一个clock gating能代替多个mux)
1. 使用原则:
a. 至少位宽是3或以上的寄存器才用门控时钟
a. 单bit的寄存器使用门控时钟是没有效果的,面积和功耗都不会节省。
a. Clock buffer尽可能多的放到clock gating cell的后面。
1. RTL具体措施:
a. 无用输出采用使能保持输出的方式编码:
NxtReadData = (ReadEn) ? RamData : 8'b0; 如果没有读使能时,我们不关心输出什么数据的话,则改成:NxtReadData = (ReadEn) ? RamData : ReadData;这样就可以让ReadEn无效时把这8个寄存器的时钟关掉。
1. 3bit的计数器插clock gating前后电路对比
插门控之前:插门控之后:
1. 不同bit数门控时钟插入对比
SMIC.18工艺 |
| 面积 |
| 动态功耗(W) |
|
| um2 | 门数 |
|
4bit暂存器 | 带ICG | 221.72 | 25.25 | 1.185e-05 |
| 不带ICG | 263.42 | 30 | 1.427e-05 |
3bit暂存器 | 带ICG | 175.62 | 20 | 9.160e-06 |
| 不带ICG | 197.57 | 22.5 | 9.920e-06 |
2bit暂存器 | 带ICG | 131.71 | 15 | 6.315e-06 |
| 不带ICG | 131.71 | 15 | 6.613e-06 |
1bit暂存器 | 带ICG | 85.61 | 9.75 | 3.633e-06 |
| 不带ICG | 65.86 | 7.5 | 3.307e-06 |
1. 门控时钟的结构:
a. 结构-1
这种系统时钟门控的机制算然简单,但是容易使门控后的时钟不完整,甚至产生毛刺。
a. 结构-2
这种门控方法避免了门控时钟的不完整性,也可以避免避免毛刺的产生,但门控后的时钟可能会产生亚稳态。
1. 结构-3
这种结构解决了结构-2的亚稳态问题。
1. 结构-4
这种带测试模式的结构可以在测试时让时钟一直开着。
1. 结构-5
在ASIC进行后端测试的时候,有时候可能会将不同时钟域的逻辑和寄存器连起来进行扫描链插入,此时可能某个模块的时钟来源可能不是通过它原来的时钟路径,而是整个芯片统一的测试时钟,就此时需要对时钟进行选择。