學習數(shù)字設計(數(shù)字IC設計咒吐、FPGA設計)都必須學習靜態(tài)時序分析(Static Timing Analysis 但荤,STA)早芭。然而靜態(tài)時序時序分析是一個比較大的方向穴豫,涉及到的內容也比較多,如果要系統(tǒng)得學習,那得花費不少的心思精肃。這里來記錄一下關于靜態(tài)時序分析的三種分析模式秤涩,這里的記錄只是記錄一下學習筆記,或者說是隨筆司抱,而不是系統(tǒng)地學習STA筐眷。本文是來自于前天遇到了一道靜態(tài)時序分析的題目,感覺有點疑惑习柠,于是發(fā)到群里請求解答匀谣。經過一番討論、查找資料之后资溃,真相漸漸露出水面武翎。
先看一下題目:
一、時序路徑分析模式及相關概念
1.最快路徑和最慢路徑
在求解這道題目之前溶锭,先來介紹一下時序路徑分析模式及相關概念宝恶。
①最快路徑(early- path):指在信號傳播延時計算中調用最快工藝參數(shù)的路徑;根據(jù)信號的分類可以分為最快時鐘路徑和最快數(shù)據(jù)路徑趴捅。
②最慢路徑(late path):指在信號傳播延附計算中調用最慢工藝參數(shù)的路徑垫毙;分為最慢時鐘路徑和最慢數(shù)據(jù)路徑。
(個人理解:)在一個庫中拱绑,盡管電路器件單元已經被綜合映射综芥,但是工具可以通過改變周圍的環(huán)境來得到不同的單元延時,所以即使是同一個庫猎拨,調用工藝參數(shù)不一樣的情況下膀藐,其單元延時是不同的,因此就有了最快路徑和最慢路徑红省。(這里理解有誤)
注意:
??與數(shù)據(jù)路徑不同额各,最快時鐘路徑、最慢時鐘路徑的選擇在建立時間分析和保持時間分析中是不同的类腮。
1)建立時間分析最快時鐘路徑和最慢時鐘路徑如下圖所示:
在建立時間分析中,最快時鐘路徑是指時序路徑中時鐘信號從時鐘源點到達終止點時序單元時鐘端口的延時最短捕獲時鐘路徑蛉加,而最慢時鐘路徑是指時序路徑中時鐘信號從時鐘源點到達始發(fā)點時序單元時鐘端口的延時最長發(fā)射時鐘路徑蚜枢。
2)保持時間分析最快時鐘路徑和最慢時鐘路徑如下圖所示:
在保持時間分析中,最快時鐘路徑是指時序路徑中時鐘信號從時鐘源點到達達始發(fā)點時序單元時鐘端口的延時最短發(fā)射時鐘路徑针饥,而最慢時鐘路徑是指時序路徑中時鐘信號從時鐘源點到終止點時序單元時鐘端口的延時最長捕獲時鐘路徑厂抽。
2.分析模式
靜態(tài)時序分析工具提供3種分析模式進行靜態(tài)時序分析,不同的設計需求通過選擇對應的時序分析模式從而可以在合理的時序計算負荷范圍內得到接近于實際工作的時序分析結果丁眼。這三種模式是:單一分析模式(single mode)筷凤、最好-最壞分析模式(BC-WC mode)、全芯片變化分析模式(OCV模式)。
我查閱了一些資料藐守,在Synopsys公司的靜態(tài)時序分析工具PrimeTime在早期的userguide中是有說明的挪丢,例如2010.06版本中:
但是在最近兩三年的版本中,卻忽略了BC_WC模式卢厂,變成了其他三種模式乾蓬,比如2015.12版本中:
雖然在user ?guide中沒有明確寫出BC_WC模式,但是這種模式還是存在的慎恒,也就是還是可以使用這種模式的任内。
在Cadence的時序分析分析工具Encounter Timing System的2013.01的版本中,也是支持這三種分析模式的:
上面的工具默認的都是單一模式融柬∷类拢回到題目中,查了一下粒氧,這道題目是5越除、6年前(甚至更早)的了,算是很經典的一道題目靠欢。很顯然廊敌,題目要求的是在BC_WC模式先分析建立時間和保持時間。在求解題目之前门怪,先來看一下這三種模式是如何分析建立時間和保持時間的骡澈。
對于PT的2010.06版本:
對于PT的2015.12版本:
可以看到,2015.12并沒有給出WC-BC模式的描述掷空,但是是支持的肋殴。
對于ETS:沒有給出表格,但是和PT的差不多坦弟。
下面就來介紹這三種模式下是如何分析路徑延時的护锤,這里只進行介紹建立時間的分析,看情況介紹保持時間酿傍。
二烙懦、單一分析模式(工具默認的模式)
1.模式介紹
在該模式下,工具只會在指定的一種工作條件下檢查建立時間和保持時間赤炒,該工作條件可能是最好的氯析、典型的、最壞的中的一種莺褒,但只能是單一的一種掩缓,
而這里不進行配置:
(1)建立時間分析
對于觸發(fā)器到觸發(fā)器時序路徑的建立時間的要求,轉換成單一分析模式下建立時間的基本計算公式如下:
發(fā)送時鐘最慢路徑延時+最慢數(shù)據(jù)路徑延時≤捕獲時鐘最快路徑延時+時鐘周期-終止點時序單元建立時間
進行建立時間檢查時,始發(fā)點觸發(fā)器的發(fā)射時鐘路徑延時遵岩、終止點觸發(fā)器捕獲時鐘路徑沿和從始發(fā)點到終止點的數(shù)據(jù)路徑延時都是基于單一工作條件下所計算的路徑延時你辣。這是工作單一的一個庫中,也就是工具在同一工藝進程、溫度舍哄、電源下宴凉,調用其他不同的工藝參數(shù),得到最快蠢熄、最慢的時鐘路徑和數(shù)據(jù)路徑跪解。這是路徑值是確定的。例如下面例子中(時間單位為ns):
假設上述電路是在典型庫中進行綜合的签孔,那么在分析建立時間的時候叉讥,工具通過調用不同的工藝參數(shù),得到最慢的發(fā)射時鐘路徑饥追、最慢的數(shù)據(jù)路徑和最快的捕獲時鐘路徑:
時鐘周期=4
發(fā)射時鐘最慢延時 = U1+U2 = 0.8+0.6 = 1.4
最慢數(shù)據(jù)路徑延時 =3.6
最快捕獲時鐘延時 = U1+U3 = 1.3
時序單元FF2的建立時間要求查庫得到0.2
因此 :建立時間的slack為:
1.3 + 4-0.2 - 1.4 - 3.6 = 0.1
(2)保持時間分析
保持時間的計算思路是一樣的图仓,這里只給出保持時間需要滿足的公式,不再舉具體例子但绕。單一模式下要滿足的保持時間要求如下所示:
發(fā)射時鐘最快路徑延時 + 最快數(shù)據(jù)路徑延時≥捕獲時鐘最慢路徑延時 + 終止點時序單元保持時間
2.題目計算
對于前面的題目救崔,由于題目的要求是在WC-BC模式下,但是假如是在單一模式捏顺,我們來看看該如何分析:
單一庫下工具提取到延時信息的理解如下:
下面分析題目中的路徑:
對于F1和F2之間的建立時間分析如下所示:
時鐘周期 = 2*4 = 8
最慢發(fā)射時鐘路徑(延時) = C1max + C2max = 1
最慢數(shù)據(jù)路徑 = F1cqmax+L1max = 0.7+7 = 7.7
最快捕獲時鐘路徑 = C1min + C2min + C3min = 0.6
F2的D端口建立時間 = 0.3
因此建立時間slack 為 :
8 +0.6 - 0.3 - ?1 - 7.7 = -0.4 (建立時間違規(guī))
對于F1和F2之間的保持時間分析如下所示(題目沒有要分析這條路徑的保持時間):
最快發(fā)射時鐘路徑:C1min + C2min = 0.4
最快數(shù)據(jù)路徑:F1cqmin+L1min = 3.2
最慢捕獲時鐘:C1max + C2max + C3max = 1.5
F2保持時間 = 0.1
因此保持時間slack為:
0.4+3.2 - 1.5 - 0.1 = 2
同理可以分析單一模式下F3-F4路徑的保持時間:
最快發(fā)射時鐘路徑:C1min + C2min = 0.4
最快數(shù)據(jù)路徑:F3cqmin + L2min = 0.4
最慢捕獲時鐘:C1max + C2max + C4max+C5max = 2
F2保持時間 = 0.1
因此保持時間slack為:
0.4 + 0.4 - 2 - 0.1 = -1.3(保持時間違規(guī))
三六孵、最好-最壞分析模式(BC-WC)
1.模式介紹
對于最好-最壞分析模式,靜態(tài)時序分析工具會同時在PVT環(huán)境中的最好的和最壞的工作環(huán)境下檢查建立時間和保持時間幅骄。也就是說劫窒,使用這個方式的時候,至少需要讀入兩個庫(環(huán)境)拆座,一個用來設置最好的工作環(huán)境(或者說延時最兄魑 ),一個用來設置最壞的工作環(huán)境(或者說延時最大)挪凑。
(1)建立時間分析
最好-最壞分析模式中建立時間的基本計算公式與單一分析模式下建立時間的基本計算公式一致孕索,不同點在于計算建立時間所使用的工作環(huán)境不同,在計算建立時間過程中靜態(tài)時序分析工具調用邏輯單元的最大(max)延時時序庫躏碳,并用來檢查時序路徑最大延時是否滿足觸發(fā)器建立時間搞旭。
例如對下面電路進行建立時間分析:
時鐘周期 = 4
發(fā)射時鐘最慢路徑延時(max庫)=U1單元延時(max庫)+U2單元延時(max庫)=0.7+0.6=1.3
最慢數(shù)據(jù)路徑延時(max庫)=3.5
最快數(shù)據(jù)路徑延時(max庫) =1.9
捕獲時鐘最快路徑延時值(max庫) = U1單元延時(max庫)+ U3單元延時(max庫)=0.7+0.5=1.2
建立時間要求(max庫) = 0.2
因此觸發(fā)器之間路徑的建立時間slack為:
? 1.2 + 4 - 0.2 -1.3 - 3.5 = 0.2
(2)保持時間分析
同樣,最好-最壞路徑分析模式中保持時間的基本計算公式與單一分析模式下保持時間的基本計算公式一致菇绵。不同點在于計算保持時間所使用的工作環(huán)境不同肄渗。在計算保持時間過程中,靜態(tài)時序分析工具調用邏輯單元的最小(min)延時時序庫脸甘,并用來檢查時序路徑最小延時是否滿足觸發(fā)器保持時間的約束恳啥。 即進行保持時間檢查時偏灿,始發(fā)點觸發(fā)器的發(fā)射時鐘延時丹诀、終止點觸發(fā)器捕獲時鐘延時和從始發(fā)點到終止點的數(shù)據(jù)路徑延時都是基于最好工作條件下所計算的路徑延延時
例如對下面電路進行保持時間分析:
時鐘周期 = 4
發(fā)射時鐘最快路徑延時(min庫)=U1單元延時(min庫)+U2單元延時(min庫)=0.5+0.4=0.9
最快數(shù)據(jù)路徑延時(min庫)=1
最慢數(shù)據(jù)路徑延時(min庫) =2.3
捕獲時鐘最慢路徑延時值(min庫) = U1單元延時(min庫)+ U3單元延時(min庫)=0.5+0.3=0.8
保持時間要求(min庫) = 0.1
因此觸發(fā)器之間路徑的保持時間slack為:
0.9+1-0.8-0.1 = 1 (保持時間不違規(guī))
2.題目計算
對于我們的題目,就是要求我們在BC-WC模式下進行分析建立時間和保持時間。現(xiàn)在就來分析一下铆遭。
首先我們分析工具提取到延時信息:
這里我們需要注意硝桩,本來我在讀入max庫的時候,應該有會得到max庫下的單元延時的最大最小值枚荣;在讀入min庫的時候后碗脊,會得到min庫下單元的最大最小值。題目中相當于只有一個庫下單元延時的最大最小值橄妆,這個庫取了max庫的最大延時衙伶,同時取min庫的最小延時。因此在進行WC分析的時候害碾,我們就將max庫中的單元延時最大和最小值看做相等進行處理矢劲,即max庫中單元只有一個固定延時值(即上面的max列表里面)。同理BC分析的時候慌随,min庫中的單元也只有一個延時值(即上面的min列表里面)芬沉。
下面就對時序路徑進行分析:
對于F1-F2路徑的建立時間分析如下所示:
時鐘周期 = 2*4 = 8
最慢發(fā)射時鐘路徑(max庫) = C1max + C2max = 1
最慢數(shù)據(jù)路徑(max庫) = L1max = 7
最快捕獲時鐘路徑(max庫) = C1maxmin + C2maxmin + C3maxmin=C1max + C2max + C3max = 1.5 ??(maxmin表示max庫下的最快路徑)
F2的D端口建立時間 (max庫)= 0.3
因此建立時間slack 為 :
8 +1.5 - 0.3 - ?1 -0.7- 7 = 0.5
對F3-F4路徑的保持時間分析如下所示:
最快發(fā)射時鐘路徑(min庫):C1min + C2min = 0.4
最快數(shù)據(jù)路徑(min庫):F3cqmin + L2min = 0.4
最慢捕獲時鐘(min庫):C1minmax + C2minmax + C4minmax+C5minmax =C1min + C2min + C4min+C5min=0.8 ??(minmax表示min庫下的最慢路徑)
F2保持時間 = 0.1
因此保持時間slack為:
0.4 + 0.4 - 0.8 - 0.1 = -0.1(保持時間違規(guī))
四、OCV分析模式
在芯片變化相關工作模式下阁猜,與最好-最壞分析模式一樣丸逸,靜態(tài)時序分析工具也會同時在PVT境中的最好的和最壞的工作環(huán)境下檢查建立時間和保持時間,也就是要讀入兩個庫剃袍。
1.基本的OCV模式:
(1)建立時間的分析
OCV分析模式中建立時間的基本計算公式與其他分析模式下建立時間的基本計算公式一致黄刚,不同點在于計算最快路徑和最慢路徑所使用的工作環(huán)境不同,在計算建立時聞過程中靜態(tài)時序分析工具調用時序單元的最大延時時序庫來計算最慢路徑的延時笛园,同時調用邏輯單元的最小延時時序庫來計算最快路徑的延時隘击,只檢查時序路徑的延時是否滿足觸發(fā)器建立時間的約束。
進行建立時間檢查時研铆。始發(fā)點觸發(fā)器的發(fā)射時鐘采用的是最壞條件下最慢時鐘路徑埋同,終止點觸發(fā)器的捕獲時鐘采用的是最好條件下最快時鐘路徑,而從始發(fā)點到終止點的數(shù)據(jù)路徑的延時則是在最壞條件下最慢數(shù)據(jù)路徑延時棵红。
例如:
時鐘周期 = 4
發(fā)射時鐘最慢路徑延時(max庫)=U1單元延時(max庫)+U2單元延時(max庫)=0.7+0.6=1.3
最慢數(shù)據(jù)路徑延時(max庫)=3.5
捕獲時鐘最快路徑延時值(min庫) = U1單元延時(min庫)+ U3單元延時(min庫)=0.5+0.3=0.8
建立時間要求(max庫) = 0.2
因此觸發(fā)器之間路徑的建立時間slack為:
? 0.8 + 4 - 0.2 -1.3 - 3.5 =- 0.2(時序違規(guī))
·保持時間:類似凶赁,不進行詳細描述
(2)題目計算
對于我們的題目,假設要在基本的OCV模式下進行計算逆甜,我們來看一下:
首先庫的分析WC-BC模式一樣虱肄,不重復說明:
然后對時序路徑進行分析:
對于F1-F2路徑的建立時間分析如下所示:
時鐘周期 = 2*4 = 8
最慢發(fā)射時鐘路徑(max庫) = C1max + C2max = 1
最慢數(shù)據(jù)路徑(max庫) = F1cqmax+L1max = 0.7+7 = 7.7
最快捕獲時鐘路徑(min庫) = C1min + C2min + C3min= 0.6
F2的D端口建立時間 = 0.3
因此建立時間slack 為 :
8 +0.6 - 0.3 - ?1 -7.7= -0.4 ?(建立時間違例)
對F3-F4路徑的保持時間分析如下所示:
最快發(fā)射時鐘路徑(min庫):C1min + C2min = 0.4
最快數(shù)據(jù)路徑(min庫):F3cqmin + L2min = 0.4
最慢捕獲時鐘(max庫):C1max + C2max + C4max+C5max =2
F2保持時間 = 0.1
因此保持時間slack為:
0.4 + 0.4 - 2 - 0.1 = -1.3(保持時間違規(guī))
對于上面的題目,在基本的OCV模式中計算分析建立時間時交煞,公共路徑C1咏窿、C2在計算最慢發(fā)射時鐘路徑時,使用的是max庫的最慢延時素征;而在計算最快捕獲時鐘路徑的時候使用的是min庫的最快延時集嵌。也就是說萝挤,該分析把公共路徑的輸出,當做兩個不同傳播延時的信號進行延時計算根欧。然而在芯片實際工作時怜珍,公共路徑的輸出是一個信號驅動后續(xù)的發(fā)射時鐘和捕獲時鐘,上面的檢查分析太過于悲觀凤粗,不太符合實際酥泛,因此延伸到下面兩種模式。
2.考慮時序減免的OCV模式:
時序減免〔timing derate)的作用是很據(jù)減免(derating)系數(shù),靜態(tài)時序分析工具會在時序路徑的每級邏輯門嫌拣、連線和端口上都加上或減去一個原來延時值乘以減免系數(shù)值的延時作為最終的延時結果柔袁。設置時序減免值的目的是使時序分析結果更加符合實際情況。
使用這種方式需要設置derating系數(shù)异逐,系數(shù)值需要通過實際工程經驗總結出來瘦馍,這里不進行深入探討,而且題目中沒有給出該系數(shù)应役,因此不進行深入介紹情组。
3.考慮時鐘路徑悲觀移除(CPPR)的OCV模式:
可以分為 不考慮時序減免和考慮時序減免情況,這里不進行介紹箩祥,感興趣可以參考有關資料院崇。
原文鏈接:靜態(tài)時序分析的三種分析模式(簡述) - IC_learner - 博客園 (cnblogs.com)