本文選自知識(shí)星球。整個(gè)Innovus Timing相關(guān)教程分為下面三個(gè)部分,這里分享的是第一部分,其他的部分在知識(shí)星球里面有完整說(shuō)明(三個(gè)部分一共25頁(yè)、4千4百字)。同時(shí)星球?qū)貿(mào)Q群上傳了里面有長(zhǎng)達(dá)5.7萬(wàn)字,316頁(yè)500頁(yè)、8.5萬(wàn)字的Innovus教程,歡迎大家加入(二維碼見(jiàn)文末)。 report_timing時(shí)序報(bào)告詳細(xì)解讀 report_timing命令選項(xiàng)說(shuō)明 report_timing報(bào)告格式如何個(gè)性化設(shè)置 report_timing時(shí)序報(bào)告解讀我最初接觸數(shù)字IC設(shè)計(jì)時(shí),用的絕大部分都是S家的工具,比如DC/PT/ICC,當(dāng)時(shí)學(xué)習(xí)的時(shí)候感覺(jué)report_timing的報(bào)告挺容易理解的,非常直觀,如果對(duì)這個(gè)有疑問(wèn)或者想知道怎么根據(jù)Timing report來(lái)判斷這個(gè)Path是否好修,該如何修,可以看下面的推文:《應(yīng)邀長(zhǎng)文- DC/ICC/ICC2/PT中的report_timing報(bào)告如何看,如何找出問(wèn)題修復(fù)Timing違反》星球鏈接(干貨內(nèi)容):https://t./3feYrzf 可是自從PR工具切到了C家的工具Innovus之后,感覺(jué)一臉懵,直接看上面的report,很多地方都搞不懂到底是啥,所以這里寫(xiě)篇推文來(lái)專(zhuān)門(mén)講解一下。比如:1、什么是“Trailing edge”、什么是“Leading edge”?Innovus: S家的工具挺直觀的,懂點(diǎn)英語(yǔ)的話應(yīng)該很容易看懂(就是直接寫(xiě)的上升下降沿): 2、什么是“Other end arrival time”3、報(bào)告中的required time怎么來(lái)的,它和other end arrival time之間關(guān)系,slack是怎么計(jì)算的?4、S家的工具報(bào)hold使用-delay_type min,那么Innovus怎么報(bào)hold timing?5、還有就是一個(gè)非常大的不同,為啥很多地方看到的clock后邊的arrival time是從負(fù)值開(kāi)始的。 經(jīng)過(guò)這些年的學(xué)習(xí),這些問(wèn)題已經(jīng)全部搞清楚了,這里對(duì)report_timing的結(jié)果做一個(gè)完整的講解,上面提到的這些困惑也會(huì)一一解答。 Manual與Help首先man report_timing可以看這個(gè)命令的詳細(xì)manual,不過(guò)非常長(zhǎng)… report_timing -help可以看它的所有option和相應(yīng)的意思(具體每個(gè)Option是什么意思,星球Timing第二篇推文有詳細(xì)講解): 如何展開(kāi)Clock path首先講一個(gè)option:-path_type {end summary full full_clock end_slack_only summary_slack_only}# The path_type option lets you choose the format of the report by path type (enum, optional)Path_type指定成full_clock的話可以將launch clock和capture clock的部分展示出來(lái),否則默認(rèn)情況下是不顯示clock path的.加-path_type full_clock之前: 加上-path_type full_clock之后,紅色部分的內(nèi)容是多出來(lái)的: Timing report詳細(xì)講解首先,我們來(lái)看一條簡(jiǎn)單的timing path report 在講解詳細(xì)報(bào)告之前,先普及一下Setup的基本計(jì)算公式: Setup Slack = Data Require Time - Data Arrival TimeData Arrival Time = Clock Launch Edge + Network latency + Tck-q + Tdata_path_min Data Require Time = Capture Clock Arrival Time - Tsetup - Setup uncertaintyCapture Clock Arrival Time = Clock Capture Edge + Network latency Hold與之相似,不過(guò)使用arrival time減去required time,并且Hold是同沿Check:Hold Slack = Data Arrival Time - Data Require Time 1. 頭部一#開(kāi)頭的注釋信息最上面的是用#開(kāi)頭的注釋信息,里面的Command后邊是報(bào)這個(gè)Timing path用的完整命令和option。如果想將報(bào)告導(dǎo)出的一個(gè)文件中,我們可以在后邊加上管道符>,圖中的command就是這樣,并且報(bào)出了完整的Clock path。 2. Path 1也就是第一條Path,它后邊的信息顯示的是這條path的Slack情況是Met(滿足)還是Violate(違反),后邊接的是Setup check還是hold check,這里的話是Setup,如果想報(bào)hold的話,可以report_timing -early,會(huì)給出類(lèi)似于下面的結(jié)果:Path 1: MET Hold Check with Pin ff1/CKNEndpoint: ff1/D (^) checked with trailing edge of 'CLK2'Beginpoint: in1 (^) triggered by leading edge of 'CLK' 3. Endpoint和Beginpoint是介紹了這條path的Endpoint和Beginpoint(S家的工具叫startpoint)。這里問(wèn)題來(lái)了,checked by后邊的leading edge和trailing edge是什么意思呢?是上升沿和下降沿么?其實(shí)不是的!!…(完整內(nèi)容見(jiàn)知識(shí)星球) 4. Path group就是path group,如果有創(chuàng)建path group就會(huì)顯示,沒(méi)有的話一般就是指該條path的clock信息關(guān)于Path group的詳細(xì)內(nèi)容,比如為啥要?jiǎng)?chuàng)建Path group,如何查看/報(bào)告Path group,什么是Critical Range,如何利用Path group和Critical Range以及Weight來(lái)優(yōu)化Timing可以查看下面的推文:《精華長(zhǎng)文-Path Groups 與Critical Range 、 Weight》星球鏈接:https://t./yvNr3Zz … |
|