芯片综合(DC)实用小技巧

用DC难免会用到各种各样的TCL命令,对其有一个熟练的了解,可以在做综合的时候事半功倍

注意:DC的TCL是在标准TCL上定制的。所以会和标准TCL有一定的不同,比如:DC-TCL会有物集的概念

详细的DC-TCL信息可以查看synopsys的dc tool commands

1.获取整个设计所有的register数目

set reg_num 【all_register】 ;#all_register可以报出整个design的register 例化名

sizeof_collection $reg_num   ;#sizeof_collection统计出当前集合下事物的数量

query_objects $reg_num   ;#把register列表再罗列出来

芯片综合(DC)实用小技巧_第1张图片


2.design整个设计单元数目,面积信息

report_reference -nosplit ;# nosplit 不分行

芯片综合(DC)实用小技巧_第2张图片

3.用get_* 和all_*命令产生物集

如 get_ports clk*

 set myclocks [all_clocks]

get_cells  get_clocks get_designs get_libs get_nets get_pins get_ports

all_clcoks all_designs all_inputs all_outputs all_registers

4.从物集中去除或添加

#去除

set all_inputs_except_clk [remove_from_collection  [all_inputs]  [get_ports clk]];#从all_inputs里面去除clk

#添加

set ports [get_ports "a*"]

 set ports [add_to_collection $ports [get_ports "b*"]] ;#把ports填充为a*和b*开始的ports

芯片综合(DC)实用小技巧_第3张图片

5.用filter_collection 或者get_cells -filter 在物集中找到需要的物体

值得注意的是:filter_collection 比 get_cells 用的命令更强大,前者可以实施在任意的物集命令前面,后面只适用在get_cells

get_cells "U*" -filter  "ref_name == NAND2_X2M_A9TL40"

get_cells "sum*" -filter "ref_name == DFFRPQ_X4M_A9TL40"

filter_collection [get_cells "sum*"]  "ref_name == DFFRPQ_X4M_A9TL40 "

filter_collection [all_registers "sum*"]  "ref_name == DFFRPQ_X4M_A9TL40 "


















你可能感兴趣的:(DC)