PCSA时钟控制集成之时钟门控级别

这一部分描述了:

• 时钟门控的级别。

• 实现最大效果的时钟门位置。

• 实现有效和高效时钟门控的集成方法。

时钟树是由时钟缓冲器构建的,这些缓冲器在时钟源(时钟输入或PLL)与时钟终端(寄存器或RAM)之间的物理距离上传播时钟。在树的分支上添加额外的缓冲器,以平衡每个同步终端处的时钟到达时间。这有助于通过在同步元素之间允许逻辑传播的最大时间来实现时序闭合。

时钟树缓冲器中的时钟切换会消耗动态功耗,无论在终端是否执行任何有用的工作。因此,为了构建一个功耗高效的系统,除了对终端进行门控外,还需要尽可能对整个时钟树进行门控。

在空闲情况下,如果没有高级时钟门控,时钟树功耗将主导动态功耗消耗。

1.1 时钟门控级别

这一部分描述了系统中可能存在多个级别的时钟门控。本规范使用以下分类:

• 低级别:由综合工具自动插入的时钟门。

• 中级别:在组件内部实例化的时钟门控,通常是同步控制的。

• 高级别:整个时钟域的实例化门控。

这些时钟门控级别是互补的,应该在结构内部存在其他级别的情况下进行实现。每个级别都具有不同程度的功耗节省和时间粒度的优势。图7.1提供了这些时钟门控级别的示意图。

低级别时钟门控

低级别时钟门是由综合工具插入的,它们直接放置在一组触发器的前面,并替代了启用功能,从而节省了面积和功耗。

低级别门的粒度非常细致。在理想情况下,具有低级别时钟门的终端在触发器不更新时被门控。然而,它们只对触发器进行门控,而不对时钟树进行门控,并且由于下面解释的原因,不能在整个设计中放置。

这些时钟门的启用是从RTL中表示的触发器的功能启用中推导出的。在功能启用由最少数量的触发器共享的地方插入时钟门。这个最小数量由综合约束设置,通常基于重构的功耗-面积平衡点。

图7.2和图7.3说明了一个使用多路反馈的标准触发器使能,以及如何通过合成工具对其进行重构以为触发器添加时钟门。

然而,由于以下原因,综合工具有时不会插入低级别时钟门:

• 没有启用。

• 启用未被综合工具识别。

  • 这可能是因为启用逻辑上过于复杂,或者不以综合工具容易识别的方式结构化。

• 在所需的时间窗口内,启用项可能过于逻辑复杂。

• 由启用控制的触发器数量少于综合约束设置的最小阈值。

因此,低级别时钟门控虽然非常重要,但由于对子集触发器和大多数时钟树缺乏时钟门控覆盖,无法产生完全功耗高效的系统。

中级别时钟门控

这些时钟门是由设计人员在RTL中实例化的,用于在操作期间空闲的逻辑块的门控。

启用由周围逻辑控制,并且通常在单个时钟周期内同步启用和禁用,以对功能操作透明。由于这些启用需要满足同步定时要求,时钟门仍然被放置在时钟树的较低位置。此放置避免了逻辑和时钟门之间的偏差,从而缩小了启用时间窗口。

尽管对设计的较大部分进行门控,但这些中级别时钟门并未对整体时钟树进行大规模的门控。门控的确切数量取决于设计的定时要求和启用的逻辑复杂性。为了构建一个完全功耗高效的系统,需要额外的门控。

高级别时钟门控

这些时钟门是按时钟域插入的,并理想地放置在时钟树的根部。当时钟域空闲时,这种布局导致动态功率接近于零。

时钟根和终端之间的时钟延迟通常大于同步信号传播的定时窗口。因此,启用控制信号必须被视为与时钟终端异步的。

由于以下原因,这给动态时钟门控带来了问题:

• 设备处于空闲状态,时钟被门控。

• 请求设备活动和时钟变得可用之间存在延迟。

因此,需要一种方法来提供与时钟供应和移除相关的保证,以确保组件的正确操作。这在7.1.2高级别时钟门控方法中进行了描述。

尽管这种技术提供了最大的节省,但它可以应用的粒度要低得多,因此重要的是与其他门控级别结合使用。

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

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

相关文章

软件测试项目实战,某购物车/测试点分析实战(详细步骤)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 第一步&#xff1…

SpringBoot整合OAuth2 实现单点登录 SSO

单点登录: SSO服务端和SSO客户端直接是通过授权以后发放Token的形式来访问受保护的资源相对于浏览器来说,业务系统是服务端,相对于SSO服务端来说,业务系统是客户端浏览器和业务系统之间通过会话正常访问不是每次浏览器请求都要去S…

Pyglet图形界面版2048游戏——详尽实现教程(上)

目录 Pyglet图形界面版2048游戏 一、色块展示 二、绘制标题 三、方阵色块 四、界面布局 五、键鼠操作 Pyglet图形界面版2048游戏 一、色块展示 准备好游戏数字的背景颜色,如以下12种: COLOR ((206, 194, 180, 255), (237, 229, 218, 255), (23…

详解算法的时间复杂度和空间复杂度!

目录 ​编辑 1. 算法效率 2. 时间复杂度 2.1 时间复杂度的概念 2.2 大O的表示渐进法 2.3 一个栗子 3. 空间复杂度 4. 常见复杂度对比 5. 完结散花 ​​​​​​​ 悟已往之不谏,知来者犹可追 创作不易,宝子们!如果这篇文章对你们有…

C++之queue和deque

1、queue queue(队列),一种数据结构,可以让某些数据结构的操作变得简单。队列(queue)最大的特点就是先进先出。就是说先放入queue容器的元素一定是要先出队列之后,比它后进入队列的元素才能够出…

二维码门楼牌管理系统技术服务详解:性能标准与反光膜要求

文章目录 前言一、二维码门楼牌管理系统技术服务的性能要求二、反光膜的性能标准三、制作完成的反光膜表层保护 前言 随着科技的快速发展,二维码门楼牌管理系统在现代化城市管理中扮演着越来越重要的角色。这一系统不仅提高了管理效率,还为市民提供了更…

Autosar Appl介绍

AUTOSAR架构中的应用层 AUTOSAR 应用层构成AUTOSAR 架构中的最顶层,被认为对所有车辆应用至关重要。AUTOSAR 标准使用“组件”概念指定应用层实现。 在谈论应用层实现时,应该考虑的三个最重要的部分是: AUTOSAR 应用软件组件这些组件的 AUTOSAR 端口AUTOSAR 端口接口 AUTOS…

steam++加速问题:出现显示443端口被 vmware-hostd(9860)占用的错误。

目录 前言: 正文: 前言: 使用Steam对GitHub进行加速处理时,建议使用2.8.6版本。 下载地址如下:Release 2.8.6 BeyondDimension/SteamTools GitHub 下载时注意自己的系统位数 正文: 使用GitHub时会使…

任务拆解的艺术

1.任务拆解背后的深层逻辑 任务拆解背后的深层逻辑主要涉及以下几个方面: 分解复杂性: 任务拆解的首要目的是分解复杂的大目标或任务,将其分解成更小、更具体的部分。这种分解有助于减少问题的复杂性,使其更易于理解和解决。通过将…

DC-2靶机详解

写写自己打DC-2的过程 使用工具 kali DC-2的靶机下载地址为:https://www.vulnhub.com/entry/dc-2,311/ 环境配置。 Kali和DC-2都设置为NAT模式,都为仅主机模式也可以。 信息收集 arp-scan -l nmap -sn 192.168.236.0/24 获取靶机ip:192.16…

K8S之Deployment的介绍和使用

Deployment的理论和实操 Deployment控制器:概念、原理解读概述工作原理 编写Deployment资源清单文件使用案例:创建一个web站点Deployment管理pod:扩容、缩容通过deployment管理应用,实现扩容,把副本数变成3通过deploym…

C++重新入门-vector容器

目录 1.动态数组: 2.头文件和命名空间: 3.创建和初始化: 使用默认构造函数创建空的std::vector: 使用初始化列表初始化std::vector: 使用拷贝构造函数: 使用范围构造函数: 使用重复值初…

Tkinter.Text控件中,文本存在某个关键字的将被高亮显示(标记颜色+字体加粗)

在Tkinter的Text控件中,要标记某个关键字并改变其颜色,你可以使用tag_add方法来给包含关键字的文本添加标签,然后使用tag_config方法来配置该标签的显示样式,包括前景色(字体颜色)和背景色等。以下是一个完…

使用腾讯云go sdk 查询对象存储中最新文件

背景: 腾讯云账号下,有很多对象存储COS桶: 我现在想确认某一个对象存储桶的活跃程度,简单的来说。我想知道这个桶里面最后上传的一个文件是什么,以及它的上传时间戳。 本文将介绍如何使用腾讯云对象存储(…

MySQL:开始深入其数据(三)DQL的后续

上一章学习mysql语句里的where和join,这一章我们开始分析group by ,having,order by,limit语句。 three,too,one,go! 文章目录 重温select语法having:order by:limit 重温select语法 SELECT [ALL | DISTINCT] { * | table.* | [ table.field1 [ as alias1] [, table.field2 [a…

【C++干货基地】揭秘C++11常用特性:内联函数 | 范围for | auto自动识别 | nullptr指针空值

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 哈喽各位铁汁们好啊,我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的…

Dockerfile构建过程详解

Dockerfile介绍 docker是用来构建docker镜像的文件!命令参数脚本! 构建步骤: 1、编写一个dockerfile文件 2、docker build构建成为一个镜像 3、docker run 运行镜像 …

如何在Window系统部署VisualSVN服务并结合cpolar实现无公网ip远程访问

文章目录 前言1. VisualSVN安装与配置2. VisualSVN Server管理界面配置3. 安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4. 固定公网地址访问 前言 SVN 是 subversion 的缩写,是一个开放源代码的版本控制系统…

mongoDB 优化(1)索引

1、创建复合索引(多字段) db.collection_test1.createIndex({deletedVersion: 1,param: 1,qrYearMonth: 1},{name: "deletedVersion_1_param_1_qrYearMonth_1",background: true} ); 2、新增索引前: 执行查询: mb.r…

[业务系统]人物坐骑系统介绍I

1.问题描述 旧版本的坐骑系统依赖于人物装备了【法宝】(一种装备类型),装备了法宝的人物变拥有了【幻化】坐骑的能力,即在人物装备栏中的【外观】中会有已经幻化和未幻化(解锁)的坐骑。如果玩家至少幻化一…