时钟门控(Clock Gating)
📅 2026/6/28 8:52:24
👁️ 次浏览
时钟门控的核心思想:当一个寄存器(或一组寄存器)这个周期不需要更新时,把它的时钟关掉(门控住),不让时钟翻转传到它,从而省掉这部分功耗门控就是用一个使能信号(enable)控制时钟通不通——需要更新时让时钟通过,不需要时挡住。PE:out_acc out_acc mult_reg当输入数据是0(没有有效数据流入时,比如喂数前后的空闲周期,或者错位喂入时某些PE还没轮到),累加结果其实不变(加0),但寄存器还是被时钟驱动着、白耗电用一个使能信号:只有当有有效数据(非0)需要累加时,才让out_acc的时钟通过;否则门控住。两种实现方式方式1:让综合工具自动插时钟门控(最简单,工业界常用)DC 有自动时钟门控功能。在RTL里写出带使能的寄存器的结构(if(enable)才更新),DC就能自动识别并插入时钟门控单元(ICG cell)。RTL写法——给PE加一个使能逻辑:// 当有有效输入时才累加(简化示例:输入非0就算有效) wire acc_enable (in_left ! 0) (in_top ! 0); // 使能条件 always (posedge clk or posedge rst) begin if (rst) begin out_acc 0; // ... end else begin mult_reg in_left * in_top; if (acc_enable_reg) // 只在使能时更新累加器 out_acc out_acc mult_reg; // out_acc在不使能时保持不变(隐含:else out_acc out_acc) out_right in_left; out_bottom in_top; end end然后在DC综合脚本里开启自动时钟门控:set_clock_gating_style -sequential_cell latch \ -positive_edge_logic {integrated} \ -control_point before compile_ultra -gate_clock # 加 -gate_clock 启用时钟门控DC会自动把if(enable)才更新的寄存器识别出来,插入ICG单元,把enable变成时钟门控综合后看报告,会看到时钟门控单元(clock gating cells)被插入,寄存器功耗下降。方式2:手动例化ICG单元直接在RTL里实例化工艺库的ICG(Integrated Clock Gating)单元,手动控制。// 手写时钟门控单元(理解ICG原理) module clock_gate ( input clk, input enable, output gated_clk ); // 1. 用一个低电平透明的latch,锁存enable // latch在clk0时透明(en_latched跟随enable),clk1时锁住(保持不变) reg en_latched; always (*) begin if (!clk) // 时钟低电平时,latch透明 en_latched enable; // clk高电平时,latch保持(不更新en_latched) end // 2. 门控时钟 clk AND 锁存后的enable assign gated_clk clk en_latched; endmodule为什么时钟门控要用专门的ICG单元,不能简单地用assign gated_clk clk enable?直觉上,门控时钟好像就是时钟 AND 使能。但直接clk enable是错的、危险的——因为enable信号如果在时钟高电平期间变化,会在门控时钟上产生毛刺(glitch),这个毛刺可能被误当成时钟边沿,导致寄存器错误翻转。这是数字设计的经典坑。正确做法是用ICG单元(Integrated Clock Gating cell),它内部用一个**锁存器(latch)**在时钟低电平时锁存enable,确保enable只在安全的时刻改变门控时钟,消除毛刺。这就是为什么时钟门控必须用专门的ICG单元,而不是随便 AND 一下。手写latch与门做时钟门控,在真实IC设计流程里是被严格禁止的。原因:时钟是特殊信号,要走专门的时钟树(clock tree)。你手写的gated_clk,综合和后端工具不一定能正确识别它是时钟,可能不会给它做时钟树综合(CTS),导致时钟质量差、skew大、出问题。latch本身在设计里是被警惕的。综合工具看到latch会报警告(latch通常是无意中写出来的bug)。手写时钟门控引入latch,会和避免latch的设计规范冲突,工具难以区分这是故意的时钟门控latch还是bug latch。可测试性(DFT)问题。手写时钟门控,在扫描测试(scan test)时,门控时钟可能导致某些寄存器无法被测试到,影响可测试性。专门的ICG单元有处理这个的机制(带测试使能TE端口),手写的没有。跨工具一致性。手写的时钟门控,不同工具(综合、形式验证、后端)对它的理解可能不一致,容易出问题。所以工业界的正确做法是:要么(a)在RTL写if(enable)结构,让综合工具自动插入库提供的ICG单元;要么(b)直接例化库里的标准ICG单元(下面的层次1)。绝不手写latch与门。
在当今数字化浪潮下,中小微实体商家面临着诸多经营困境,如获客难、留存难、盈利难等。而淘多猫物联网科技(海南)有限公司凭借其一系列数字化营销系统,为商家提供了高性价比的解决方案,同时其高信用度也让商…
📅 2026/6/28 8:47:24
掌握3步高效技巧,打造专业级B站音频批量下载方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bil…
📅 2026/6/28 8:47:24
终极指南:如何用3个简单步骤将任何网站快速转换为可编辑的Figma设计 【免费下载链接】figma-html Convert any website to editable Figma designs 项目地址: https://gitcode.com/gh_mirrors/fi/figma-html
你是否曾经面对一个精美的网站设计,想…
📅 2026/6/28 8:47:24
更多请点击:
https://codechina.net
第一章:信息系统项目管理师含金量的底层逻辑重构 传统认知中,“含金量”常被简化为考试通过率、薪资涨幅或职称挂钩程度,但这一指标正经历结构性解构。当组织级项目治理从“流程合规”转向“价…
📅 2026/6/28 10:12:33
7 Taskbar Tweaker:终极Windows任务栏定制解决方案 【免费下载链接】7-Taskbar-Tweaker A Windows taskbar customization tool for Windows 7, Windows 8, and Windows 10 项目地址: https://gitcode.com/gh_mirrors/7t/7-Taskbar-Tweaker
你是否厌倦了Wind…
📅 2026/6/28 10:12:33
如何在Windows上无缝安装Android应用:APK Installer终极指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer
你是否曾希望在Windows电脑上直接运行Android应…
📅 2026/6/28 10:12:33
Cherry MX键帽3D打印终极指南:36种规格免费获取与个性化定制 【免费下载链接】cherry-mx-keycaps 3D models of Chery MX keycaps 项目地址: https://gitcode.com/gh_mirrors/ch/cherry-mx-keycaps
你是否曾经因为心爱的机械键盘上某个键帽损坏而苦恼&#x…
📅 2026/6/28 10:12:33
更多请点击:
https://kaifayun.com
第一章:系统架构设计师考试全景认知与能力缺口诊断 系统架构设计师考试是国家计算机技术与软件专业技术资格(水平)考试中的高级科目,聚焦于大型复杂系统的整体设计、技术选型、质量…
📅 2026/6/28 10:12:33
BLiveChat:突破B站直播互动壁垒的弹幕展示解决方案 【免费下载链接】blivechat 用于OBS的仿YouTube风格的bilibili直播评论栏 项目地址: https://gitcode.com/gh_mirrors/bl/blivechat
在B站直播生态中,如何将弹幕互动体验提升到专业水准一直是主…
📅 2026/6/28 10:07:33
6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…
📅 2026/6/28 0:01:52
引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…
📅 2026/6/28 0:01:52
6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…
📅 2026/6/28 0:01:52
引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…
📅 2026/6/28 0:01:52