马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
1. 时钟信号的功耗占系统功耗的很大一部分(40%左右)占动态功耗的50%以上
1. DC门控时钟命令:
intert_clock_gating
set_clock_gating_style
1. 门控时钟插入:
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数门控时钟插入对比
1. 门控时钟的结构:
a. 结构-1
这种系统时钟门控的机制算然简单,但是容易使门控后的时钟不完整,甚至产生毛刺。
a. 结构-2
这种门控方法避免了门控时钟的不完整性,也可以避免避免毛刺的产生,但门控后的时钟可能会产生亚稳态。
1. 结构-3
这种结构解决了结构-2的亚稳态问题。
1. 结构-4
这种带测试模式的结构可以在测试时让时钟一直开着。
1. 结构-5
在ASIC进行后端测试的时候,有时候可能会将不同时钟域的逻辑和寄存器连起来进行扫描链插入,此时可能某个模块的时钟来源可能不是通过它原来的时钟路径,而是整个芯片统一的测试时钟,就此时需要对时钟进行选择。 |