Clock Gating简介

门控时钟(clock gating)在RTL级电路设计过程中进行低功耗优化常用方法,能够有效降低动态功耗(翻转功耗)。Clock gating cell 可以由与门,与非门,或门或者或非门构成,但很容易产生Glitch。在实际使用中,一般用ICG(集成门控时钟单元)来完成clock gating。

下图展示了glitch的产生原因

功能:节约动态功耗
定义:在芯片实际工作过程中,有些信号或者功能并不需要一直开启,那么就可以在不用的时候将其时钟信号关闭。这样一来信号不再翻转,从而能够有效减少动态功耗中的开关功耗(因为时钟cell的toggle比较高,所以这部分功耗占比很大),这种用来关闭时钟信号的cell就是ICG cell

ICG setup timing violation 产生原因(一)

在CTS时钟树综合的时候,ICG不会被看作sink,通常放置在source点附近,因此就会出现如上图这种结果。

上图可以看出,在分析DFF到ICG的setup timing时:

launck  clk  delay = a + k + d(icg)
   capture clk delay = a

因此,对于ICG的setup path,天然存在clock skew:k ,而skew的大小完全取决于ICG 距离 sink DFF有多远。

在出现setup violation的ICG path上,比较多见的就是因为ICG和sink DFF的clock之间存在较多逻辑或者物理上距离较远,从而导致skew较大而发生setup violation。

ICG setup timing violation 产生原因(二)

ICG cell 放在了sink点附近(skew小),这种ICG setup timing 问题通常是data path太长(逻辑级数)的原因。

ICG setup timing violation 修复策略

CTS 阶段默认Reg1和Reg2尽量长平,所以 T1 ≈ T2 + D(icg) + T3

当reg1和cgate进行clock gating check时,T1 >> T2,也就是launch clock >> capture clock

方法:

Ø1.做短data path T4
Ø2.做短T1(挂树)
Ø3.做短T3,skew小了相当于 T1 ≈ T2
Ø4.统一的pipeline (建议)

EDA工具也提供命令来收紧 ICG 的timing constraint来迫使工具来优化这些Path

比如:set_clock_gating_check 命令,其实也是对data path路径的优化。

在place之前 :set_clock_gating_check

在CTS之后 :reset_clock_gating_check为default

注:CTS之前设clock gating check为了弥补clock tree, ICG cell的latency较短,所以加一些余量。CTS之后remove_clock_gating_check并不是不让tool做ICG timing check,而是用library的gating check的值。

ICG setup timing violation介绍?相关推荐

  1. setup timing violation and hold timing violation in same path

    method: 1.切换memory VT 2.切换path上cell的VT 3.插入negative latch 4.early clk 5.加长common path 6.减小net delay ...

  2. 静态时序分析-clock gating path的timing violation修复

    文章目录 1.clock gating cell 2.clock gating 的timing violation 1.clock gating cell clock gating cell 是用da ...

  3. Timing Constraint介绍-Design Compiler(三)

    ​ 文章目录 3.1 setup constraint参数 3.1.1 创建时钟 3.1.2 创建Input Path constraining 3.1.3 创建Output Path constra ...

  4. STA(静态时序分析) 详解:如何计算最大时钟频率,以及判断电路是否出现时钟违例(timing violation)?

    1.什么是STA? STA(静态时序分析)是时序验证的一种方法,用于计算和分析电路是否满足时序约束的要求. 2.为什么需要STA? 电路能否正常工作,其本质上是受最长逻辑通路(即关键路径)的限制,以及 ...

  5. ICC2 user guide(二)Placement and Optimization

    目录 一 Specifying Coarse Placement Constraints and Settings 1 Defining Keepout Margins 2 Defining Area ...

  6. 数字后端面试100问(校招版)

    上次发布面试100问以后,应读者强烈要求,抽空写了一篇校招版的后端100问,希望对各位应届生面试有用.题目难度类型更偏向基础概念的理解.对于校招,由于在校学生缺乏实际项目经验,考官通常会更加注重学生对 ...

  7. Less is more——如何修复setup violation?

    对于setup violation,大家一定都非常熟悉,网上也有很多相关的资料.今天我们来介绍下对于项目后期ECO阶段,我们如何来修复setup violation. 首先我们来回顾一下setup的定 ...

  8. 秒杀数字后端实现中clock gating使能端setup violation问题

    秒杀数字后端实现中clock gating使能端setup violation问题 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 点击标题下「蓝色微信名」 ...

  9. ICC II 4 timing setup(MCMM的设置)

    timing setup object 执行MCMM 的设置,根据分析和优化的需要定义Corner modes scenarios 加载 MCMM的约束; 应用 时序以及优化 的控制. zero-in ...

最新文章

  1. C# 关闭正在执行的文件
  2. SAP进销存难点分析及对策
  3. 【读书笔记】练习的心态
  4. 前端学习(1732):前端系列javascript之状态切换
  5. mysql主从复制故障处理_MySQL主从复制故障处理一例
  6. Tomcat错误解决
  7. Java查询对象中匹配元素_用LinkedList如何实现搜索指定对象的元素
  8. LeetCode 51. N-Queens
  9. Shell脚本学习-阶段十六-备份和恢复系统权限
  10. acs712电流检测怎么用_工程师都用这个巧妙廉价的电流检测电路!
  11. ryzen cpu 用啥linux,AMD Ryzen锐龙处理器配什么主板?AMD 锐龙Ryzen CPU搭配主板技巧...
  12. 如何用 Lua 查询青云的主机
  13. 【问题9】Redis热点Key发现及常见解决方案
  14. 中国网络游戏发展简史
  15. PSCC2014前端切图小方法(不断补充)
  16. matlab中rand函数用法
  17. ruoyi框架集成magic-api
  18. java 图片识别_java实现图片文字识别的两种方法
  19. 2020年python考试时间_想准备2021年三月份的Python考试,应该怎么准备呢?
  20. MySQL 添加注释(comment)

热门文章

  1. 谷歌地球 V6.2.1.6014 简体中文版
  2. 在vscode中运行jupyter时报错
  3. 30个高质量的数据集网站,你必须要试试!
  4. mac修改服务器身份,Mac 基础教程:如何打开身份不明开发者的应用程序
  5. Android不明原因崩溃,不断重启解决办法记录
  6. A股涨跌股池数据API接口(JSON标准格式,Get请求方式)
  7. Moore Voting
  8. 爪哇国政府有个绑架局
  9. 学计算机和英语哪个好考,英语不好,学计算机哪方面比较好?
  10. BigDecimal 保留两位小数