时钟树综合CTS技术经验分享(高薪必备!)

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

说到时钟树综合,需要大家紧紧围绕 3W 和 1H 来思考,即 What,Why,When 和 How。这些词是小编自己总结的,可能你们都没听说过。那么它们分别是指什么呢?

What---- 什么是 CTS?

Why----- 为什么要做 CTS?

When----- 什么时候做 CTS?

How------ 怎么做 CTS? 怎么 QA CTS 结果?

上面这几个问题,看似很简单,但能真正回答得比较好的工程师不多。CTS 这块是数字 IC 后端岗位招聘时面试官比较喜欢问的一块,因为从应聘者回答问题的广度和深度,就能看出大体上知道对方的水准了。

PS: 正值一年一度的跳槽高峰期,有技术问题或者工作选择问题,可以私信小编(ic-backend2018),纯免费,能够帮忙的会尽量帮忙(星球会员特权)。

So,上面这些问题希望各位多思考,特别是最后一问,如何做好 CTS 这个问题?(千万不要跟面试官你设置了哪些参数,然后执行哪个命令)

那么,今天小编将从工程师角度来剖析时钟树综合相关的技术要点。

Clock Insertion Delay (Clock Tree Latency) 最短

Clock tree 越长,意味着 clock tree 级数越长,级数长了,tree 上的 power 就越大。同时,受 OCV 效应影响,timing 就越难 meet。

造成 Clock tree latency 太长的原因有很多。有的是因为 Constraint 不合理导致的,有的是因为 floorplan 对 CTS 不友好导致的。时钟树相关 topic 之前也分享过好几篇文章,不懂的可以再去查阅下。

数字 IC 后端时钟树综合专题(OCC 电路案例分享)

想成为数字 IC 时钟树综合(clock tree synthesis)专家,建议好好看看这个!

以上图为例,如果 PLL 摆放在右下角,有一个 Flop 放置在左上角,那么从 physical 上讲该 Flop 的 clock tree latency 将会是最长的一个。由于它要与别的 Flop 做 balance,那么别的寄存器也会被拖长。

【思考题】:假设在 core 中间区域有一堆 Flop 的 tree 被拖长后,请问会造成什么影响?

如果将 PLL 摆放中间位置,并且把左上角的一部分区域打上 soft blockage, 如下图所示,那么整条 clock tree latency 将会减少不少。

最近知识星球上有星友提问,memory 之间的窄 channel 能否放置寄存器的问题。理论上各种 channel 都是能摆放寄存器的,但是对于那种 memory 堆的比较深的情况,从 CTS 角度考虑,最好不要摆放寄存器,因为 channel 中的寄存器可能会拖累整条 clock tree。

所以有一个对 CTS 友好的Floorplan 和 Placement 是非常重要的,它直接决定 CTS 的 Quality。

Clock skew 最小

Clock Skew 的概念请看这篇文章。为什么要关注 Clock Skew? 如何做小 CLock Skew? Clock Skew 对 setup 和 hold 有何影响?

一网打尽时钟树综合 Clock Skew

大部分情况下,我们是希望 Clock Skew 越小越好,因为它对 setup 和 hold 是有很大的好处。

但是有的时候我们倒希望认为引入一定的 clock skew,比如 S 家工具的 CCD,它可以充分利用前后级的 timing margin 来改善时序。又比如从 IR Drop 的角度看,并不希望寄存器同时翻转。

【福利】RedHawk 官方培训教程 + Lab Data 下载

https://t.zsxq.com/6uzNZzJ

吾爱 IC 社区技术文章合集下载

https://t.zsxq.com/Fmujiee

Design Rule Violation (DRV)

DRV 主要是指 max_transition, max_cap 和 max_fanout。前两个是硬性条件,signoff 阶段必须满足要求。

Common Clock Path 尽量长

在 clock tree latency 长度一定的情况下,common clock path 要尽量长,这样 CRPR 补偿回来的就越多,对 timing 就更好。

CRPR 能补偿 crosstalk 吗?

Un-common clock path 尽量短

Multi-level Clock Gating

从功耗的角度讲,我们希望 Clock Gating cell 尽量靠近 root,而且大部分的寄存器都要有 Clock Gating cell 来控制。但是当 ICG 靠 root 端摆放时,容易出现 ICG enable 端的 setup 出问题。针对这个问题,解决方法见下面这篇文章。

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

Clock Gating Clone/Clock Gating Splitting

PR 工具在做 CTS 时,除了做 Clock gating 的 merge 操作外,它还可以做 Clone 和 split 操作。上面我们讲到 CTS 阶段要把 un-common clock path 做到最短,那么很多时候可以通过 Clone clock gating 来实现。

Clock Duty Cycle

导致 duty cycle 出问题的主要原因是 cell 的 rise delay 和 fall delay 不平衡。因此,在做 CTS 综合时,我们往往都是用 clock inverter 来做时钟树的。

Clock Signal Integrity

为了确保时钟信号的质量,在 Signal Route 前会先对 clock net 进行绕线,并且为其设置上 NDR。必要时,还会对 clock net 进行shielding

Custom 时钟树综合

对于简单的设计,可能 clock_opt -cts 或者 ccopt_design -cts 就可以把 tree 做的很好。但是对于复杂时钟结构的 SOC 设计,我们能否直接执行命令做 Tree 呢?

显然是不能的。

一般情况下,中等规模及以上的 SOC 芯片的时钟树综合,都是需要编写时钟树约束文件。因为时钟太多了之后,工具处理起来比较费劲,特别是当一堆时钟进行 mux 操作后,工具经常还会把 tree 做的很长。工具之所以做起来费劲,之所以做不好 tree,主要原因还是时钟结构相对复杂,其复杂程度已经超出它的能力范围了。

不仅仅需要写CTS Constraint,甚至需要加一些guidance引导工具做 CTS,比如加一些 guide buffer。关于 guide buffer 常见的几种应用可以查看之前分享的文章。

数字 IC 后端实现中 guide buffer 的应用案例(另附赠书活动)

CTS Constraint 编写方法

如果我们能够对时钟结构进行拆分,把时钟结构很清晰地告诉工具,那么它还是能够做的非常漂亮的。当然这个前提是你要理清楚整个芯片的时钟结构。

画时钟结构图和写时钟约束文件都是数字 IC 后端工程师必备的一项工作技能,当然也是一项非常核心技能。如果这项技能能够很好的掌握,那么整个数字 IC 后端设计实现,还有比这更难的吗?

数字 IC 后端时钟树综合专题(OCC 电路案例分享)

这里结合上图所示的案例,解析下如何写时钟约束文件。

首先,可以把整个芯片的时钟路径分为三部分。第一部分是晶振—-> PLL ,第二部分是 PLL—-> CLOCK GEN ,第三部分是分频器输出——-> 各个功能模块。

其次,搞清楚 CLOCK Gen 模块是用来产生各种分频时钟信号的,它本身并不会直接与其他逻辑进行一个交互。因此,该模块内的寄存器都和别人是异步的。

最后,再整理下各个时钟路径的终点和 clock exception ,比如 floating pin , exclude pin , non-stop pin ,断开一些不需要穿过 mux 的时钟等等。

好了,今天的内容分享就到这里。如果你喜欢小编的文章,帮忙点下**“在看”**并转发给你的朋友,算是鼓励支持下小编呗。

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

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

  • ICC/ICC2 lab 的编写

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

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

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

  • 时钟树结构分析

  • 低功耗设计实现

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

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

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

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

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

欢迎关注 “吾爱 IC 社区

微信号:ic-backend2018

点击下方 “阅读原文” 访问星球下载福利。

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

时钟树综合CTS技术经验分享(高薪必备)相关推荐

  1. 数字后端——时钟树综合

    在数字集成电路设计中,时钟信号是数据传输的基准,它对于同步数字系统的功能.性能和稳定性起决定性作用,所以时钟信号的特性及其分配网络尤被人们关注.时钟信号通常是整个芯片中有最大扇出.通过最长距离.以最高 ...

  2. ICC 图文学习——LAB4:CTS 时钟树综合

      时钟树综合的定义:时钟网络从根节点逐渐插入驱动器(buffer.inverter)从而达到其叶节点,按照芯片时钟网络的约束要求产生时钟树的过程.   主要内容: ·完成时钟树的综合CTS(负载平衡 ...

  3. 时钟树综合(CTS)

    目录 引言 CTS基础 什么是时钟树综合 时钟源 CTS OCV(on-chip variation) 时钟树综合的目标 1. clock latency 尽量短 2. clock skew 尽量小 ...

  4. ICC_lab总结——ICC_lab4:时钟树综合

    时钟树综合的理论知识总结在这里:http://www.cnblogs.com/IClearner/p/6580034.html 下面是实践环节:使用ICC进行时钟树综合. 这个实验的目标是: ·设置C ...

  5. 计算机专业基础综合408备考经验分享

    计算机专业基础综合408备考经验分享 写这些个经验贴,其实倒是很耗费时间的,不过想来想去,或许真能有点用,也就写了. 序言 关于计算机专业基础综合408这个科目,有些同学不了解,这里做个科普 该科目考 ...

  6. 新东方APP技术架构演进, C端技术经验分享

    新东方APP技术架构演进, C端技术经验分享 作者:张建鑫, 曾任IBM高级软件架构师, 滴滴高级技术专家, 现任新东方集团高级技术总监 古代东西方的思想家都产生过一个终极的追问,世界的本元到底是什么 ...

  7. 数字IC后端流程——(四)时钟树综合Clock Tree Synthesis

    参考原博地址:https://blog.csdn.net/weixin_46752319/article/details/107387584 ICC时钟树综合 时钟树综合就是指从某个clock的roo ...

  8. [项目管理] 技术经验分享的重要性

    技术经验分享,好似主动让大家看一下热闹.热闹还是要看的? 看热闹其实应该更名为,社会事件现场经验分享会.是一个临时形成的大会,就近的人类都会加入打听,讨论,观摩,整个社会事件的发生,成长,及消亡的历程 ...

  9. 北交大研究生计算机科学方向,北京交通大学考研历程计算机科学与技术经验分享...

    原标题:北京交通大学考研历程计算机科学与技术经验分享 各位学弟学妹好,先简单的介绍下我的情况吧.我就读于一所普通本科院校,一战已被北京交通大学拟录取,专业是计算机科学与技术(学硕).前段时间一直在准备 ...

最新文章

  1. touch: cannot touch /usr/local/tomcat/logs/catalina.out: Permission denied解决方法
  2. webpack 多页面 html,webpack打包多页应用,如何处理不同html页面(通过a标签)之间的跳转?...
  3. SoapUI简介和入门实例解析
  4. 研究表明,胸大无脑是不存在的......
  5. 对抗学习新进展:MIT和微软联合出品“元对抗扰动”
  6. 3D数学基础学习笔记(Unity3d)
  7. oracle循环视频教程,玩转Oracle入门知识和实战教程---韩顺平主讲(全31集)
  8. 步进电机正反转实验_三相异步电机正反转控制原理图
  9. 做中学之五笔输入法实践教程
  10. 洛雪音乐助手(五音版)
  11. Linux中rpm详解
  12. python源码文件的后缀名_Python 源代码程序编译后的文件扩展名为_________。_学小易找答案...
  13. Bot Chat(聊天机器人) AdaptiveCard的用法(源码)
  14. tomcat发布web项目为什么页面图片显示不出来
  15. python根据四点坐标截取图片
  16. 印象笔记、为知笔记、有道云笔记使用比较
  17. 笔记本电池使用及维护
  18. vue入门学习(一)
  19. IPSec的三个协议和两种模式详解
  20. PLC PID控制优化系列之微分先行

热门文章

  1. STM32CubeIDE使用
  2. 城市名字 按a-z排序
  3. 关于阻止迅雷上传,带慢计算机的工具
  4. 鸡嗉囊病预防的方法 鸡防治嗦囊炎病用什么药
  5. 使用Jsp+Servlet的wlop官网(验证码登录+session自动登陆)
  6. 苹果笔记本计算机内存不足怎么办,苹果手机更新系统内存不够怎么处理-电脑内存不足怎么解决...
  7. Lua 颜色值转换 -- Color
  8. JDK异常处理No appropriate protocol
  9. IDEA代码放大缩小快捷键设置、注释、标识符以及关键字。
  10. MySQL Workbench 8.0新建SCHEMAS和Table