今天我們來學習一下Innovus中分析clock tree的小工具——CCOPT Clock Tree Debugger,簡稱CTD 看這名字就知道,這工具是用來Debug clock tree。大家知道,CTS在PR流程中,占據著極其重要的地位,tree build好以后,你的design就完成了一半。通常這是一個需要反復嘗試的過程,我們需要根據clock tree現在的狀況,去調整各個參數。如果能有一個圖形化的工具幫助我們更加形象直觀地觀察到整個clock tree的狀況,那對我們的Debug是非常有幫助的。而這次要介紹的Clock Tree Debugger就是起到這個作用。 話不多說,切入正題,我們可以通過打開GUI上Clock下面的CCOPT Clock Tree Debugger來打開它,
或者輸入命令ctd_win,
Window ID Name代表內部CTD的窗口標記,只是一個記號,CTD默認可以打開六個窗口,大概是起到防止重復的作用吧。Window Title則可以顯性地指定CTD窗口的顯示名字。Unit Delay Mode在后文會提到。 使用CTD之前,我們必須首先創建clock tree的spec,如果沒有創建,CTD會彈出一個warning窗口
進入到CTD的主界面窗口,整個工具可以分為7個部分:MenuBar(菜單欄),ToolBar(工具欄),Key Panel(按鍵板),Control Panel(控制板),Browser(瀏覽器),Clock Tree Viewer(時鐘樹視角),World Viewer(全局視角),下面我們來分別學習一下這每個部分的作用。
Clock Tree Viewer
首先來看Clock Tree Viewer, 這是最主要的部分,顯示了Clock Tree的結構。在CTD中,Clock tree以倒Y字形結構不斷地往下分叉,直到trace到clock sink端為止。結構顯示也分為兩種模式。Unit Delay和Real Delay,可以在菜單欄Visibility中選擇切換。如下圖所示:
Unit Delay按照clock tree中的level劃分排列,左邊的縱坐標顯示clock tree上所有cell的級數,同一個level的clock cell處在同一水平線上。Unit Delay只能從層級上簡單地反應整個tree的結構,并不能按照真實的clock tree的指標參數顯示。 Real Delay按照clock tree的實際insertion delay來顯示clock tree的信息,這是默認的顯示設置,相對而言更加真實,左邊的縱坐標顯示著clock tree上cell的insertion delay信息。因此path的長短不一,也讓我們可以很直觀地觀察出整個tree的skew情況。 我們來看具體insertion delay是如何計算顯示的。前面說過,整個tree以倒Y字形向下分叉,下左圖中,看似平整的直線其實放大了看也是有斜度的。那一段Y字形分別代表著Gate Delay和Wire Delay,如下右圖紅圈所示。鼠標移至對應的clock cell,左邊縱坐標軸上就會顯示對應的insertion delay數值,如下圖黃色箭頭所示,如果你想在CTD上查詢具體的Gate Delay和Wire Delay,暫時我們沒有直接顯示的方式,只能通過Ruler工具去縱坐標上量取對應的值。 我們也可以選中clock buffer, 右鍵將sink collapse起來,這樣,所有所有clock sink便會以數字的形式簡單顯示在CTD上,當然它會將最長和最短的path以實虛線的形式分隔開來,如右下圖藍圈所示:
如果鼠標長時間停留在某個clock cell上,CTD就會自動彈出一個小窗口,顯示該clock cell的名字以及insertion delay等數值
Menu Bar
Menu Bar(菜單欄):CTD上菜單欄并不多,一共有4列,Help選項就不介紹了
先看View菜單,它主要控制CTD上整個界面上的顯示要素 (1)Clock path browser:主要控制Clock path browser的顯示位置,默認在顯示在主界面下方,Clock path browser的功能后面會介紹到
Min/Max level代表著顯示到Clock path browser中的多少個skew group的數值信息,默認只顯示Skew最大的skew group,level越大,可以顯示的skew group也越多,如下圖所示:
(2)Zoom:就是平常使用放大縮小功能,不過多介紹了
(3)Simplify:該功能可以將clock tree的顯示簡單化,將一些不想看的東西用縮略圖表示。
Collapse可以將Sink,ICG,Buffer等cell不展開顯示,只以一個簡單數字和虛線表示連接關系,下圖藍圈表示該buffer驅動了100個clock sink
Expand就起相反作用,將前面收縮顯示的東西又全部展開
Abstract則是一種各簡單抽象的顯示圖了,它放棄了倒Y字形的叉狀顯示圖,而是直接采用類似飛線的連接方式,在這種情況下,它并不關注clock tree上insertion delay了。
(4)Delay corner:該選項很簡單,就是切換不同的corner下面,tree的顯示情況。可以按快捷鍵"d"切換至下一corner,按“D”則是切回defalut的corner。需要注意的是CCOPT默認只工作在你的primary corner下面
(5)Select: 該功能能實現一些特殊的“選擇”功能
Select minimum和Select Maximum:分別可以選擇當前control菜單下,最小和最大的sink,比如我選擇了Transition time的control界面,那么點擊Select Minimum或Select Maximum,工具就會自動地幫我們選中最小或者最大的transition sink。如下圖中的黃色虛線所示:
Enable crossprobing: crossprobing是一個非常好用的功能,從名字就能知道,它起著交叉顯示的作用。它很好地同步了CTD,innovus layout和Schematic view三個顯示界面。在CTD上執行Selection,Highlight等操作,會自動在Layout和Schematic view上同步執行相同的操作,我們看下面三張圖: CTD上選中一個buffer,Innovus layout界面和schematic view界面上也會選中該buffer
CTD上Highlight這個選中的buffer,Innovus layout界面和schematic view界面上也會Highlight該buffer
Enable Zoom Selected:打開該功能的話,在CTD上選中某個Object后,Innovus layout界面會自動放大該Object.
(6)Find窗口就是平時經常使用的搜索Object界面 【圖形界面介紹
(8)Dump view:可以講當前的clocktree截圖下來,這個很簡單就可以理解 (9)Control panel,Key panel,Browser則分別可以控制三個面板的顯示與否。后面會分別介紹這三個面板 (10)Preference: 設置選項,大部分前面都介紹過。
Enable update synchronously:當你對clock tree上的net或者cell做eco時,clock tree viewer上會直接更新。Show connection line:打開后可以顯示飛線Rectangular selection mode:在clock tree上框選一塊區域時,指定在layout view上應該顯示instance或者netDisplay leaf pins in each bar:在柱狀圖中顯示每個柱條的實際數值,Linear是代表Y軸顯示數字線性增長,Log是代表Y軸顯示數字指數增長。Linear:
Log:
-
CTD
+關注
關注
1文章
3瀏覽量
2585
原文標題:心似雙絲網,中有千千結——Clock Tree Debugger(一)
文章出處:【微信號:IC_Physical_Design,微信公眾號:數字后端IC芯片設計】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論