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