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_pinsA/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等等