时钟门控(Clock Gating)
时钟门控的核心思想:当一个寄存器(或一组寄存器)这个周期不需要更新时,把它的时钟关掉(门控住),不让时钟翻转传到它,从而省掉这部分功耗门控就是用一个使能信号(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与门。

相关新闻

Onenet云平台(Android Studio++HTTPAPI+postman)

Onenet云平台(Android Studio++HTTPAPI+postman)

一、上报数据(本文作者:CZJ) 1、填写鉴权信息,post方式,onenet云平台创建时为云平台直连设备方式,最好是直连设备mqtt协议protocolmqtt 2、设备post如下https://open.iot.10086.cn/fuse/http/device/thing/property/post?topic$sys/设备id/设备名称/t…

2026/6/28 8:53:37阅读更多 →
Apache Kylin:万亿数据秒级查询的 OLAP 引擎

Apache Kylin:万亿数据秒级查询的 OLAP 引擎

文章目录Apache Kylin:万亿数据秒级查询的 OLAP 引擎5.0 版本更新了什么预计算到底好在哪建模这件事变简单了部署和上手Apache Kylin:万亿数据秒级查询的 OLAP 引擎 做大数据分析的人大概都遇到过这个问题:数据量一大,查询就慢得离…

2026/6/28 8:53:37阅读更多 →
3步轻松上手:HTML转Figma的完整工作流指南

3步轻松上手:HTML转Figma的完整工作流指南

3步轻松上手:HTML转Figma的完整工作流指南 【免费下载链接】figma-html Convert any website to editable Figma designs 项目地址: https://gitcode.com/gh_mirrors/fi/figma-html 你是否曾经面对一个设计精美的网站,想要在Figma中快速重建却无从…

2026/6/28 8:48:36阅读更多 →
从零搭建智能文档中枢:基于大语言模型的文档自动处理与问答系统

从零搭建智能文档中枢:基于大语言模型的文档自动处理与问答系统

引言 在企业数字化转型浪潮中,大量非结构化文档(合同、报告、手册、邮件)成为沉睡的数据资产。传统关键词搜索效率低、语义理解弱,而大语言模型(LLM)虽然知识渊博,却无法直接访问企业内部文档&a…

2026/6/28 10:33:44阅读更多 →
线程概念与控制(上)

线程概念与控制(上)

本篇目标:1.认识什么是线程,以及与进程的区别2.理解地址空间和资源划分的关系3.加深对页表的认识3.比较线程和进程一.Linux线程概念1.概念通过之前对进程的学习,我们知道进程是内核数据结构代码和数据构成,那么线程其实就是进程内…

2026/6/28 10:33:44阅读更多 →
终极窗口分辨率自定义工具:SRWE 从入门到精通完全指南

终极窗口分辨率自定义工具:SRWE 从入门到精通完全指南

终极窗口分辨率自定义工具:SRWE 从入门到精通完全指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾经遇到过这样的困扰:想要截取游戏中的精美画面,却发现游戏不支…

2026/6/28 10:33:44阅读更多 →
所有文章目录

所有文章目录

一、基于ESP32-E的小车 二、基于STM32F103的遥控器

2026/6/28 10:33:44阅读更多 →
TV Bro浏览器终极指南:一键解锁智能电视的完整上网体验

TV Bro浏览器终极指南:一键解锁智能电视的完整上网体验

TV Bro浏览器终极指南:一键解锁智能电视的完整上网体验 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro TV Bro是一款专为智能电视和Android电视盒优化的开源…

2026/6/28 10:33:44阅读更多 →
如何快速上手TV Bro:智能电视浏览器的完整使用攻略

如何快速上手TV Bro:智能电视浏览器的完整使用攻略

如何快速上手TV Bro:智能电视浏览器的完整使用攻略 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro TV Bro是一款专为智能电视和Android电视盒优化的开源网页…

2026/6/28 10:28:43阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/28 0:08:01阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/28 0:08:01阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/28 0:08:01阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/28 0:08:01阅读更多 →