新闻资讯你的位置:上海羽雷工贸有限公司 > 新闻资讯 > 这个命令可以在create spec之前或之后运行
这个命令可以在create spec之前或之后运行

发布日期:2024-06-25 10:41    点击次数:188

  

这个命令可以在create spec之前或之后运行

    这里讲的可都是干货,为什么没人打赏呢。

图片公司简介

图片

ccopt_design1ccopt_design

这就是ccopt的核心命令,一般有两种用法:

    ccopt_design -cts 即只做tree,不考虑useful-skew,不做datapath优化。这里有个问题,就是加入-cts参数和通过setOptMode等命令关闭usefulskew有什么联系或区别?这里我只能说说我的理解:采用setOptMode关闭usefulSkew只是对利用usefulskew做了限制;而-cts额外的使得限制优化引擎对datapath所做的优化。

    ccopt_design 没有任何参数,完整的CCOPT流程

除了ccopt_design,经常还会用到下面的命令:

2ccopt_pro

主要用于fix DRV。有时候用于fix-skew。命令只作用于clock-tree上面,不作用于datapath。可以用于poctCTS/route/postRoute等各个阶段。当然在CTS阶段优化幅度大,postRoute阶段优化幅度小。

3skewClock

主要用于调节skew,用于pre-CTS/post-CTS。通过setUsefulSkewMode来控制。一般不怎么用到这个命令,因为optDesign中已经采用了skewClock的引擎,一般用打开usefulskew后用optDesign就可以了。

4bufferTreeSynthesis

用于high-fanout net,不一定用于clock

图片

spec&property4delete_ccopt_clock_tree_spec

用这个命令会删掉任何skew_group/clock_tree/sink_type等相关的设置。但是其他的一些ccopt_property还是会保留。一般只用这个命令就可以了。如果想要将ccopt的相关设置删除的干干净净,可以用reset_ccopt_config。

4create_ccopt_clock_tree_spec

从SDC中生成spec,在用这个命令之前,需要注意下面几点:

    a. 在create 之前一定要delete spec

    b. sink_type等ccopt_property一定要在create之前设置

    c. 如果之前已经source spec,不能再次create spec。 (为什么不能再次Create呢?因为spec中有create_ccopt_clock 命令,只要之前source的spec中含有create_ccopt_clock,就不能再次Create spec。)

4set_ccopt_property

ccopt的property很多,需要专门花很多篇文章去讲这里先不说了。这个命令的help 比较特殊, 肇东市和南土特产有限公司如下面所示, 宁波亿鑫诚电器有限公司两种用法都可以:

图片

4create_ccopt_skew_group

    定义需要Balance的点。通过create spec得到的spec文件里面,广东省农垦集团进出口有限公司master-clock是有skew-group的,generated-clock是没有skew-group的(report-only);即工具默认的行为是从master-clock开始balance。这个命令可以在create spec之前或之后运行,不过经常放在Create spec之后。这个命令里面的option很多和ccopt_property里面的重复,具体细节等下次再讲

4save_ccopt_config

    用于保存ccopt的所有相关设置(saveDesign同样可以,会产生一个*enc.dat/ccopt的目录)。如果想在ccopt_design命令运行之前,查看所有的property/skew-group,用create_spec的方法是不行的,只有通过这种方法。可以用于检查某些property是否真的设置成功了。

图片

report/display

下面的这些命令都需要Create_spec之后才能运行,成功案例但并不是一定要在ccopt_design命令之后才能运行。

图片

        得到clock上的inst/nets

图片

        乍一看字面的意思只是用于显示bufferTree,但还有一个更有用的用途就是:选中clock-buffer。

图片

        用于查看插入的cell名字含义,比如说ccl代表在cluster阶段插入的。

图片

        经常会加上-show_sinks,用于查看/debug clock-tree,查看某些pin是否被ignore了,没有被balance(吐出的report里面含有sink_type等关键字)。

图片

        经常会加上-summary选项,主要用于查看tree上面transition 情况,以及用了哪些cell

图片

        经常会加上-summary选项,主要用于CTS完成之后skew的情况。

图片

        同all_fanout/all_fanin一样的功能,但比他们更强大,具体参数可以参考里面的help,

图片

merge mode

     现在的design通常都有几种模式:func & scan,两种模式下clk不一样,set_case_analysis的值也不一样。这样就产生了一个问题:是先做func还是先做scan?还是可以一起做。这就是merge mode和sequential mode。在CCOPT中,推荐是用merge mode,工具可以处理的很好。但是有些人可能说坚持要用sequential mode,因为func模式比scan模式更重要,clock更快,insertion-delay的大小会对timing有很大的影响。当然想法是好的。但实际情况会于遇到很多问题,比如:

    a. 如果func或scan的SDC中有些case_analysis没有设置正确,在merge-mode下工具仍然会做的很好,但是如果在sequential中,那就惨不忍睹。

    b. clock reconve的问题,同一个clock分叉后又汇合到一点。

    c. 做完func之后,一些net/inst就被固定了,紧接着scan模式可能会做不好

    下面简单介绍两种模式的流程:

a. merge mode:

图片

b. sequential mode:

图片

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。

Powered by 上海羽雷工贸有限公司 @2013-2022 RSS地图 HTML地图

Copyright 站群系统 © 2013-2024 SSWL 版权所有