盘点数字IC后端实现中clock skew大的各种场景

这篇具有很好参考价值的文章主要介绍了盘点数字IC后端实现中clock skew大的各种场景。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

盘点数字IC后端实现中clock skew大的各种场景

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

在分享今天的技术主题之前,告诉大家一个好消息。年底了,很多小伙伴们又开始着手换工作了,因此,应各位邀请小编准备开始尝试IC 前后端招聘相关的业务服务。简单来说就是,各位如果想换个更好的工作,可以私信(微信号:ic-backend2018),小编会帮你出谋划策,避坑,做好职业规划甚至提供技术指导。最重要的是这项服务还是免费的,对的,你没有看错,完全不收费。目前仅面向吾爱 IC 社区 VIP 会员(知识星球用户)。

如果你相信认可小编,可以让小编来为你做好 IC 的职业生涯规划,早日实现年薪百万的目标。

盘点数字IC后端实现中clock skew大的各种场景

好了,下面进入今天的主题。

前阵子分享如何在 innovus 中分析 clock tree latency 的合理性专题后,相信很多小伙伴应该都已经 get 到这种技能了,应该能独立分析一个相对简单时钟结构 block 的 clock tree latency,以及快速知道你 design 的 tree 应该长多长。

手把手教你如何在 Innovus 中分析 clock tree 质量

我们知道衡量时钟树的两大指标是clock tree latencyclock skew。那今天小编将继续教你如何分析 clock skew 的合理性。掌握好这两大技术指标后,你的技术水平可以甩别人好几条街。

Clock Skew 定义

Clock Skew 是指 max clock latency 和 min clock latency 的差值(Clock Tree Synthesis 后)。而 Clock Skew 又可分为Global skewLocal skew两大类。

  • Global skew

Global skew 是泛指 design 中任意两个寄存器 latency 之差的最大值。

  • Local skew

Local skew 是指 design 中两个相关寄存器 latency 之差的最大值。因此,在数字后端设计实现中,我们更多的是关注 local skew。因为 local skew 会直接影响到我们的时序(setup 和 hold)。

下图所示 FF1 和 FF2 的 Local skew 为 3 个 buffer 的 delay,即 150ps(本文假定一个 buffer delay 为 50ps)。FF3 和 FF4 直接的 Local skew 为 100ps。那么 Global skew 是不是 200ps 呢?

盘点数字IC后端实现中clock skew大的各种场景

[思考题] 什么时候 global clock skew 会小于 local clock skew?

盘点数字IC后端实现中clock skew大的各种场景

如何查看 Clock Skew

掌握了 Clock Skew 概念后,那在实际做项目过程中,我们该如何知道 clock skew 是多少呢?主要可以有下面几种方式:

  • 从 log 中获取

从 log 中可以知道每个 stage 做完后的 skew 到底是多少,以及有多少比例是符合预期的 target skew。图中的ratio 为何那么低,各位猜猜是什么原因呢?

盘点数字IC后端实现中clock skew大的各种场景

  • 从 clock tree report 获取

report_clock_tree

report_ccopt_clock_tree

  • 从 timing report 上获取

有的时候你可能是通过报某条 path 来看 clock skew,但是需要注意的是这里的 clock skew 会偏大些,主要是因为它考虑了 derate,而 log 中和 clock tree report 中报出来的 clock skew 均不包含 derate。

所以,当有人问题 report_timing 和 report_clock_timing 有何区别的时候,可别再模拟两可了哦,大胆告诉他正确答案。

Clock Skew 多大是合理的?

知道了 clock skew 大小后,你如何知道它是否合理呢?比如当前 clock skew 是 120ps,你觉得合理吗,是否可以接着往下跑 flow 吗?clock skew 需要做到多小,取决于你的设计需求,没有统一的答案。比如 ddr 实现可能要求 skew 在 20ps 内,而普通模块则可以更宽松,一般 100ps 以内均属于正常范畴。

知道 clock skew 大小后,不要仅仅停留在这个值上面,它本身没有太多价值的信息,而是要通过分析得知当前 clock skew 值是何原因导致的?可否有进一步减少的空间?

Clock Skew 太大怎么办?

如果发现 clock skew 太大,我们可以通过分析找出偏大的原因,然后才能对症下药,解决问题。今天小编分享几种常见的原因。这几种情况基本上可以覆盖项目中的 90% 的情景,所以要认真看做好笔记哦。大家在做项目的过程中,可以通过逐一排查,一定可以找到 clock skew 偏大的原因。

  • target clock skew 设置值偏大

不论是 C 家还是 S 家的工具,在长 tree 之前都会设置 target skew 值。这个值是告诉工具你的 clock skew 期望值是多少。一般情况下,建议设置 50-80ps 之间即可。如果你不小心将 target clock skew 设置成 250ps,那么工具最终做出来的可能就会在 250ps 左右。这个就有点像 flow 中对 max transition 的约束一样。

  • data 和 clock 交叉

这种情况也比较常见,主要原因是 constraint 不完备导致的。一个典型的情况是当你看 hold violation 时发现有 500ps violation,乍一看就是 clock skew 严重不 balance 导致的。仔细分析后发现原来 capture clock path 上有一堆的 data。这种情况小编称之为 data 和 clock 互穿或交叉。解决方法要么是disable timing arc,要么就是设置 clock sense

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

这种场景乍一看是不是有点晕,没关系,多看多实践,不懂来小编知识星球多提问多交流,久而久之就自然懂了!

  • Clock Tree 上的 cell 是否有dont use/touch 属性

时钟树上一般是由 Clock buffer,clock inverter,icg,mux 和一些 AND/OR 等组成的。所以需要检查 flow 中用于长 tree 的 inverter 种类,检查可用的 icg 驱动强度有哪几档,以及检查时钟分频电路上用的 AND/OR 的选型。

  • 检查 macro 是否有interal clock tree

这种情况相当常见,典型的案例是 memory 内部有 clock tree。这段内部的 clock tree 是体现在它的 lib 中,表现为 min_clock_path 和 max_clock_path。

盘点数字IC后端实现中clock skew大的各种场景

从 lib 中可以看到这颗 memory 内部就存在至少 100ps 的 skew。所以当遇到这种情况,如果不做特殊处理,长好 tree 后 clock skew 可能高达 300ps。如果你去硬修 hold violation,一方面可能是 hold buffer 会插爆,另外一方面是浪费 leakage 和面积。

所以,你可以打开你 memory 的 lib 看看是否有 interal 的 clock tree 定义。那么怎么解决呢?很简单,将这类 marco 的 clk设置一个 floating pin 为 0 的值,让工具不要管内部的那段 clock skew 即可。

盘点数字IC后端实现中clock skew大的各种场景

  • 检查 macro 内部是否有 interal checkpin

当一个 pin 既有 sequential arc 又有 combinational arc 时,library compiler 会产生一个内部的 checkpin,用于区分这两种 arc。以下图为例,U5 的 lib 中会有一个 interal 的 checkpin。默认情况下,工具长 Tree 时会把 U5/CK,U5/checkpin 和 U52/U53 的 CK 都当成 sink 来做 balance,从而导致比较大的 clock skew。

当遇到这种情况,可以通过下面的命令告诉工具将这个点 exclude 掉来解决 clock skew 偏大的问题。

set_clock_tree_exceptions -non_stop_pin U5/CKcheckpin1

所以,如果你的设计中是带有子模块的,当出现子模块的 checkpin 时,可以检查下抽 ETM 的环境,大部分情况是 ETM 抽取存在问题。

盘点数字IC后端实现中clock skew大的各种场景

  • 检查 clock tree net 是否有比较大的 max transition

如果 clock tree 上某个 high fanout net 被设置成dont touch 或者 ideal network,那么工具就无法解这个 fanout,从而会导致这个分支 delay 特别大。

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

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

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

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

  • 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 后端设计实现领域的相关问题进行提问,也可以就职业发展规划问题进行咨询,也可以把困扰你的问题拿出来一起讨论交流。对于提问的问题尽量做到有问必答,如遇到不懂的,也会通过查阅资料或者请教专家来解答问题。在这里鼓励大家积极发表主题,提问,从而促进整个知识社群的良性循环。每个月小编会针对活跃用户进行打赏。

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

盘点数字IC后端实现中clock skew大的各种场景

欢迎关注 “吾爱 IC 社区

微信号:ic-backend2018

盘点数字IC后端实现中clock skew大的各种场景

https://mp.weixin.qq.com/s/vR6S-lgsWyESsk1kTvCVng文章来源地址https://www.toymoban.com/news/detail-427758.html

到了这里,关于盘点数字IC后端实现中clock skew大的各种场景的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数字IC经典电路(3)——经典除法器的实现(除法器简介及Verilog实现)

    除法器是一种用于执行除法运算的电路或器件。在数字电路中,除法器经常被用作重要的计算单元,其主要功能是将一个数除以另一个数并给出商和余数。 与加法器和减法器类似,除法器也属于算术逻辑单元(ALU)的一种。不同的是,加法器和减法器能够执行加法和减法运算,

    2024年02月02日
    浏览(43)
  • 数字IC经典电路(2)——经典乘法器的实现(乘法器简介及Verilog实现)

    数字电路中乘法器是一种常见的电子元件,其基本含义是将两个数字相乘,并输出其乘积。与加法器不同,乘法器可以实现更复杂的运算,因此在数字电路系统中有着广泛的应用。 乘法器的主要用途是在数字信号处理、计算机科学以及其他数字电路应用中进行精确的数字乘法

    2024年02月06日
    浏览(64)
  • 数字IC经典电路(1)——经典加法器的实现(加法器简介及Verilog实现)

    加法器是数字系统最基础的计算单元,用来产生两个数的和,加法器是以二进制作运算。负数可用二的补数来表示,减法器也是加法器,乘法器可以由加法器和移位器实现。加法器和乘法器由于会频繁使用,因此加法器的速度也影响着整个系统的计算速度。对加法器的设计也

    2024年02月14日
    浏览(52)
  • 数字IC经典电路(4)——经典滤波器的实现(滤波器简介及Verilog实现)

    数字滤波器一般可以分为两类:有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器。 在Verilog综合方面,通常可以实现四种数字滤波器: 基于时域采样的FIR滤波器(Time Domain Sampling FIR Filter) 快速傅里叶变换(FFT)算法实现的FIR滤波器(FFT-based FIR Filter) 直接IIR滤波器

    2024年02月09日
    浏览(44)
  • 【华为OD】C卷真题 200分:矩阵匹配 第K大的数字的最小值 java语言实现 【思路+代码】

    C语言代码实现: 【华为OD】C卷真题 200分:矩阵匹配 第K大的数字的最小值C语言实现 【思路+代码】-CSDN博客 C++代码实现: 【华为OD】C卷真题 200分:矩阵匹配 第K大的数字的最小值C/C++语言实现 【思路+代码】-CSDN博客 从一个N*M(N=M)的矩阵中选出N个数,任意两个数字不能在同

    2024年01月19日
    浏览(50)
  • 基于Spring Gateway路由判断器实现各种灰度发布场景

    以前使用APISIX实现过灰度发布《jenkins与apisix整合,实现自动化部署与负载均衡、灰度发布(蓝绿发布)》 同样可以使用Spring Gateway实现类似灰度功能。本文使用前文的示例代码《Spring Cloud 2022.x版本使用gateway和nacos实现动态路由和负载均衡》来演示效果 app1和app2两个工程都增

    2024年02月10日
    浏览(42)
  • 「数字IC设计项目」 —— AHB SRAM控制器设计 & March C-算法内建自测试的实现

    本项目用Verilog HDL语言设计了AHB总线上的SRAM控制器,SRAM存储器在AHB总线上作为AHB slave存在,该SRAM控制器具有以下特性: 支持单周期的SRAM读写操作 支持低功耗工作 SRAM存储体由两个Bank组成,系统根据地址选中一块/多块Bank,未被选中的Bank将处于low-power standby模式以降低功耗

    2024年02月01日
    浏览(37)
  • RFID第一期——各种IC卡ID卡详解

    博客地址:https://lmark.cc/ 放假闲来无事,在B站冲浪,看到有人在讨论IC卡,我在这方面刚好还是有这么一点了解,就拿MF1卡给别人举了个例子,然后MF1卡就被开除出IC卡籍了。 有点气,但是仔细想想,网上关于这些卡的介绍知识太少了,有些人区分不了也很正常,于是我查阅

    2024年02月02日
    浏览(56)
  • 观察者模式(上):详解各种应用场景下观察者模式的不同实现方式

            从今天起,我们开始学习行为型设计模式。我们知道,创建型设计模式主要解决“对象的创建”问题,结构型设计模式主要解决“类或对象的组合或组装”问题,那行为型设计模式主要解决的就是“ 类或对象之间的交互 ”问题。 原理及应用场景剖析 在对象之间

    2024年02月16日
    浏览(52)
  • 材料行业可以转IC设计后端吗?

    近来有许多材料行业的小伙伴通过后台来问我对于职业规划的看法,甚至有些小伙伴直接点明了某个行业适不适合自己,那么我这边仅以近年来比较热门的数字芯片设计来展开讲讲,材料适不适合转行做IC呢。 对于理工科的同学而言,选择哪个行业可以收获高额的薪资,更好

    2024年02月12日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包