注:本文为“IC Design | chicken bits / clock Gating”相关合辑。
英文引文,机翻未校。
中文引文,略作重排。
图片清晰度受引文原图所限。
如有内容异常,请看原文。
使用 Formal FEV 验证某些 Chicken bit 和 clock gating
Goblin
东南大学 集成电路硕士
⚠️ 回答于 2 年前
Chicken bits,咋一眼看上去不能理解,听起来好像是某些团队的黑话。Chicken bits,其实就是 defeature bits,是一个暴露给这个芯片驱动程序的额外控制信号以禁用芯片中的某些 feature。
芯片中一个好端端的特性为啥提供一个禁用的选项呢?其本质是 ** 芯片设计人员信心不够 **,担心这个 feature 没有实现正确导致影响其他 feature。
通常在项目后期修改一些无关紧要但是又不太合理的地方时可能会同时加上相应的 Chicken bits,能够随时进行版本的回退。
如果你发现,某个模块有些 Chicken bits 一直遗留到很多代,可能是设计比较保守,也可能是实力不行导致的修改信心不足。
大多数对成熟稳定设计的修改都是使用 Chicken bits,有可能 Chicken bits 的添加本身无意中导致了许多错误,从而影响了其他功能。
那么作为一个验证人员,如何保证 Chicken bits 的正确性呢?
上图展示了一个 Chicken bits 的实现,通过一个 MUX 在两个逻辑中进行选择。一种保证 Chicken bits 的引入不影响其他模块功能的方法是 Formal FEV。将 Chicken bits 禁用时的设计(IMP 模型)和之前没有实现 Chicken bits 的设计(SPEC 模型)进行等价性比对。
一般情况下可以通过 combinational FEV 实现,但是如果这个 Chicken bits 影响了时序就需要使用 sequential FEV。
发布于 2022-07-30 00:11
IC 设计:clock Gating
TrustZone 已于 2023-08-17 08:59:23 修改
一、时钟门控技术的应用动因
在集成电路(IC)设计领域,功耗控制是核心关键环节之一,而时钟门控(clock gating)技术的诞生,与芯片功耗的构成机制及优化需求存在紧密的内在联系。以下将从静态功耗和动态功耗两个维度,深入阐述采用时钟门控技术的必要性。
1. 静态功耗
芯片中的功耗从广义上可定义为动态功耗与静态功耗的总和。
静态功耗主要涵盖芯片在非翻转状态下产生的漏电功耗(由关断不彻底引发)、衬底电流形成的功耗以及热电子效应导致的电流效应所产生的功耗等。
一般来说,静态功耗在前端设计阶段难以实现有效的优化(不过通过电源关断处理能够达成一定程度的优化),其优化工作更多地依赖于ME/BE 流程(制造与后端流程)或者工艺层面的改进,以此实现更为理想的优化效果。
静态功耗的示意图如下:
2. 动态功耗
动态功耗作为芯片功耗的另一重要组成部分,其产生与电路中信号的翻转行为密切相关,同时也是时钟门控技术主要针对的优化对象。动态功耗的来源通常包含两个方面。
第一部分:充放电功耗
这部分是芯片中功耗占比最大的部分,由单元(cell)的充放电过程所产生。以反相器(Inverter)电路为例,它由一个 PMOS 管和一个 NMOS 管组成,其输出端可等效为一个对地电容,具体结构如下图所示。
当输入信号 IN 从 0 变为 1 时,PMOS 管从导通状态转变为断开状态,NMOS 管则从断开状态转变为导通状态,致使电容通过 NMOS 管对地进行放电。
反之,当 IN 从 1 变为 0 时,电容通过 PMOS 管进行充电。这种充放电过程会消耗大量的电能,进而产生功耗。
第二部分:内部短路功耗
动态功耗的另一部分是单元在翻转过程中,PMOS 管和 NMOS 管同时导通的瞬间所产生的功耗,也被称为内部功耗(internal power)。如下图所示,单元在翻转过程中,总会存在一小段时间内 PMOS 管和 NMOS 管同时处于导通状态,此时会形成从电源电压(VDD)到地(GND)的直流通路。尽管该过程持续的时间极为短暂,但通路中的电阻极小,因此电路中的电流会极大。
不过,与上述充放电产生的动态功耗相比,这部分功耗所占的比例相对较小。
小结:时钟路径功耗与时钟门控的必要性
由上述分析可知,动态功耗的产生均由单元翻转导致。在芯片中,翻转频率最高的路径为时钟路径(clock path),且时钟路径需进行 CTS 处理(clock tree synthesis,时钟树综合),这使得整个时钟路径上的 CK - BUF 或 CK - INV 数量极多。
时钟的每个周期翻转都会带动整条路径上所有单元的翻转。据统计,芯片中时钟路径上的功耗消耗可占整个芯片功耗的 40% 甚至更高。因此,对时钟路径进行动态关断,能够显著降低功耗消耗。这种对时钟进行关断的技术被称为时钟门控(clock gating)。
二、基于单元(CELL)的时钟门控实现方法
如上图所示,data_out 实现后可视为一个 D 触发器(DFF),该 DFF 的数据并非每个时钟周期都有效,仅当 data_en == 1 时,DFF 才会在时钟上升沿被重写。在其他时钟周期的上升沿,DFF 的数据不会被重新覆盖。这为我们提供了一个思路:时钟的翻转仅在 data_en 为 1 时才有意义,其他周期的翻转均为无效翻转。
如何节约这些无效时钟翻转带来的功耗消耗呢? 我们只需实现如下的时钟波形即可。
基于此思路,解决方案易于推导。观察波形可知,可通过与门(AND - GATE)或或门(OR - GATE),对时钟进行与/或运算,以达到预期效果。
通过与门或或门与原始时钟(CLK)进行运算,将原始 CLK 转换为门控时钟(CLK_G)后,可得到仅在使能信号(EN)有效时才会翻转的时钟波形。这一转换过程即为最基本的时钟门控形式。
这种基于基本单元的时钟门控电路虽结构简单,但在实际实现与使用过程中,需考虑并规避一些问题。
基于与门的时钟门控中,由于与门的特性,会使时钟在高电平时的信号通过。这引入了一个问题:必须保证 EN 信号在时钟高电平期间稳定,无毛刺(glitch),否则会导致输出时钟 CLK_G 产生毛刺。
如何保证 EN 信号在时钟高电平期间稳定呢?显然,EN 信号的产生源不能是上升沿触发的寄存器。若 EN 信号源于上升沿触发的寄存器,经过组合逻辑后,极易在时钟高电平期间产生如下毛刺:
为解决该问题,需使 EN 信号的产生源为下降沿触发的寄存器。这样,EN 信号在第一个时钟上升沿来临前有半个周期的时间稳定下来,即确保 EN 信号在时钟上升沿到来前稳定。
此外,基于与门形式的时钟门控电路,ME/BE 工具在进行时序检查时,必须对此进行检查并施加约束。
若 EN 信号在时钟上升沿前稳定,即整个时钟高电平期间 EN 信号无毛刺,则可保证最终产生的时钟稳定且无毛刺。(有待进一步理解)
同理,基于或门的时钟门控也需类似考量。经分析可知,其要求产生 EN 信号的寄存器采用上升沿触发。
综上可总结:基于与门实现时钟门控时,EN 信号的产生逻辑需为下降沿触发的 DFF;基于或门实现时钟门控时,EN 信号的产生逻辑需为上升沿触发的 DFF。
如前文分析,基于这种基本单元方式的时钟门控,EN 信号输出至运算稳定仅有半个周期的时间。
三、高频场景下基于集成时钟门控单元(ICG)的实现方法
若需门控的时钟频率极高,此处极有可能出现难以收敛的时序问题。
解决上述问题的方法是延长 EN 信号的稳定时间,换言之,“借用” 半个时钟周期使 EN 信号稳定。这可通过另一种基本单元——锁存器(LATCH) 实现,其在电路中可实现时间借用,称为时序借用(timing borrow)。
前文提及,在数字电路中,通常不希望出现锁存器,主要原因之一是其时序借用特性会增加时序分析的难度。
但有两个场景常使用锁存器电路,其一便是此处用于实现时钟门控,另一处是在可测性设计(DFT)中解决保持时间(hold timing)问题。
锁存器 + 与门构成的时钟门控电路
在原有与门之前加入一级时钟低有效的锁存器,构成如图所示的电路结构,其时序图如下所示。
由于加入的锁存器是低电平有效的,因此在 CLK 为高电平期间,即使 EN 信号不稳定、存在毛刺,也不会通过锁存器向后传递。而锁存器之后的与门电路,进一步确保了低电平期间传入锁存器的 EN 毛刺被阻断。
这保证了 EN 信号在整个 CLK 周期内可任意翻转。借助锁存器的特殊属性,在 CLK 为低的半个周期内,EN 信号可被锁存至锁存器中,只需保证 EN 信号在下一个 CLK 上升沿来临前稳定(满足锁存器的建立/保持时间要求),即可锁存正确的 EN 信号。
基于该结构的时钟门控电路,可有效解决前文提到的 EN 信号稳定时间仅为半个周期的问题。
锁存器 + 或门构成的时钟门控电路
基于锁存器 + 或门的时钟门控电路形式如图二所示,与“锁存器 + 与门”形式的区别在于,前面的锁存器需为时钟高有效,且根据 EN 信号的高低电平有效性,决定是否存在反相器(inverter)单元,具体可自行推导,此处不再赘述。
同样,基于该结构的时钟门控电路,可为 EN 信号稳定争取一个完整的 CLK 周期时间。
若要使“锁存器 + 与门”电路为 EN 信号提供一个完整周期的运算时间,EN 信号的源寄存器必须为上升沿触发;同理,若要使“锁存器 + 或门”电路为 EN 信号提供一个完整周期的稳定时间,EN 信号的源寄存器需为下降沿触发。
STM32 系列芯片中的时钟门控应用
对于半导体产品而言,数字电路的功耗由两部分构成:其一为静态功耗,通常表现为电子线路的漏电流,其控制主要取决于生产工艺与所用材料;其二为动态工作电流,影响该部分功耗的因素较多,如电路设计方式、线路复杂程度、工作时钟频率等。
本文所讨论的时钟门控技术是一种简单有效的功耗控制方法,其基本原理是关闭芯片上暂时无需使用的功能及其时钟,以实现电流消耗的节省。
STM32 系列芯片中采用了这种时钟门控技术,下图为 STM32 的时钟分配示意图:
图中以橙色标注的与门用于控制不同模块的时钟,用户可通过程序中相应的寄存器位,开启或关闭对应模块的时钟,以降低功耗。
篇外:Are chicken bits left in space-qualified ICs?
太空级集成电路中会保留“冗余控制位”吗?
A chicken bit “is a bit on a chip that can be used by the designer to disable one of the features of the chip if it proves faulty or negatively impacts performance.”
冗余控制位(chicken bit)指的是“芯片上的一个位,若芯片的某项功能被证明存在缺陷或对性能产生负面影响,设计人员可通过该位禁用此功能”。
Would space-qualified logic components leave this feature in, or would the final design “best practice” of space-qualified IC take redundant features controlled by a chicken bit out of the final die?
太空级逻辑组件会保留这一功能吗?还是说,太空级集成电路的最终设计“最佳实践”会将由冗余控制位控制的冗余功能从最终芯片中移除?
My guess is that, if a feature with undesirable performance is left in the final die, the chicken bit could be susceptible to a bit-flip by an SEE (single event effect) or other radiation effects, thus running the risk of activating the undesired feature, and possibly affecting the mission in space.
我的猜测是,如果最终芯片中保留了性能不佳的功能,那么冗余控制位可能容易因单粒子效应(SEE)或其他辐射效应而发生位翻转,从而存在激活不良功能的风险,并可能影响太空任务。
edited Nov 19, 2016 at 22:39
My Other Head asked Nov 15, 2016 at 19:49
- Considering this is disabled logic, and the SEE is analog, I would not expect any more susceptibility to disabled logic than an unused Set tied low. I would expect glitches on output registers connected to long cables to propagate back into anserial register however causing inserted EMI to be cascaded such as SIPO or PISO register. So a SEE event such as a gamma pulse is not different than a motor arc except the rise time might be a pico second instead of nanoseconds., so robust filtering and shielding is mandatory
- 考虑到这是被禁用的逻辑,且单粒子效应是模拟性质的,我认为被禁用的逻辑不会比接地的未使用置位端更容易受影响。不过,我认为连接到长电缆的输出寄存器上的干扰可能会反向传播到串行寄存器中,导致注入的电磁干扰在串并转换或并串转换寄存器等器件中级联。因此,像伽马脉冲这样的单粒子效应事件与电机电弧并无本质区别,只是上升时间可能是皮秒级而非纳秒级,所以必须采用可靠的滤波和屏蔽措施。
– Tony Stewart EE since 1975
Commented Nov 15, 2016 at 19:53
- If a SEE causes a bit-flip, how could it be analogue?
- 如果单粒子效应导致了位翻转,那它怎么会是模拟性质的呢?
– My Other Head
Commented Nov 15, 2016 at 19:59
- SEE is caused by analog defect with a digital result. Analog in a sense like silicon contaminant or EMP or ESD etc. In fact all logic is analog. A SEE is like a medical term for idiopathic. and does not target Chicken bits any more than used logic. A chicken bit is just an unproven logic cct that was disabled for some logical reason, but something that makes it vulnerable to EMC. When ATE test with ICT they also test unused gates by back driving, the same would be done for any unused cct in a good ATE design at factory.
- 单粒子效应是由模拟缺陷引发的,却产生了数字结果。这里的“模拟”指的是类似硅污染物、电磁脉冲或静电放电等因素。实际上,所有逻辑电路本质上都是模拟的。单粒子效应就像医学中的“特发性”术语一样,它并不会专门针对冗余控制位,对已使用的逻辑电路也是如此。冗余控制位只是一个因某种逻辑原因而被禁用的未经验证的逻辑电路,但这使得它容易受到电磁兼容问题的影响。在工厂进行自动测试设备(ATE)的在线测试(ICT)时,会通过反向驱动的方式测试未使用的门电路,对于设计良好的自动测试设备,工厂也会对任何未使用的电路进行同样的测试。
– Tony Stewart EE since 1975
Commented Nov 15, 2016 at 20:08
2 Answers
The definition of chicken bit in Wiktionary is incorrect, and the extension by OP [as hardwired] is even more wrong.
维基百科中对冗余控制位的定义是不正确的,而提问者将其扩展为“硬连线的”就更错了。
The chicken bit is a configuration bit (software configurable! and usually undocumented) that is incorporated into a design to disable a WORKAROUND of some issue discovered during bring-up of early silicon stepping. The bit is usually incorporated because the pre-silicon validation/verification of the workaround is usually incomplete at the moment of tape-out of a new chip stepping (typically due time-to-market constraint), and all consequences and possible side effects of the workaround are not known yet, as compared to much more verified initial design. The chicken bit is a way to undo the entire workaround in cases when some new side effects would be discovered in process of more thorough and complete post-silicon validation.
冗余控制位是一个配置位(可通过软件配置!且通常未公开文档),在设计中加入它是为了禁用在早期硅片版本调试过程中发现的某个问题的解决方案。之所以加入这个位,通常是因为在新芯片版本流片时,该解决方案的流片前验证工作往往尚未完成(通常是由于上市时间的限制),与经过更多验证的初始设计相比,该解决方案的所有后果和可能的副作用尚不明确。当在更深入、更全面的流片后验证过程中发现新的副作用时,冗余控制位就成了撤销整个解决方案的一种方式。
As such, the chicken bit is no different from other configuration bits for other hardware features, and should not cause any special concern. In modern designs the essential configuration bits are protected by various special lock-unlock-sync mechanisms, so the run-time effect of SEE events on hardware configuration is minimized.
因此,冗余控制位与其他硬件功能的配置位并无区别,不应引起特别关注。在现代设计中,关键的配置位会受到各种特殊的锁定 - 解锁 - 同步机制的保护,从而将单粒子效应事件对硬件配置的运行时影响降至最低。
Ale…chenski answered Nov 15, 2016 at 22:23
I can’t speak for any specific IC, but I know that bit flips due to radiation are considered for terrestrial ICs as well. I have a colleague who would regularly take our automotive-grade products to a national lab to test for SRAM bit flips. Chicken bits can use protection techniques such as majority voting or ECC, just like any other logic. So I wouldn’t think there’s anything special about a few extra configuration bits or some unused logic.
我无法针对特定的集成电路发表看法,但我知道,地面集成电路也会考虑辐射导致的位翻转问题。我有一位同事会定期将我们的汽车级产品送到国家实验室,测试静态随机存取存储器(SRAM)的位翻转情况。冗余控制位可以像其他逻辑电路一样,采用多数表决或纠错码(ECC)等保护技术。所以,我认为额外的几个配置位或一些未使用的逻辑电路并没有什么特别之处。
Adam Haun answered Nov 15, 2016 at 20:34
via:
-
使用 Formal FEV 验证某些 Chicken bit 和 clock gating - 知乎
https://zhuanlan.zhihu.com/p/547816547 -
IC 设计:clock Gating 是什么?-优快云博客
https://blog.youkuaiyun.com/weixin_45264425/article/details/130329246- Clockgating 技术解析-优快云博客
https://blog.youkuaiyun.com/weixin_43727437/article/details/104966528 - 时钟门控技术(Clock Gating)-电子工程世界
https://news.eeworld.com.cn/mcu/2015/0414/article_19372.html
- Clockgating 技术解析-优快云博客
-
低功耗设计——Clock Gating 详解-优快云博客
https://blog.youkuaiyun.com/qq_34326957/article/details/138853661 -
integrated circuit - Are chicken bits left in space-qualified ICs? - Electrical Engineering Stack Exchange
https://electronics.stackexchange.com/questions/269534/are-chicken-bits-left-in-space-qualified-ics/269571