CRG时钟系统中的低功耗设计:如何通过ICG和分频器优化芯片功耗
在芯片设计的深水区,功耗早已不是锦上添花的优化项,而是决定产品成败的核心指标之一。尤其对于移动设备、物联网终端和可穿戴设备,每一微瓦的功耗节省,都直接关系到用户体验和产品竞争力。时钟系统,作为芯片的“心跳”,其功耗往往占据动态功耗的30%甚至更高。因此,对时钟和复位生成模块(CRG)进行精细化的低功耗设计,是每一位资深IC工程师必须掌握的硬核技能。
这篇文章不是一篇泛泛而谈的概念介绍,而是面向实战的深度剖析。我们将聚焦于CRG时钟树中两个最关键的功耗调控阀门:集成时钟门控(ICG) 和分频器(Divider)。我会结合自己参与过的几个流片项目中的真实案例,拆解如何通过架构级和电路级的协同设计,将时钟系统的功耗“榨干”,同时确保时序收敛和功能安全。无论你是正在规划新芯片时钟架构的资深工程师,还是希望深入理解低功耗设计细节的进阶者,这里的内容都将提供切实可行的思路和需要避开的“坑”。
1. 理解时钟功耗的根源:从动态功耗公式说起
在深入ICG和分频器之前,我们必须先建立对时钟功耗来源的量化认知。很多工程师知道时钟功耗大,但对其构成缺乏清晰画像,导致优化时无从下手。
芯片中时钟网络的功耗主要由三部分构成:
- 时钟树的翻转功耗:这是最大头。时钟信号以最高频率(通常是PLL输出频率)在庞大的时钟树网络上周期性翻转,驱动着成千上万的寄存器时钟端。
- 寄存器时钟引脚的内部功耗:即使寄存器的数据没有变化,当时钟边沿到来时,其内部的时钟缓冲器和反相器也会消耗动态功耗。
- 时钟生成与分配模块的功耗:包括PLL、分频器、时钟门控单元、时钟选择器等自身的功耗。
其中,动态功耗的计算公式 P = α * C * V² * f 是我们一切优化工作的理论基础。在这个公式里:
α(翻转率):对于始终在翻转的时钟网络,α接近1。ICG的核心作用,就是将不工作模块的时钟网络的α降为0。C(负载电容):由时钟树综合工具通过插入缓冲器来优化驱动,属于物理设计范畴。但分频器的使用,可以从源头减少需要被驱动的高频时钟网络规模,间接降低整体C。f(频率):最直接的杠杆。分频器通过降低局部时钟频率来直接减小f,而ICG通过关闭时钟,等效于将f设为0。V(电压):通常与电源域设计相关,但某些先进的动态电压频率缩放(DVFS)方案需要与CRG紧密配合。
所以,ICG和分频器的优化,本质上是对 α 和 f 这两个参数的精准、动态控制。下面这个表格对比了两种技术的作用层面和影响范围:
| 优化技术 | 作用原理 | 优化对象(P=αCV²f) | 粒度 | 动态性 | 额外开销 |
|---|---|---|---|---|---|
| 集成时钟门控 (ICG) | 在时钟路径上插入与门/或门,用使能信号控制时钟通断 | 主要降低翻转率 (α),将α从1降至0 | 模块级、子系统级、甚至寄存器级 | 高,可随软件控制快速开关 | 引入额外的门控单元,可能对时序(时钟偏斜、插入延迟)有轻微影响 |
| 分频器 (Divider) | 对输入时钟进行整数或小数分频,产生更低频率的时钟 | 直接降 |

1469

被折叠的 条评论
为什么被折叠?



