门控时钟基础知识

什么是门控时钟

RTL中的门控时钟

 通常情况下,时钟树由大量的缓冲器和反相器组成,时钟信号为设计中翻转率最高的信号,时钟树的功耗可能高达整个设计功耗40%。

加入门控时钟电路后,由于减少了时钟树的翻转,节省了翻转功耗。同时,由于减少了寄存器时钟引脚的翻转行为,寄存器的内部功耗也减少了。采用门控时钟,可以非常有效地降低设计的功耗,一般情况下能够节省20%~60%的功耗。

那么RTL中怎么才能实现门控时钟呢?答案是不用实现。现在的综合工具比如DC会自动插入门控时钟。如下图所示:

这里有两点需要注意:

1. 插入门控时钟单元后,上面电路中的MUX就不需要了,如果数据D是多bit的(一般都是如此),插入CG后的面积可能反而会减少;

2. 如果D是单bit信号,节省的功耗就比较少,但是如果D是一个32bit的信号,那么插入CG后节省的功耗就比较多了。

这里的决定因素就是D的位宽了,如果D的位宽很小,那么可能插入的CG面积比原来的MUX大很多,而且节省的功耗又很少,这样得不偿失。只有D位宽超过了一定的bit数后,插入CG的收益就比较大。

那么这个临界值是多少呢?不同的工艺可能不一样,但是DC给的默认值是3.

也就是说,如果D的位宽超过了3bit,那么DC就会默认插入CG,这样综合考虑就会有收益。

我们可以通过DC命令:

set_clock_gating_style -minimum_bitwidth 4

来控制芯片中,对不同位宽的寄存器是否自动插入CG。一般情况都不会去修改它。

虽然现在综合工具可以自动插入门控时钟,但是如果编码风格不好,也不能达到自动插入CG的目的。比较下面两种RTL写法:

左边的RTL代码能够成功的综合成自动插入CG的电路;

右边的RTL不能综合成插入CG的电路;

右边电路在d_valid为低时,d_out也会一直变化,其实没有真正的数据有效的指示信号,所以综合不出来插入CG的电路。

需要注意的是,有的前端设计人员,为了仿真的时候看的比较清楚,很容易会写成右边的代码,这样不仅不能在综合的时候自动插入CG来减少功耗;而且增加了d_out的翻转率,进一步增加了功耗。

在不用的时候把数据设成0并不能减少功耗,保持数据不变化才能减少toggle,降低功耗!

所以我们在RTL编写的时候一定要注意。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/401887.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

#LLM入门|Prompt#1.7_文本拓展_Expanding

输入简短文本,生成更加丰富的长文。 “温度”(temperature):控制文本生成的多样性。 一、定制客户邮件 根据客户的评价和其中的情感倾向,使用大语言模型针对性地生成回复邮件。将大大提升客户满意度。 # 我们可以在…

分享6个当下最受欢迎的 Vue UI 库

在本文中,我列出了前 6个最受欢迎的(根据 NPM 下载量和 Github stars,从上到下排名)UI 库,供您启动您梦想中的 Vue 项目。 Vue.js 作为一个 JavaScript 框架,由于其简单、易用和学习曲线,是 Rea…

Facebook的未来蓝图:数字社交的下一个篇章

在数字化时代,社交媒体已经成为人们日常生活中不可或缺的一部分。而在众多的社交媒体平台中,Facebook一直处于领先地位,不断探索着数字社交的新领域和新形式。随着科技的不断发展和社会的不断变革,Facebook正在谱写着数字社交的未…

工业边缘网关的主要功能与应用价值分享-天拓四方

工业边缘网关,也称为工业物联网边缘计算网关,是一种部署在工业生产现场,具备数据采集、处理、存储和传输功能的智能设备。它能够将各种传感器、执行器、控制器等工业设备连接到网络,实现设备间的互联互通,同时提供边缘…

shapely 笔记 voronoi图

Voronoi 图是一种将平面分割成区域的方法,每个区域包含一个输入点,任何在该区域内的点都比其他输入点更接近该区域的输入点 1 基本使用方法 shapely.ops.voronoi_diagram(geom, envelopeNone, tolerance0.0, edgesFalse) 2 参数说明 geom任何几何类型…

船运物流管理系统|基于springboot船运物流管理系统设计与实现(源码+数据库+文档)

船运物流管理系统目录 目录 基于springboot船运物流管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员登录 2、货运单管理 3、公告管理 4、公告类型管理 5、新闻管理 6、新闻类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 …

Internet Download Manager 6.42.3 (IDM) 中文免激活绿色版

相信很多网友都遇到过一种情况,网页有些视频资源或者音频资源不知道如何下载,一直不知道如何解决,为此小编特意带来了这款:Internet Download Manager电脑版,这是一款非常专业且十分好用的下载工具,也就是大…

基于springboot + vue实现的前后端分离-酒店管理系统

项目介绍 基于springboot vue实现的酒店管理系统一共有酒店管理员和用户这两种角色。 管理员功能 登录:管理员可以通过登录功能进入系统,确保只有授权人员可以访问系统。用户管理:管理员可以添加、编辑和删除酒店的用户,包括前…

常见文档向量表示方法

参考:https://www.slidestalk.com/Milvus/doc2vecmilvus85394 相似文章召回,通常是指在信息检索、自然语言处理等领域中的一种技术手段。它的主要功能是根据用户提供的某篇文章或一段文本,通过算法模型快速、准确地从海量文本库中找出与之主题…

第二证券:权重板块引领市场走高 20只绩优大盘股仍超跌

2月21日,A股商场再现普涨行情,上证指数盘中一度逼近3000点关口。权重股扎堆的沪深300指数上涨1.35%,领涨其他指数。北上资金也大举加仓,全天净流入近136亿元,其间沪股通净流入96.41亿元,深股通净流入39.54亿…

源聚达电商:现在的抖音小店卖啥赚钱

在数字浪潮中,抖音小店如同一叶扁舟,乘风破浪于电商海洋。何为赚钱之本?答案藏匿在消费者的喜好与市场的缝隙之中。今日,让我们一同探索抖音小店盈利的秘诀。 个性化商品是小店的灵魂。消费者渴望独一无二,定制化产品如手工艺品、…

代码随想录算法训练营第二十四天 | 回溯算法理论基础,77. 组合 [回溯篇]

代码随想录算法训练营第二十四天 回溯算法理论基础什么是回溯法回溯法的理解回溯法模板 LeetCode 77.组合题目描述思路参考代码总结优化版本 回溯算法理论基础 文章讲解:代码随想录#回溯算法理论基础 视频讲解:带你学透回溯算法(理论篇&#…

Springboot整合定时任务quartz(非集群)

文章目录 前言一、Springboot 整合1.1 Springboot 初步整合quartz1.1 jar 引入:1.2 添加任务:1.2.1 方式1 PostConstruct 注入任务:1.2.2 方式2 Bean 注入任务: 二、quartz持久化:2.1 mysql 引入:2.2 业务共…

flutter 文件上传组件和大文件分片上传

文件分片上传 资料 https://www.cnblogs.com/caijinglong/p/11558389.html 使用分段上传来上传和复制对象 - Amazon Simple Storage Service 因为公司使用的是亚马逊的s3桶 下面是查阅资料获得的 亚马逊s3桶的文件上传分片 分段上分为三个步骤:开始上传、上传对…

Linux常见的指令

目录 01. ls 指令02. pwd命令03. cd 指令04. touch指令05.mkdir指令(重要):06.rmdir指令 && rm 指令(重要):07.man指令(重要):08.cp指令(重要&#x…

人工智能讲师AI讲师大模型讲师叶梓介绍及大语言模型技术原理与实践提纲

叶梓,上海交通大学计算机专业博士毕业,高级工程师。主研方向:数据挖掘、机器学习、人工智能。历任国内知名上市IT企业的AI技术总监、资深技术专家,市级行业大数据平台技术负责人。 长期负责城市信息化智能平台的建设工作&#xff…

JUC并发编程学习与实践

文章目录 学习资料创建和运行线程方法一:直接使用Thread方法二:使用Runnable配合Thread方法三:FutureTask配合Thread 线程的常见方法start与runsleep与yield线程的优先级 join方法详解interrupt线程打断interrupt线程打断后,线程不…

4.7 Verilog 循环语句

关键词:while, for, repeat, forever Verilog 循环语句有 4 种类型,分别是 while,for,repeat,和 forever 循环。循环语句只能在 always 或 initial 块中使用,但可以包含延迟表达式。 while 循环 while 循…

科普|什么是数据脱敏

在当今数字化的时代,数据已经成为企业的重要资产和核心竞争力。然而,随着数据量的不断增加,数据安全和隐私保护问题也日益突出。 什么是数据脱敏呢? 数据脱敏,也称为数据去隐私化或数据匿名化,是一种将敏感…

electron学习和新建窗口

首先我们要先下载electron npm install --save-dev electron 建立入口文件main.js 新建一个入口文件 main.js,然后导入eletron新建一个窗口。 const { app, BrowserWindow, ipcMain } require("electron"); const path require("path");func…