icc在cts时如何设置dont_size_up cell
时间:10-02
整理:3721RD
点击:
在clock网络上的一些非buffer的cell,需要设置一下dont_size_up,比如一个rtl阶段例化的icg单元
看了ug说,cts opt时会忽视已经设置过dont_touch属性的cell
因此需要加上set_clock_tree_exceptions -dont_size_cell
现在的脚本如下,但我在cts之后任然发现cell被size up了
set_clock_tree_exceptions -dont_size_cell [get_cells $cell_name] -clock [all_clocks]
clock_opt -fix_hold_all_clock -power -no_clock_route
optimize_clock_tree -buffer_relocation -buffer_sizing -gate_relocation
求助原因
看了ug说,cts opt时会忽视已经设置过dont_touch属性的cell
因此需要加上set_clock_tree_exceptions -dont_size_cell
现在的脚本如下,但我在cts之后任然发现cell被size up了
set_clock_tree_exceptions -dont_size_cell [get_cells $cell_name] -clock [all_clocks]
clock_opt -fix_hold_all_clock -power -no_clock_route
optimize_clock_tree -buffer_relocation -buffer_sizing -gate_relocation
求助原因
[get_cells $cell_name]
你的cell_name的变量是啥?
实在不行 set_dont_touch ,或者设置is_fixed 属性得了,
就完全不会变,
netlist里面的cell里面用了通配符,我这里只是简单写了一下。
get_cell“*_x_cell”差不多就是这样了。
set_dont_touch这些cell是不行的,ug上说cts时会忽视dont_touch属性。
我来回答下把,dont_touch是placement的属性,cts是会忽略的,tool本身的问题,如果你期望CTS的时候,还是dont_touch,请用set_clock_tree_execption
已经设置了。但是cts的时候还是做了size up
那么只能请小编去验证一下你的设定是否在某个buffer上了。
report_clock_tree -exceptions
AC 果然犀利啊
哈哈
很好办,把你之前确认到的size up的instance name(也就是网表中的器件名字)抓出来,比如XXXXX/AAAAset_clock_tree_exceptions -dont_size_cell [get_cells XXXXX/AAAA]
然后你再试试看看变不变。
如果这样可以符合要求了,只能说明你的通配符法设定是不对滴!
另外,时钟树中的clkbuf或clkinv由于后面opt的影响所以是会调整大小的,但是应该不会影响很大,属性为cts_fixed。
学习了了来了