ICC中如何应用connect_tie_cells?
假设网表中都是:
cellname instancename (.D(1'b1) .A($^&$%^) .B(#$%#^%))
下面设置是没问题的
connect_tie_cells -objects {"instancename/D"} -object_type port_inst -tie_high_lib_cell TIEH
如果我想设置为 -objects {"cellname/D"} 该如何去设置呢?设置了下,不成功……,不知道是否只能是用instancename来做
感觉还是EDI的好用呀……
先用 derive_pg_connections-power_net VDD -ground_net VSS -tie
一般来说 只对网表里面的 1'b1 , 1'b0进行tie添加,
下面是通用的写法:
connect_tie_cells-object_type port_inst -objects [get_pins * -hier
-filter "net_name==VDD || net_name==VSS"]-cells tiehl ,
-objects 是指定要加的具体的instance,pin这种,看看 -object_type 的类型,
可能可以改的,
IC_Compiler_PG_Tie-off_Editing_Application_Note_
from solvnet 。 写的比较相信, 有兴趣可以看以看。
文档哪里有?能否共享一下?多谢
多谢,我尝试一下!
有人推荐我在place前网表中就加入TIEHILO单元,然后place_opt时自动考虑进timing和congestion
当然,place后再加和icfb的方法一致
derive_pg_connections-power_net VDD -ground_net VSS -tie
set getTiePins [get_pins -of_objects [get_nets -all -hier {VDD VSS}]]
connect_tie_cells -objects $getTiePins -obj_type port_inst-tie_high_lib_cell TIEHI -tie_low_lib_cell TIELO -max_fanout 4
set getTieNets [get_nets TIE*]
report_net_fanout $getTieNets
啥时候加tiecell ,这个不重要,我喜欢在route之前加,
BTW : icc userguide上面说可以在place_opt里面自动加,考虑wire length,fanout比较好,
更优化一些东西, 不用
connect_tie_cells , 这个我一直没试验成功, 就只能用connect_tie_cells 了,
那位成功过么?
# enable tieoff cell opt flow :seems no use , use connect_tie_cells.tcl instead ,
set_auto_disable_drc_nets -constant false
set physopt_new_fix_constants true
set_attribute [get_lib_pinstcbn65gplustc/TIEH/Z ]max_fanout5
set_attribute [get_lib_pinstcbn65gplustc/TIEL/ZN ]max_fanout5
place_opt
可以的,没问题,我试过了,让网表保持1'b1/1'b0的状态
把相关设置在脚本中加上,记得添加
remove_attribute tie_cel_fast_db/TIE* dont_touch
remove_attribute tie_cel_slow_db/TIE* dont_touch
remove_attribute tie_cel_fast_db/TIE* dont_use
remove_attribute tie_cel_slow_db/TIE* dont_use
在place_opt前可以添加 set_complie_instance_name_prefix icc_place_opt
place_opt后,report_design -physical,然后查找TIEHI/TIELO单元,发现存在几个,
在layout中找到,然后看到cellname是icc_place_opt开头的单元。
只是这种情况下不方便找到他们,不如connect_tie_cells添加后直接highlight TIE*就可以
你知道怎么highlight这种情况下的他们么?
怎么回复了的帖子,没有了?
我试过ICC在place_opt里自动加是可以的,设置和你写的一样,
另外把TIEHI/TIELO的dont_use/dont_touch去掉了
set_auto_disable_drc_nets -constant false
set physopt_new_fix_constants true
remove_attribute [get_lib_cells */SC*TIEHI*] dont_use
remove_attribute [get_lib_cells */SC*TIELO*] dont_use
remove_attribute [get_lib_cells */SC*TIEHI*] dont_touch
remove_attribute [get_lib_cells */SC*TIELO*] dont_touch
重打一遍吧,唉……
可以的,我试了一下,在vnet中保留1'b0/1'b1的状态
然后在.synopsys_dc_setup中添加
remove_attribute tie_cel_fast_db/TIE* dont_touch
remove_attribute tie_cel_slow_db/TIE* dont_touch
remove_attribute tie_cel_fast_db/TIE* dont_use
remove_attribute tie_cel_slow_db/TIE* dont_use
在网表中设置其他那些东东。
在脚本中添加set_complie_instance_name_prefix icc_place_opt
然后place_opt
之后report_design -physical,报告中能找到添加了几个单元。
然后再layout中找到他们,发现cellname为icc_place_opt开头的
只是这种情况下不好一下在layout中找到他们,不如用connect_tie_cells,可以直接用highlight TIE*来直接在layout中直观显示。
你知道这种方法怎么highlight添加的单元么?
重打一遍吧,唉……
可以的,我试了一下,在vnet中保留1'b0/1'b1的状态
然后在.synopsys_dc_setup中添加
remove_attribute tie_cel_fast_db/TIE* dont_touch
remove_attribute tie_cel_slow_db/TIE* dont_touch
remove_attribute tie_cel_fast_db/TIE* dont_use
remove_attribute tie_cel_slow_db/TIE* dont_use
在网表中设置其他那些东东。
在脚本中添加set_complie_instance_name_prefix icc_place_opt
然后place_opt
然后report_design -physical,报告中能找到添加了几个单元。
然后再layout中找到他们,发现cellname为icc_place_opt开头的
只是这种情况下不好一下在layout中找到他们,不如用connect_tie_cells,可以直接用highlight TIE*来直接在layout中直观显示。
你知道这种方法怎么highlight添加的单元么?
看见了,
发帖几遍很正常,网络延迟的关系
多谢各位,可能是我 dont_touch/dont_use 忘记去掉了
可以在DC的时候用remove_attribute [get_lib_cells */SC*TIEHI*] dont_use
remove_attribute [get_lib_cells */SC*TIELO*] dont_use
remove_attribute [get_lib_cells */SC*TIEHI*] dont_touch
remove_attribute [get_lib_cells */SC*TIELO*] dont_touch这些脚本么?
用connect_tie_cells 怎么给output port加tie cell啊 我试了很多遍都不行啊 。小编赐教
看到你得帖子了
TIEHI/TIELO单元默认是dont_touch的属性吗?
.lib有描述吧,你看一下你用的工艺文件
恩恩,看到了呢,嘿嘿,原来要使用库里的单元,还可以去lib里面去了解下他的属性。
我用脚本试了一下,结果 tie的cell全部被优化掉了,包括我的spare cell 。版大知道大概什么原因吗
啥脚本?
set_auto_disable_drc_nets -constant false
set physopt_new_fix_constants true
remove_attribute [get_lib_cells */SC*TIEHI*] dont_use
remove_attribute [get_lib_cells */SC*TIELO*] dont_use
remove_attribute [get_lib_cells */SC*TIEHI*] dont_touch
remove_attribute [get_lib_cells */SC*TIELO*] dont_touch
set_auto_disable_drc_nets -constant false
set physopt_new_fix_constants true
remove_attribute [get_lib_cells */SC*TIEHI*] dont_use
remove_attribute [get_lib_cells */SC*TIELO*] dont_use
remove_attribute [get_lib_cells */SC*TIEHI*] dont_touch
remove_attribute [get_lib_cells */SC*TIELO*] dont_touch
set getTiePins [get_pins -of_objects [get_nets -all -hier {VDD VSS}]]会搜索到一些inst的port
但是connect_tie_cells -objects $getTiePins -obj_type port_inst-tie_high_lib_cell TIEHI -tie_low_lib_cell TIELO -max_fanout 4
又提示上面搜到的port不是tie low tie high的全部skip了
你先derive_pg_connect -tie 了么
用了,后来发现connect_tie_cells后 icc会优化掉一些接vss vdd的逻辑,还是多出一些没有接任何节点的 tie cell 。后面的fm都过不了,所以让前端在dc处理了。谢了
求问,在设计中有1000多个pin是要接到tie high和tie low单元,但是在ICC中采用如下命令设置时却加入失败:derive_pg_connection-power_net VDD -ground_net VSS -tie
set getTiePins [get_pins -of_objects [get_nets -all -hier {VDD VSS}]]
connect_tie_cells -objects $getTiePins -obj_type port_inst-tie_high_lib_cell LVT_PULLHS1 -tie_low_lib_cell LVT_PULLHS0 -max_fanout 8
ICC返回结果,说是 Error: The connect_tie_cells command failed. (APLUI-004):
反复试过了很多次,换了各种表达方式都不行。依旧是failed,特向各位大神求助。
你好,请问“在网表中设置其他那些东东。
在脚本中添加set_complie_instance_name_prefix icc_place_opt”具体怎么解释,怎么操作啊?求指导,非常感谢
小编您好,为何我按照您的方法做tie插入。 报警告和错误呢。
icc_shell> set getTiePins [get_pins -of_objects [get_nets -all -hierarchical {VDD VSS}]]
Warning: No pin objects matched '-of_objects collection' (SEL-004)
icc_shell> connect_tie_cells -objects $getTiePins -obj_type port_inst -tie_high_lib_cell TIEHI_X1M_A12TS -tie_low_lib_cell TIELO_X1M_A12TS -max_fanout 4
Error: Nothing matched for collection (SEL-005)
Error: No object found in the collection. (APLUI-003)
0
我看了man没感觉哪里有问题啊。
那你的设置set mw_logic0_net/mw_logic1_net分别是啥,是VSS和VDD么?