innovus中path group 的策略和應(yīng)用(下)
時(shí)間:2025-11-17 23:08:00
手機(jī)看文章
掃描二維碼
隨時(shí)隨地手機(jī)看文章
BPG(basic path group)和PG(path group)的異同
INVS默認(rèn)使用了BPG,但是基于SDC理論下PG(path group)也是天然存在,兩者在數(shù)據(jù)庫里邊有各自存在的方式,也可以共融共生中,通過其中的異同,看到INVS的一些有趣的處理。BPG (basic path group)timeDesign報(bào)告簡(jiǎn)析
如果用戶沒有在SDC里邊使用任何的group_path命令,INVS默認(rèn)就會(huì)是使用BGP進(jìn)行分組(PS:這點(diǎn)和S家的有區(qū)別)。用戶在導(dǎo)入數(shù)據(jù)庫后,通過timeDesign就可以看到類似下面的分組關(guān)系:
【圖1】timeDesign summary這個(gè)分組表達(dá)了BGP的基本理念,但是注意,這里的數(shù)量有些許差異:
(default – reg2reg – reg2cgate) - all = (125024+787+479) - 125882 = 408。所有BGP的path總量竟然要比all 要多!
這個(gè)是因?yàn)椋?span style="font-weight:bolder;">all 是基于EP的path核算,一個(gè)EP點(diǎn)就對(duì)應(yīng)1,如果某個(gè)EP有路徑展開,譬如:FF1 -> FF0 和 INPUT -> FF0 ,這樣在default里邊就會(huì)再出現(xiàn)以FF0為EP的path。這里稱為:EP展開為了驗(yàn)證這個(gè)理論,嘗試做一下IO的set_false_path操作,然后再用timeDesign
【圖2】disable IO timing
【圖3】timeDesign summary with IO timing disable這里的default=0說明所有的EP都沒有二次展開,可以明確的看到:
reg2reg + reg2cgate = 125024 + 787 = all = 125811PS:無論用戶是否通過group_path調(diào)整分組,timeDesign的all的值是不會(huì)發(fā)生變化的??梢岳眠@個(gè)信息,查看用戶EP展開路徑的數(shù)量:
EP展開路徑 = all – [user_group_path_count_sum | BGP_path_count_sum]
BPG和PG(path group)的兼容
雖然INVS擁有自己獨(dú)創(chuàng)的BGP,但是在兼容傳統(tǒng)SDC的大前提下,INVS當(dāng)然也支持了用戶自定義的path group。通過下圖理解BPG和PG的關(guān)系:
【圖4】BPG/PG with INVS DB可以看到,通過group_path命令定義PG的優(yōu)先級(jí)是大于BPG的,任何時(shí)候用戶使用了group_path命令,那么原始的BGP就會(huì)被完全替代,(PS:兩個(gè)系統(tǒng)只能居其一,不能同時(shí)存在)。無論用戶的group path定義是否完備,都可以讓INVS從BPG進(jìn)入到PG系統(tǒng):譬如下例:這里用戶只使用了group_path 定義了一個(gè)組
【圖5】timeDesign with user PG可以看到,由于用戶定義的組沒有timing path,所以整個(gè)系統(tǒng)的path都?xì)w集為了default,此時(shí),系統(tǒng)已經(jīng)切換到PG了。盡管如此,用戶依然可以通過all path數(shù)量來評(píng)估自己的EP展開問題,這個(gè)和BPG是一樣的,無論是在那個(gè)系統(tǒng),all的信息是一致的,INVS的底層邏輯其實(shí)并沒有發(fā)生改變。
但是,如果用戶定義的分組很多,這個(gè)在做place_opt_design的時(shí)候,INVS采用了更多的iteration進(jìn)行收斂,這個(gè)和INVS基于BGP EP 的優(yōu)化方式是類似的不同,只不過分組變多會(huì)直接導(dǎo)致iteration變多。也會(huì)簡(jiǎn)介導(dǎo)致時(shí)序收斂的問題。
【圖6】datapath optimization per-HEPG工具會(huì)把所有的HEPG (high effort path group)在這里描述一下TNS/WNS,同時(shí),后續(xù)的正常修復(fù)也是集中在HEPG組的(如Active Path Group行所示),所以HEPG越多,工具的考慮就會(huì)越多。PS:這里注意,default帶了一個(gè)*,其實(shí)他也是一個(gè)high effort組,
report_timing對(duì)BPG和 PG 的支持
由于BPG是系統(tǒng)默認(rèn)的分組方式,INVS把BPG設(shè)定為為隱性的(implicit),而把用戶使用group_path的分組定義為顯性的(explicit)。無論是那個(gè)系統(tǒng),data path optimization的工作方式是沒有區(qū)別的,甚至在timeDesign的時(shí)候也是看不出來區(qū)別的。但是對(duì)于report_timing命令系統(tǒng),INVS處理還是略有不同:
BGP下的report_timing 命令使用
report_timing后面跟的-group選項(xiàng),需要制定的是顯性組(explicit),如果這里用戶使用了BPG的隱性組(implicit),工具返回錯(cuò)誤:
【圖7】BPG下,report_timing不能指定的非default組那這里問題來了,數(shù)據(jù)庫里的group都去哪里了。INVS使用了BPG和PG里邊都有的一個(gè)公共組:default 巧妙的處理了這個(gè)問題:
【圖8】BGP下defaut組的形態(tài)可以看到,在BPG下,所有的path對(duì)應(yīng)于report_timing的path_group都回歸到了default??梢砸暈閷?duì)隱性組的一個(gè)簡(jiǎn)單管理方法。但是,這里還有一個(gè)點(diǎn)需要探究:INVS用戶都知道,一個(gè)timing path里邊會(huì)有很多屬性,如果在BPG下,report_timing借用了default組,那么這個(gè)屬性何去何從呢?
-
如果是使用-path_group指定 default組,這個(gè)會(huì)返回設(shè)計(jì)里邊所有的timing path
-
如果用戶去query這個(gè)某個(gè)path的path_group_name屬性,這個(gè)會(huì)立刻現(xiàn)實(shí)類似S家的策略:所有的EP都是基于clock domain的,同時(shí)你也可以看到S家里邊熟悉的異步和clock gating 組,譬如下面的統(tǒng)計(jì)結(jié)果
【圖9】BGP按照clock domain進(jìn)行隱性分組所以這個(gè)時(shí)候,用戶又可以用上述的path_group進(jìn)行report_timing報(bào)告了,盡管你在get_path_group得不到上述的組。INVS這里有一次巧妙地利用了implicit的語境。
report_timing -path_group CLK_1
這個(gè)可以被是為BPG的隱形福利,這種處理方式較為方便用戶在使用BPG的時(shí)候查驗(yàn)數(shù)據(jù)。
PG下的report_timing 命令使用
PG下,由于用戶都是使用了SDC標(biāo)準(zhǔn)的group_path命令,這個(gè)時(shí)候所有定義的組,在data path optimization和report_timing下都是完全統(tǒng)一的,這里就不做過多的贅述了。BPG對(duì)實(shí)現(xiàn)人員的啟發(fā)
INVS的BPG對(duì)于multi-clock per FF給出了比較好的解決方法。相較而言,后端工具更善于對(duì)單純的數(shù)據(jù)進(jìn)行分析和優(yōu)化,過于復(fù)雜的環(huán)境處理的結(jié)果,經(jīng)測(cè)試明顯會(huì)變差不少,并且runtime 和area都變得更差一點(diǎn)。譬如下面的示例:
【圖10】設(shè)計(jì)里的timing path舉例FF0-> FF1/2/3 三條路徑都比較critical,直接的感官印象就是到FF1/2/3的timing 很差,如果只是簡(jiǎn)單的基于FF1/2/3 三個(gè)EP分別做組,其實(shí)是不利于優(yōu)化的因?yàn)镮NVS每一次對(duì)HEPG的優(yōu)化都會(huì)把common path和local path推進(jìn)一次,但是這兩類path是會(huì)互相牽制的。所以,簡(jiǎn)單的單分組,并不能很好的解決這類問題。用戶還是需要順應(yīng)工具的特點(diǎn)進(jìn)行約束規(guī)劃,從而得到自己期望的結(jié)果。
BPG和PG的融合使用
BPG符合INVS原生策略。但是由于INVS兼顧了SDC里的group_path的一些設(shè)定,所以會(huì)對(duì)用戶的report_timing系統(tǒng)帶來一些困惑,知識(shí)星球會(huì)提供一個(gè)具體腳本,使用一個(gè)腳本,可以在使用BPG的便利性的同時(shí),也可以在兼顧report_timing報(bào)告的使用便利性【敲黑板劃重點(diǎn)】
BPG可以視為INVS的data path optimization的一個(gè)基礎(chǔ)起點(diǎn),在大部分情況下會(huì)更好的體現(xiàn)INVS的優(yōu)勢(shì),用戶需要理解其中的奧秘,靈活使用/切換BPG和PG系統(tǒng),找到適合自己設(shè)計(jì)的方式/流程。





