1) PT里面的attribute比较,大家抓取一些pin/net的属性值的时候,可以不用再自己写判断条件去过滤了,可以直接用attribute判断,比如:
get_* –filter "attr1 >@attr2" ,直接返回过滤后的collection
2) 如何抓取某种libcell在设计里的例化instance,以前大家可能会用ref_name去判断,现在可以直接用:
get_cells -of $lib_cells
3) PT 里面多了些指针属性操作,比如pin.cell,cell.lib_cell , pin.net ,pin.lib_pin等等,这样就可以方便大家少敲几行code,毕竟码农的时间是很值钱的:
set pins [get_pins -hier * -leaf -filter "cell.area > $threshold"]
4) 如何减少PT抓取cell/pin的runtime,这就需要大家在写脚本的时候尽量减少搜索空间,比如明确知道要找的在哪个hierarchy或者有哪些关键字的话,都可以帮助减少runtime,举几个小例子:
a) set_false_path -to [get_pins A/B*/C1?/ff*/D]; 工具会直接只在A/B下寻找
b) set_false_path -to [get_pins –hier ff*/D] ;用leafpattern去匹配
c) set_false_path -to [get_pins –hier ff*/D*-filter "full_name =~ */C1?/*"] ;结合leaf pattern 和部分hierarchicalname
d) currentinstance HIER1/HIER2
set pins [get_pins -hier -filter "full_name =~ *PATTERN/D"];通过currentinstance去减少搜索空间
5) 最后一个小建议,凡是工具会自己使用Multi-thread去跑的命令,就不要去parallel_execute/parallel_foreach_in_collection/redirect-bg, 这些支持多线程的就是大家比较熟悉的update_timing/report_timing/check_noise/report_constraint/report_qor等等