今天我們來介紹一下時(shí)序分析的小工具——Global Timing Debugger(簡(jiǎn)稱GTD)。它是Innovus/ Encounter中分析Data Path的工具, 和Clock Tree Debugger有眾多相似的地方。
顧名思義, Global Timing Debugger就是用來debug timing。對(duì)于一些新人來說, 可能看懂和分析timing report是一件很困難的事, 而GTD它最大的好處就是將timing report里面的內(nèi)容結(jié)合Innovus GUI, 以圖形化的形式表現(xiàn)出來, 這樣就很方便于我們?nèi)ebug timing path上問題。經(jīng)常有人問我, Innovus/Encounter中如何去Highlight一條Timing Path之類的問題, 相信看完這篇文章, 大家一定會(huì)了解怎么去做這些事情了。
讓我們進(jìn)入正題, 我們通過打開Timing下面的Debug Timing子菜單來打開GTD
然后會(huì)出現(xiàn)如下窗口, 使用GTD前, 需要有一個(gè)machine readable格式的timing report文件, 該文件可以通過report_timing -machine_readable或者timeDesign -timingDebugReport命令得到。如果已經(jīng)產(chǎn)生過該文件, 就把Generate前面的勾去掉。
Check Type:可以選擇setup或者h(yuǎn)old分析。
Append to Current Report:可以將當(dāng)前timing分析結(jié)果添加在之前分析結(jié)果之后, 以不同顏色區(qū)分顯示
Path Category File:指定Path category文件的目錄,這個(gè)后面會(huì)介紹到Path category的作用。
單擊OK以后, 進(jìn)入GTD正式的主界面, 整個(gè)GTD界面分為Path Histogram(路徑統(tǒng)計(jì)圖)、Category Summary(分類匯總)、Path Category(路徑分類)、Path Analysis(路徑分析)、Path List(具體路徑)、Preference(設(shè)置)、Timing Path Analyzer(路徑分析器), 分別對(duì)應(yīng)這下圖中的數(shù)字編號(hào), 下面我們來一一介紹一下這些模塊。
Path Histogram
這個(gè)就是一個(gè)總體的路徑柱狀統(tǒng)計(jì)圖, 很簡(jiǎn)單, 縱坐標(biāo)是Path數(shù)量, 橫坐標(biāo)是對(duì)應(yīng)的slack值, 綠色柱條代表Slack為正, 紅色柱條代表Slack為負(fù)。
Category Summary
該模塊會(huì)顯示每種Category的具體內(nèi)容, 包括Pass, Fail的timing path數(shù)量, 以及WNS和TNS, 是GTD里很重要的一個(gè)概念。默認(rèn)只顯示All的category, 我們可以自定義category的組成, 單擊Category Summary右上方的Category, 如下圖所示:
我們可以Save和Load已有的Category文件,當(dāng)然也可以自己創(chuàng)建一個(gè),如下圖所示:
我們可以將具體某種或者多個(gè)共同特性的path歸化到某個(gè)category中, 可以選擇的特性有以下幾種:這些概念大家都很清楚吧,不過多介紹了
比如我們可以將以某個(gè)instance的pin為終點(diǎn), 并且slack值小于0的path設(shè)成一個(gè)category, 如下圖所示:Add Sub-Condition和Add Condition分別控制添加OR和AND條件
創(chuàng)建完以后我們就可以在GTD上看到這個(gè)category了
我們可以看到,在我們創(chuàng)建的的test1這個(gè)category中, 有32條path符合我們要求, 另外剩下的99條就被歸類到uncategorized中。
我們也可以在已有的category中創(chuàng)建下屬的category, 在Master category name中填寫現(xiàn)有的category就行, 比如:我們希望在前面test1的category中找出經(jīng)過TIE_semantic_slot0_fp_madd/FE_OCPC849_C2_partial1_56_這個(gè)instance的path, 就可以這樣填寫:
然后, 在GUI上, 你可以看到原來的test1 category下又會(huì)有一個(gè)新的categorytest1_sub
Path Category
這個(gè)表上面已經(jīng)介紹過, 里面顯示了所有Path Category的信息。這邊Correction一欄需要介紹一下, 這是一個(gè)我們自己對(duì)此類category預(yù)估的slack值修正, 可以通過右鍵“Set Category Slack Correction”來設(shè)置。
比如原來test1這組category的WNS, TNS情況如下
如果設(shè)置了0.011的slack修正值, test1的WNS, TNS和Failing Path都會(huì)修正成原來slack加上0.011以后的值, 鼠標(biāo)長(zhǎng)時(shí)間停留在該組category上, 就會(huì)看到修正前后的timing情況
Path Analysis
介紹完了Path Category, GTD里面還支持基本類型的Path Analysis, 單擊GTD右上角Analysis選項(xiàng), 現(xiàn)在我們Innovus/ Encounter支持的Path分析類型有以下幾種
Path Group Analysis:按照基本Path Group分析, 包括reg2reg, in2reg, reg2out, in2out。
比如我們?cè)谇懊嬲f創(chuàng)建的test1 category中再細(xì)分出reg2reg的分析類型, 那可以先在Master category name中填入test1, 分析類型選擇basic path group
這樣, 在GTD上就會(huì)細(xì)分出test1 category子集中的reg2reg path類型,
Clock Analysis:按照Launch和Capture clock的組合來劃分,默認(rèn)會(huì)劃分兩個(gè)category:
1. 起點(diǎn)和終點(diǎn)都來自一個(gè)clock的Path
2. 起點(diǎn)和終點(diǎn)來自不同的clock的Path
創(chuàng)建以后,GTD上如下圖所示:
當(dāng)然, 我們也可以考慮clock的Edge, 以及View和Mode來劃分得更加細(xì), 如下圖所示
Hierarchical Floorplan:按照Hierarchical層次結(jié)構(gòu)來劃分category, 可選的hierarchical項(xiàng)分為以下六種:Port, Hinst, Macro, Black Box, Std Cell, InstGroup
豎軸代表起點(diǎn), 橫軸代表終點(diǎn), 比如我們想查看起點(diǎn)是Macro, 終點(diǎn)是在Hinst里的path, 就可以選擇Macro=>Hinst這一欄.
GTD上就會(huì)顯示所有符合該類型的category, 如下圖所示:
Views Analysis:按照analysis view來劃分category, 這個(gè)很簡(jiǎn)單, 不過多介紹了
Bottleneck Analysis:按照需要的max slack值來劃分,這個(gè)也比較簡(jiǎn)單,不過多介紹了
DRV Analysis:按照DRV violation的類型來劃分,
Path List
前面說到在Innovus/Encounter中如何Highlight一條timing path?這一欄就解決了我們的問題。
我們可以選擇需要Highlight的path, 并且選擇對(duì)應(yīng)的顏色(默認(rèn)是黃色), 對(duì)應(yīng)的在GUI上就會(huì)把該條timing path highlight出來。如下圖所示:
Timing Path Analyzer
那如何去分析這條Path呢?接下來,我們需要用到GTD里面的另一個(gè)分析具體Timing Path的小工具——Timing Path Analyzer
選中該條Timing Path,右鍵選擇“Show Timing Path Analyzer”
進(jìn)入Timing Path Analyzer界面:
Timing Path Analyzer總體上就是將Innovus/Encounter的timing report圖形化。按照上面圖片的數(shù)字, 我將它分為以下幾個(gè)板塊(對(duì)應(yīng)圖上具體數(shù)字):
第一部分是基本的timing path信息,包括path類型,analysis view,Slack等等信息
第二部分其實(shí)就是一個(gè)圖形化計(jì)算slack的顯示, 上面一條直線代表Data Arrival Time, 下面一條代表Data Require Time
第三部分是具體每個(gè)section內(nèi)容, Data Path, Launch Clock Path和Capture Clock Path就是三種path上的具體組成,分別對(duì)應(yīng)著timing report。
下面的這一條timing bar會(huì)顯示所有cell和net的delay占的比例。鼠標(biāo)長(zhǎng)時(shí)間停留會(huì)顯示該段delay的具體情況
Hierarchy View:按層次顯示了每個(gè)hInst占它上一級(jí)層次的Delay分布比例
Path SDC:列出和這條timing path相關(guān)聯(lián)的sdc語(yǔ)句
Timing Interpretation:顯示出該條timing path中可能出現(xiàn)問題的地方,比如fanout過大, wire length太長(zhǎng)等等, 用紅色高亮表示。
Schematics:顯示該條path的schematic電路圖
Timing Debug Preferences
最后介紹一下GTD的一些設(shè)置參數(shù)吧,說實(shí)話,這個(gè)設(shè)置界面不好找,在File目錄下面,而且在Timing Path Analyzer中也沒有保留。
設(shè)置界面主要分為以下五塊內(nèi)容,General的設(shè)置比較繁瑣,其他四欄只是一些基本的顏色設(shè)置。
General:
前面數(shù)字那些參數(shù)都是控制GTD上Path Histogram上的參數(shù), 包括橫坐標(biāo)、縱坐標(biāo)的數(shù)值、 間距等, 不一一介紹了, 作用不是很大, 取默認(rèn)的就行。
DisableCommon Clock Delay Elements:Timing Path Analyzer中的data delay不顯示launch and capture clock的common部分
Highlight Clock Path withData Path:把clock path也highlight出來,默認(rèn)只高亮data path
紅色直線代表Launch clock path,綠色直線代表特定的那段capture clock path
Exclude CPPR from Skew:計(jì)算skew時(shí)不考慮CPPR
Appear Only In One Category:在一個(gè)category中一條path只出現(xiàn)一次
Auto Resize in histogram:GTD中hide path category時(shí)自動(dòng)隱藏Pathhistogram
Not Zoom In Delay Element:Timing Path Analyzer中選中cell或者net時(shí),Innovus GUI不自動(dòng)放大選中的東西
Select Delay Element With Connections:Timing Path Analyzer中選中cell或者net時(shí),Innovus GUI上自動(dòng)選擇與它有連接性的東西
Overwrite Existing Group:覆蓋現(xiàn)有的path category group
Append to Current Highlight:Highlight Path時(shí)不清除原來已經(jīng)highlight過的path
Highlight Path:InnovusGUI上highlight path的方式
Flightline:
Wire segment:
Whole Net:
Merge Path By:把一些path按照對(duì)應(yīng)要求merge, 可以選擇按照StartPoint、 EndPoint、 StartClock和EndClock, 默認(rèn)就是EndPoint。
剩余幾個(gè)窗口都只是設(shè)置GTD上顏色的選項(xiàng),平時(shí)一般不用修改,選擇默認(rèn)的就行
Color:最基本的顏色設(shè)置
Bottleneck Analysis: 控制某個(gè)cell的顏色, 如果在5~10條的violation path中都有它, 就mark成黃色, 10~15條就mark成橘黃色, 以此類推
Cell Coloring: 控制基本cell類型的顏色
Highlight Path:控制不同path category的顏色
Global Timing Debugger就介紹到這里了,很小的一個(gè)工具,但是對(duì)于初學(xué)timing分析的用戶,還是有一定用處的。
-
模塊
+關(guān)注
關(guān)注
7文章
2674瀏覽量
47350 -
時(shí)序分析
+關(guān)注
關(guān)注
2文章
127瀏覽量
22551
原文標(biāo)題:兩點(diǎn)天上來,愛情一線牽——Global Timing Debugger
文章出處:【微信號(hào):IC_Physical_Design,微信公眾號(hào):數(shù)字后端IC芯片設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論