Debug时钟树 (2) | 时钟树分析窗口
mixin价格走势
mixin价格走势

新闻动态

Debug时钟树 (2) | 时钟树分析窗口

发布日期:2025-08-07 06:57    点击次数:143

图片

工欲善其事,必先利其器。

今天介绍一个功能极其强大的工具(毫不吹牛),时钟树分析窗口,不然你可以给我头上浇水

图片

图片

图片

分析时钟树可以看log,可以看report,当然也可以看脚本,但都不直观。因此ICC2提供一个专用的窗口来分析时钟树,有了他,妈妈再也不用担心我的debug了。

如何打开

图片

打开后,弹出如下新的窗口。

图片

主窗口会显示所有的clock。这个case比较简单,只有一个时钟CORECLK。注意,时钟名前有个M,代表啥?代表Master clock,如果是个generated clock,则会显示G。

当然了,时钟树的基本信息都有:source,period等等。

下一步该看啥?一般我会在选中的时钟上,右键点击:弹出如下菜单。

图片

这个菜单包含了大多数功能!

把这些功能用熟悉了,debug时钟树会非常的高效!下面一个一个来看。

Clock Tree Levelized Graph

点击后,弹出如下窗口。

图片

这个是时钟树结构的简图,按照级数来显示。里面哪些是buffer/inverter,哪些是ICG,MUX,REG,都非常清楚,一目了然。

从上图也可以看到,时钟树最长是16级,而有些寄存器只长了5级。为啥差别那么大?因为用了CCD,而且用了很猛的CCD,所以skew大很正常,级数差那么大也正常。

比如想看某个寄存器长了多少级buffer,直接 change_selection [get_cells xxx],则在这个图里就会highlight出这个cell,很直观。

为了debug,可以选择显示,或者不显示某些cell。

图片

比如,我不想看ICG,只想看BUFFER/INVERTER。时钟树结构则变成如下图所示,非常灵活。

图片

或者我不想看BUFFER/INVERTER,则得到下图。

图片

这是啥?

这就是做CTS之前的时钟树结构,因为BUFFER/INVERTER都是CTS插进去的嘛。把他们干掉不就是CTS之前的结构么。这样你就不用去打开place的database去看CTS之前的样子。是不是很方便?你可以继续玩弄这个GUI,会有很多惊喜。

还可以把鼠标停留在某个cell上面,会得到一些信息。

原来这里不是一个寄存器,而是2万多个寄存器

图片

,没有被骗到吧?

图片

Clock Tree Latency Graph of Selected Corner

这是按照latency来显示时钟树结构,也被广泛使用。可以看到每个寄存器的latency,latency大致分布等情况。

有的时候,如果某个子树长的不符合预期,则在这个gui里很容易用鼠标选择整个子树来分析,而不用写脚本来抓。

图片

Highlight Longest/Shortest Path From Source

这个也常常使用,我们看看哪个sink长的树最长/短,以及怎么长的。点上这个菜单后,会同时在时钟树结构图和layout图里highlight这个最长/短路径。是不是很直观?

图片

图片

Launch/Capture Latency Histogram of Selected Corner

这个用柱状图的方式来显示latency的分布,更直观!

图片

Clock Tree Object List

用这个窗口快速找到想要的object,比写脚本快非常多。

图片

比如我想找第7级之前的所有的buffer:

0.001s钟后,全部出来了。

图片

其它功能

对了,窗口里面有个“Exception”,很有用,有时候对debug时钟树能帮很大很大的忙。

啥是exception:就是工具自动推导的,或者user手动设置的,对哪些sink/port不需要做balance等等

比如,我想看看时钟树里有哪些Exception,我们可以只留下exception和Sequential cell,别的统统关掉。这时候,真的只剩下10个exception和一堆寄存器。

图片

鼠标放在其中一个Exception上,Label是E,啥意思?

E是Explicit的缩写,意思是这个exception是user自己定义的。

没错,因为我刚故意对这个寄存器设置了consider_for_balance=false

图片

图片

图片

再看隔壁班那个Exception,Label是IE,啥意思?

图片

IE是Implicit Exception的缩写,意思是工具自动推导出来的。

纳尼?为啥工具会自动忽略这个pin呢?

我们把schematic打开,trace一下这个cell。

哦,原来这个cell的输出是到output去了,所以工具自动不balance这个port。

图片

图片

图片

图片

还一个很强大也很简单的用途,容我再啰嗦一下,就是这个窗口和layout窗口永远是同步的,不管你选择了啥东西,立马在layout窗口上同步选上了。这个功能我非常喜欢

图片

图片

图片

图片

 

图片

好了,以上是抛砖引玉,更多好玩实用的功能,鼓励你继续探索!

【往期回顾】

Debug时钟树(1) | 看log 本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。