芯片综合(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列表再罗列出来

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

report_reference -nosplit ;# nosplit 不分行

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

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 "

6、如何获取某个design下指定cell的面积详情

foreach_in_collection bbb [get_cells {ip*}] {echo [get_attribute $bbb name] [get_attribute $bbb area] [get_attribute $bbb cell_footprint] [get_attribute $bbb cell_leakage_power]}

在指定cell集合里,找出指定refrence,并打印出来相关信息,这里用到了filter,和正则表达式来模糊匹配=~

7、dc只能报当前层次下的一些cell信息,如果需要切换到下面层次,需要设置下current_design,然后再报一些cell的信息

8、report_cell可以获取cell更详细的信息

  • 3
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值