story · 2021年04月13日

时钟门控终极指南

时钟门控(Clock Gating)是一种在数字IC设计中某些部分不需要时关闭时钟的技术。这里的“部分”可以是单个寄存器、模块、子系统甚至整个SoC。

为什么需要时钟门控:大多数SoC都是power constrained,mobile端不能够充更多的电就只能尽可能地降低功耗了(无法开源只能节流呀),也因为时钟门控是降低芯片动态功耗最简单,最常用的方法之一。
image.png

时钟门控技术分类:通常,有两种不同的时钟门控实现技术。

combinational clock gating–这种类型的时钟门控由工具在综合时自动识别引入。

sequential clock gating –这种类型的时钟门控作为功能的一部分引入RTL设计中。通常时钟门控策略在系统架构中定义,然后由设计人员进行实现。

combinational clock gating

最简单的combinational clock gating可以通过AND门实现,如下图所示

image.png

当enable为1时,时钟会传给寄存器FF;当enable为0时,时钟将被关闭, FF将不起作用。这种最简单的时钟门控技术形式存在一些问题,即在提供给FF的时钟中产生毛刺。
image.png

可以通过在时钟使能信号的输出端引入一个低电平敏感的锁存器来解决这个问题。

image.png

锁存器输出仅在时钟低电平内更新,因此与门的输入将稳定为高。

image.png

Integrated Gated Clock Cells(ICG Cell)

要实现这种时钟门控可以实例化标准单元库中的两个Cell(Latch和AND门),秉着不重复造轮子的思想以及方便工具进行后续的时序分析更建议使用库中的ICG Cell并且由工具自动综合插入。

image.png

时钟使能信号可以由软件控制和硬件同时控制,即由软件控制是否需要启动时钟门控,硬件动态控制时钟使能。

软件控制示例如下:

软件控制这个全局时钟使能信号,为低电平时不打开时钟门控,这种全局时钟门控使能策略可以进行层次化的设计,从系统级到最终的单个寄存器。

image.png

硬件控制示例如下:

XOR门的输入连接到FF的输入和输出。如果FF的输入和输出相同,则无需触发FF,此时可对时钟进行门控。

image.png

在前端RTL级引入combinational clock gating很简单,没有对逻辑功能产生影响,可以由EDA工具自动插入。但是在物理设计的视角,这可能是一个更大的课题,因为我们引入了一个实实在在的物理cell,更何况还是在时钟路径上。

从时序功耗上, clock gating应该离寄存器时钟端远还是近?

从面积功耗上,只有一个寄存器是否应该被门控?

sequential clock gating

除了上述combinational clock gating外,还有sequential clock gating,这涉及对RTL设计中多个时钟周期进行深入分析。当然基本思想也很简单,如果寄存器X在周期C中未更新,并且在时钟周期C + 1中输入给寄存器Y的D端,则无需在周期C + 1中使能寄存器Y的时钟。

作者:XinXin_Hu
原文链接:https://mp.weixin.qq.com/s/hbEWkJGFDkvxELWVVdM5NQ
授权转自数字芯片实验室公众号,请勿二次转载。

推荐阅读

更多数字IC设计技术干货等请关注数字芯片实验室专栏。
推荐阅读
关注数
12263
内容数
192
前瞻性的眼光,和持之以恒的学习~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息