如何成为时钟树综合专家?原来你也可以

如何成为时钟树综合专家?原来你也可以!

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

最近吾爱 IC 社区公众号一周年搞了一个赠书的活动,总共送出五本**<>,基本上是只要参加活动了,都拿到了该纸质书籍,此时此刻大部分都已经拿到该书籍(本书籍每本成本约 90 元)。没有参加此次活动的朋友,可以继续关注今后的相关活动。因为小编决定今后会不定期赠送各种 training 的 workshop 和 IC 相关方面的书籍**。

另外,为了回馈各位星球成员,待小编整理好该书籍对应的电子版后,会发布在知识星球上 (目前知识星球已经有**130+**成员)。

今天小编将通过分享一道时钟树相关的题目,引申出如何去分析和 debug clock tree。(问答摘选于知识星球)

现在做的时钟有 1ns 的 skew,怎么减小? 有哪些原因造成了 skew 这么大?怎么可以减小它?

首先要找出这么大的 clock skew 的主要原因,才能够解决它。 建议先把这个 clock 下最长和最短的时钟路径报出来,并在 layout highlight 出来,然后再分析(比如是不是 constraint 的问题),此处省略一万字!

每次做时钟树综合,小编都会习惯把以下这些 report 都生成一遍,然后根据这些文件进行分析和 debug。

report_clock_qor > clock_tree_qor.rpt

这个文件可以很清晰看到每个时钟长 tree 的详细信息,比如 max clock latency,global skew,DRC 数量等。

一网打尽时钟树综合 Clock Skew

report_clock_timing -type latency > clock_latency.rpt

这个文件可以看到每个 clock group 下最长的 clock latency 是哪个点,对应的 clock latency 是多少。通过这个文件,可以很直观得知,某段 clock tree 的长度是否正常,是否符合预期。

report_clock_qor -type structure > clock.structure.rpt

通过这个文件,可以很清晰得知各段时钟树是如何长的,经常可以用 ICC/ICC2 的 gui 和这个文件来协同 debug clock tree。

report_clock_balance_points > clock.exception.rpt

这个文件会列出每个 clock 的 balance point 和 exclude point。通过这个文件可以很清晰看到我们预期做短的某些点,stop pin,floating pin,exclude pin 等是否设置成功。

check_clock_trees -clocks [all_clocks ] > check_clock_tree.rpt

Check_clock_trees 真的非常有用,它可以报告出时钟定义,比如 create_clock,create_generated_clock 是否正确,clock buffer 或者 clock inverter 的 reference list 是否有问题,哪些 sinks 没有时钟约束,哪些地方做了 disable timing 了,哪些 skew balance 存在问题等。通过这些信息,可以快速定位出问题的地方。

举个很常见的例子,比如为何我做了时钟树综合不成功,工具报 clock tree synthesis failed。这个问题很有可能是因为指定的 clock inverter 或者 clock buffer 存在问题。

又比如一个两输入的 MUX,理论上你在 PR 工具中可以报出两路的 clock tree,可为何有一路就是报不出来?原因可能就是 cts constraint 中设置了 disable timing,将其中一路断开了。

又比如下面这个例子,在 reg01 的 output 处只定义了一个 generated clock gen_clkb,其 master_clock 为 clkb。

好了,今天关于时钟树的内容分享就到这里了。如果你能够**理解设计,****熟悉时钟结构 **,并熟练利用好以上这些命令,时钟树综合相关问题,对你来说就是小菜一碟,你也一定能够成为时钟树综合方面的专家。

合理的时钟结构能够加速 Timing 收敛(时钟树综合中级篇)

数字后端设计实现之时钟树综合实践篇

**小编知识星球简介 **

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

  • ICC/ICC2 lab 的编写

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

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

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

  • 时钟树结构分析

  • 低功耗设计实现

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

在这里,各位可以就公众号推文的内容或者实际项目中遇到的难题提问,小编会在 24 小时内给予解答(也可以发表你对数字后端设计实现中某个知识点的看法,项目中遇到的难点,困惑或者职业发展规划等)。

反正它是一个缩减版的论坛,增强了大家的互动性。更为重要的是,微信有知识星球的小程序入口。星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有132星球成员,感谢这 132 位童鞋的支持!欢迎各位铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标。(星球的门票即将调整到 228 元 / 年,有需求的朋友趁早上车,**目前价格已经提高至 208 元 / 年,折算每天需要六毛钱 **)

点击下方 “阅读全文” 了解更多

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值