工欲善其事,必先利其器。
今天介紹一個功能極其強大的工具(毫不吹牛),時鐘樹分析窗口,不然你可以給我頭上澆水
分析時鐘樹可以看log,可以看report,當(dāng)然也可以看腳本,但都不直觀。因此ICC2提供一個專用的窗口來分析時鐘樹,有了他,媽媽再也不用擔(dān)心我的debug了。
如何打開
打開后,彈出如下新的窗口。
主窗口會顯示所有的clock。這個case比較簡單,只有一個時鐘CORECLK。注意,時鐘名前有個M,代表啥?代表Master clock,如果是個generated clock,則會顯示G。
當(dāng)然了,時鐘樹的基本信息都有:source,period等等。
下一步該看啥?一般我會在選中的時鐘上,右鍵點擊:彈出如下菜單。
這個菜單包含了大多數(shù)功能!
把這些功能用熟悉了,debug時鐘樹會非常的高效!下面一個一個來看。
Clock Tree Levelized Graph
點擊后,彈出如下窗口。
這個是時鐘樹結(jié)構(gòu)的簡圖,按照級數(shù)來顯示。里面哪些是buffer/inverter,哪些是ICG,MUX,REG,都非常清楚,一目了然。
從上圖也可以看到,時鐘樹最長是16級,而有些寄存器只長了5級。為啥差別那么大?因為用了CCD,而且用了很猛的CCD,所以skew大很正常,級數(shù)差那么大也正常。
比如想看某個寄存器長了多少級buffer,直接 change_selection [get_cells xxx],則在這個圖里就會highlight出這個cell,很直觀。
為了debug,可以選擇顯示,或者不顯示某些cell。
比如,我不想看ICG,只想看BUFFER/INVERTER。時鐘樹結(jié)構(gòu)則變成如下圖所示,非常靈活。
或者我不想看BUFFER/INVERTER,則得到下圖。
這是啥?
這就是做CTS之前的時鐘樹結(jié)構(gòu),因為BUFFER/INVERTER都是CTS插進去的嘛。把他們干掉不就是CTS之前的結(jié)構(gòu)么。這樣你就不用去打開place的database去看CTS之前的樣子。是不是很方便?你可以繼續(xù)玩弄這個GUI,會有很多驚喜。
還可以把鼠標(biāo)停留在某個cell上面,會得到一些信息。
原來這里不是一個寄存器,而是2萬多個寄存器
Clock Tree Latency Graph of Selected Corner
這是按照latency來顯示時鐘樹結(jié)構(gòu),也被廣泛使用??梢钥吹矫總€寄存器的latency,latency大致分布等情況。
有的時候,如果某個子樹長的不符合預(yù)期,則在這個gui里很容易用鼠標(biāo)選擇整個子樹來分析,而不用寫腳本來抓。
Highlight Longest/Shortest Path From Source
這個也常常使用,我們看看哪個sink長的樹最長/短,以及怎么長的。點上這個菜單后,會同時在時鐘樹結(jié)構(gòu)圖和layout圖里highlight這個最長/短路徑。是不是很直觀?
Launch/Capture Latency Histogram of Selected Corner
這個用柱狀圖的方式來顯示latency的分布,更直觀!
Clock Tree Object List
用這個窗口快速找到想要的object,比寫腳本快非常多。
比如我想找第7級之前的所有的buffer:
0.001s鐘后,全部出來了。
其它功能
對了,窗口里面有個“Exception”,很有用,有時候?qū)ebug時鐘樹能幫很大很大的忙。
啥是exception:就是工具自動推導(dǎo)的,或者user手動設(shè)置的,對哪些sink/port不需要做balance等等
比如,我想看看時鐘樹里有哪些Exception,我們可以只留下exception和Sequential cell,別的統(tǒng)統(tǒng)關(guān)掉。這時候,真的只剩下10個exception和一堆寄存器。
鼠標(biāo)放在其中一個Exception上,Label是E,啥意思?
E是Explicit的縮寫,意思是這個exception是user自己定義的。
沒錯,因為我剛故意對這個寄存器設(shè)置了consider_for_balance=false
再看隔壁班那個Exception,Label是IE,啥意思?
IE是Implicit Exception的縮寫,意思是工具自動推導(dǎo)出來的。
納尼?為啥工具會自動忽略這個pin呢?
我們把schematic打開,trace一下這個cell。
哦,原來這個cell的輸出是到output去了,所以工具自動不balance這個port。
還一個很強大也很簡單的用途,容我再啰嗦一下,就是這個窗口和layout窗口永遠是同步的,不管你選擇了啥東西,立馬在layout窗口上同步選上了。這個功能我非常喜歡
好了,以上是拋磚引玉,更多好玩實用的功能,鼓勵你繼續(xù)探索!
【往期回顧】