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