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

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

文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。

点击标题下「蓝色微信名」可快速关注

昨天小编的粉丝们在我们微信技术交流群讨论到 clock gating 使能端 setup 的问题。微信技术交流群的福利就是这里面大家可以和各种大神互相交流,更重要的是小编是群主,什么好处你们懂的(微信技术交流群二维码在文章末尾,今天小编收到公众号推送的一个提问码,放在文章尾部,看看好不好玩,小伙伴们一起来玩玩体验下)。吾爱 IC 社区的小编发现还是有很多的工程师不太理解为何 clock gating 的使能端会有 setup 等一系列相关的问题,所以有必要专门拿这个主题来做一个分享。那么,下面就直接进入今天的正题。

1.clock gating(门控时钟)的结构

门控时钟技术是一种用来降低功耗的常用方法。之前推送过的文章 基于 Physical Aware 的动态功耗优化实现方案 提到过这个技术。感兴趣的可以点进去查看下。早期的 clock gating 结构如图 1 所示,主要由与门(或者或门)和 Latch 组合而成。八九年前做 180nm 工艺的时候就是这种结构,现在应该比较少见。传统的 clock gating 结构有啥不好呢?

第一,设置 clock gating check 比较麻烦。第二,不利于 timing signoff,容易遗漏实际需要 gating check 的点,出现 glitch。现在大部分都是集成的 ICG (Integrated Clock Gating)。

图 1 传统 clock gating 结构

2.Place 阶段 ICG 使能端的 Setup violation

  • place 过程 data path 优化力度不够。

出现这种情况,一方面可以在 DCT 中设置一个稍微大点的 gating check,并将这类 gating cell 拎出来,建一个 group path 来进一步优化 data path 上的组合逻辑。另外一方面也需要在数字后端实现 place 过程做同样的工作。关于 DCT 和 ICC 之间 Timing,Congestion 一致性问题,可以参考之前推送的文章 教你轻松调 DCT 和 ICC 之间 Timing 与 Congestion 的一致性

  • Place 过程 data path 已经是最优的。此时,需要考虑 ICG 的位置以及所 gating 的那些 sinks 的分布。很有可能是 ICG 本身位置不合理和某个 ICG 控制的那些 sinks 分布不合理导致的(可能是 floorplan 方面的因素,也有可能是 cell placement 不合理)。遇到这种情况,要么改 floorplan,要么将 ICG 控制的 sinks 尽量聚拢,要么复制一些 ICG 来达到各自 ICG 控制的 sinks 比较聚集的目的。反正方法还有很多,这个各位多思考,这里不一一列举。有疑问的可以在公众号留言或者通过文章末尾提问码进行提问。

3.CTO 阶段 ICG 使能端的 SETUP Violation

在数字后端实现过程中,最经常见到的就是 PLACE 后 setup 没有 violation 而 CTO 之后 ICG 使能端莫名奇怪就存在比较大的建立时间违例。之所以你觉得奇怪,那是因为你还不知道 ICG 的 CK_i(时钟 pin)不是 CTS 默认的 SINK pin。重要的事情再说一遍,ICG 的时钟 pin 是 through pin 而不是 sink pin。因此,在做时钟树综合时,ICG 并不会与它带的 sinks(Memory,reg)做 balance。所以从 clock root 到 ICG 的 clock latency 一定小于它所带的那些 sink 的 clock latency。而 CTS 之前并没有做时钟树,ICG 和那些 sinks 的 latency 都是 ideal 的,均为 0(假设都没有额外的借 timing)。

以图 2 为例我们来算下到 ICG 使能端 E 端的 setup 是否满足时序要求。

数据到达 Epin 所需要的时间 T1=5+3=8ns

时钟到达 ICG 的 clock pin (CK_i) 的时间为 T2=5+1=6ns

因此,clock gating 的使能端是存在 setup violation 的(假设一个 buffer 的 delay 为 1ns)。

图 2 setup 计算演示图

那么,如何解决这种 setup violation 呢?小编特地整理了以下几种方法(保证管用!)同时建议阅读与今天主题相关的历史干货。

数字芯片设计实现中修复 setup 违例的方法汇总

数字 IC 设计中 ECO 的那些事,其实并不是事!

  • duplicate ICG

这个方法如图 3 所示,复制了四个 ICG,分布控制五组寄存器。采用这个方案后 setup 就 meet 了。

  • DCT 和 ICC stage 加大力度对 data path 进行优化

  • 利用 useful skew 借 timing

  • 将 ICG 的 clock tree 做长或者垫长

针对这个方法留个思考题。将 ICG 的 clock tree 做长的好处和坏处分别是什么?如何人工做长或垫长这段 clock tree?在 build clock tree 时能否直接设置 floating 值来让工具做长这段 tree?如果你对这些思考题的比较 confused,说明还没掌握好这个知识点,欢迎在公众号给我留言(或者通过提问码进行提问),进行交流讨论。

  • 调整 ICG 和其带的 sink 的位置

  • 综合阶段设置 ICG max fanout 值不要太大(为什么?缺点是什么?)

  • 其他方法

图 3 duplicate ICG 后的电路图

相关文章推荐(不读保证后悔)

教你轻松调 DCT 和 ICC 之间 Timing 与 Congestion 的一致性

数字芯片设计实现中修复 setup 违例的方法汇总

数字 IC 设计中 ECO 的那些事,其实并不是事!

Scan chain reordering 怎么用你知道吗?

如何评价数字后端设计中 floorplan 的好坏?

数字后端实现时 congestion 比较严重,你 hold 得住吗?

数字后端实现 place 过程进阶

Final netlist release 前,你应该做好哪些工作?

基于 Physical Aware 的动态功耗优化实现方案

深入浅出讲透 set_multicycle_path,从此彻底掌握它

【大师必备】最全的数字 IC 设计经典书籍电子版下载

你与数字后端大神的差距在这里,快来瞧瞧!

数字后端实现时 congestion 比较严重,你 hold 得住吗?

时钟树综合(clock tree synthesis)基础篇

【福利】数字 IC 后端各种 Userguide 下载

好了,今天的内容分享就到这里。另外,因为公众号更改推送规则,小编分享的每篇干货不一定能及时推送给各位。为了避免错过精彩内容,请关注星标公众号,点击 “在看”,点赞并分享到朋友圈,让推送算法知道你是社区的老铁,这样就不会错过任何精彩内容了。

如果你想和小编有更进一步的沟通交流的机会,欢迎加入小编知识星球,让我们一起学习成长,共同进步。相信在这里能让你成就一个更完美的自己

小编知识星球简介(如果你渴望进步,期望高薪,喜欢交流,欢迎加入 ****)

在这里,目前已经规划并正着手做的事情:

  • ICC/ICC2 lab 的编写

  • 基于 ARM CPU 的后端实现流程

  • 利用 ICC 中 CCD(Concurrent Clock Data)实现高性能模块的设计实现

  • 基于 ARM 四核 CPU 数字后端 Hierarchical Flow 实现教程

  • 时钟树结构分析

  • 低功耗设计实现

  • 定期将项目中碰到的问题以案例的形式做技术分享

  • 基于 90nm 项目案例实现教程(ICC 和 Innovus 配套教程)

  • 数字 IC 行业百科全书

吾爱 IC 社区知识星球星主为公众号” 吾爱 IC 社区” 号主,从事数字 ic 后端设计实现工作近八年,拥有55nm,40nm,28nm,22nm,14nm等先进工艺节点成功流片经验,成功tapeout 过三十多颗芯片

这里是一个数字 IC 设计实现高度垂直细分领域的知识社群,是数字 IC 设计实现领域中最大,最高端的知识交流和分享的社区,这里聚集了无数数字 ic 前端设计,后端实现,模拟 layout 工程师们。

在这里大家可以多建立连接,多交流,多拓展人脉圈,甚至可以组织线下活动。在这里你可以就数字 ic 后端设计实现领域的相关问题进行提问,也可以就职业发展规划问题进行咨询,也可以把困扰你的问题拿出来一起讨论交流。对于提问的问题尽量做到有问必答,如遇到不懂的,也会通过查阅资料或者请教专家来解答问题。在这里鼓励大家积极发表主题,提问,从而促进整个知识社群的良性循环。每个月小编会针对活跃用户进行打赏。

最重要的是在这里,能够借助这个知识社群,短期内实现年薪百万的梦想!不管你信不信,反正已经进来的朋友肯定是相信的!相遇是一种缘分,相识更是一种难能可贵的情分!如若有缘你我一定会相遇相识!知识星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有 891 星球成员,感谢这891童鞋的支持!欢迎各位渴望进步,期望高薪的铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标
在这里插入图片描述

欢迎关注 “吾爱 IC 社区

微信号:ic-backend2018
在这里插入图片描述

https://mp.weixin.qq.com/s/sAGuyOUjIpnOGDfhWKZeNQ

  • 3
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值