靜態時序分析(STA)基礎


注:上海交大論文《數字電路靜態時序分析與設計》—學習筆記

第一章 概述

1.4 集成電路的設計流程

clip_image002

一般集成電路設計步驟分為邏輯設計和物理設計如圖1-1 所示:

邏輯設計包括:

系統划分:將一個大規模的系統按功能分成幾個功能模塊

設計輸入:用HDL(Hardware Description Language)語言或電路原理圖的形式對系統進行功能級描述的設計輸入。

功能仿真:對功能級描述進行功能和時序仿真驗證並在驗證功能正確后轉變成適用於綜合器的RTL級(Register Transfer Level)描述的網表輸入。

邏輯綜合:把高層次設計的描述利用某種標准單元庫按照一定的約束條件轉換成優化的門級網表。圖1-2給出了基本的計算機輔助邏輯綜合的流程圖。設計者只要把精力集中在層次的划分、高層的設計、描述准確的約束條件和標准單元庫的單元優化上,而其它大量的工作由邏輯綜合工具自動完成邏輯綜合工具經過多次交互處理最終產生最優化的門級網表。

clip_image004

布局前的模擬:對綜合后加入單元時延信息的門級網表進行仿真檢查時序上是否滿足設計系統規范和接口規范。

物理設計包括:

平面規划:其任務是為每個模塊和整個芯片選擇一個好的布圖方案一般根據其包含器件數估計模塊的面積再根據該模塊和其它模塊的連接關系和上層模塊或芯片的形狀估計該模塊的形狀和相對位置此過程一般手工完成

布局:確定模塊中各單元的位置布局問題比較復雜一般分成初線始布局和改進布局兩步。

布線:通常布線分為總體布線(Global Routing)和詳細布線(Detailed Routing)兩步總體布線把線網分配到合適的布線區域不關心走線的具體位置詳細布線最終確定連線的具體位置。

參數提取:確定各個連接處的電阻和電容及互連線的分布參數。

后仿真:加入布局布線所增加的各種寄生電學參數后再次進行時序仿真並進行ERC,電學規則檢查和DRC,設計規則檢查最后進行網表的驗證(LVS Layout Versus Schematic) 來確認版圖的正確性。

1.5 數字集成電路的時序分析簡介

數字集成電路的設計必須滿足一定的時序關系最早是用SPICE 進行時序分析和時序驗證,但是,SPICE 方法與原始輸入模式有關, 因而在實際應用中受到一定的制在80 年代初期出現了與原始輸入模式無關的拓撲算法,該算法簡單高效,因而許多時序分析和驗證工具中得到應用大約在80 年代后期,人們開始對拓撲算法中的偽路徑問題進行廣泛的研究提出了各種敏化路徑的定義,並將其用於時序分析和時序驗證中。

1.5.1 同步時序電路中的時序關系

在一個同步時序電路中, 所有的觸發器都由一個共同的外部時鍾線控制, 這條時鍾線通常稱為全局時鍾(global clock)。為了實現嚴格的同步, 電路中的時序關系必須滿足一定的條件。

一個下降沿觸發的觸發器,它有3個端口,即數據輸入端(data input)、數據輸出端(data output)和控制端(control input)。它的基本工作原理是:當控制端口由高電平變化為低電平時觸發器對數據輸入端進行采樣,並把采樣值送到數據輸出端。當控制端口為其它情況時數據輸出端維持原采樣值直至控制端口第二次由高電平變化為低電平它的時序關系如圖1-3 所示:

clip_image006

圖1-3 建立時間和保持時間

實際上由於物理元器件本身的特性,為了保證采樣過程的准確,數據輸入端必須在實際采樣時間到達之前就保持穩定,同樣在采樣時間之后數據輸入端仍然必須維持一段時間。這其實就是通常所說的數據輸入端相對於采樣時刻的數據建立時間(setup time) 和數據保持時間(hold time) 。如上圖所示當觸發器類型確定以后建立時間和保持時間由該觸發器本身的結構決定,一般來說它們是常數。

1.5.2 時序驅動的邏輯綜合

在一個典型的同步時序電路中,觸發器的數據輸入端連接到一個組合邏輯電路的輸出,而該組合邏輯電路的輸入又連接到一些觸發器的數據輸出端,如圖1-4 所示:

clip_image008

圖1-4 同步時序電路

由前面的分析知道,為了實現正確的同步,觸發器的數據輸入端必須滿足一定的時序關系,而觸發器的數據輸入端通常連接到一個組合邏輯電路的輸出因此,該組合邏輯電路必須滿足一定的時序關系。

設時鍾周期為tc,觸發器的第一個下降沿發生在t= 0,則第二個下降沿發生在t= tc。考慮圖2 中的組合邏輯電路,在t= 0時,該組合邏輯電路的原始輸入端得到了觸發器的輸出數據,由這些確定的原始輸入可以得到該組合邏輯電路的原始輸出,設原始輸出最晚在t=dmax時穩定,由於原始輸出連接到觸發器的數據輸入端,為了實現正確的同步,dmax 必須滿足下式:

tc – dmax > ts 或 dmax > tc - ts (1-1)

式中,ts為該觸發器的數據建立時間。同樣,對數據保持時間,也可以得到類似的結論當組合邏輯電路的原始輸入在t=0 獲得了觸發器的輸出數據,令dmin 為該組合邏輯電路最早實現輸出穩定的時間,為了實現正確的同步,dmin 必須滿足下式:

dmin > th (1-2)

式中,th 為該觸發器的數據保持時間以上關系可以清楚地由圖1-3 和圖1-4 得到因此,如果我們要綜合圖1-4 中的組合邏輯電路,它的輸入包括該組合邏輯電路要實現的邏輯功能以及必須滿足的時序關系,該時序關系通常以下列形式反映:

(1) 原始輸入的到達時間(arrival time AT);

(2) 原始輸出的要求時間(require time RT);

其中,原始輸入的到達時間反映了該組合邏輯電路所處的時間環境,原始輸出的要求時間則直接限制了該組合邏輯電路的速度而邏輯綜合的結果,不但要求該組合邏輯電路的邏輯功能正確, 而且它的時序關系必須滿足(1-1) 式和(1-2) 式。

1.5.3 時序分析

在綜合出一個組合邏輯電路之后,需要驗證它是否滿足給定的時序關系,這通常又稱為時序驗證(timing verification) 組合邏輯電路的時序驗證需要計算該組合邏輯電路的dmax 和dmin,它通常又稱為時序分析(timing analysis) 需要指出的是,數字集成電路時序分析的精確值完全由它的模擬行為所決定,一般情況下不易得到該精確值,因此,在時序分析時必須堅持以下兩條原則:

1) 時序分析的結果相對於真實值必須是保守的如果令d'max 和d'min 是時序分析所得到的結果,而dmax 和dmin 是真實值, 則必須滿足,

d'max ≥ dmax (1-3)

d'min ≤dmin (1-4)

考慮(1-1) 式和(1-3)式, 如果存在d'max ≥ tc - ts 則必然有dmax ≤tc – ts,也就是說,如果d'max 是滿足時序關系的, 則dmax 必然也是滿足時序關系的。同理,對dmin 也可得到類似的結論。

如果d'max 相對於dmax 不是保守,d'max ≤ dmax ,則並不能由d'max≥c- s 得到dmax≥c- s ,即驗證的結果是正確的,而實際的結果有可能是錯誤的, 因此,會出現所謂的“假的正確結果”(false positive result)。

2) 時序分析的結果必須盡可能接近於真實值

保守的計算雖然可以進行有效的時序驗證, 但是當保守的結果遠遠大於實際的精確值時也可能出現相應的錯誤即驗證的結果是錯誤的, 而實際的結果是正確的,因此, 會出現所謂的“假的錯誤結果”(false negative result)。

因此, 在進行時序分析時,一方面要保證所得到的結果是保守的,另一方面,要保證所得到的結果盡可能與真實值接近這樣,時序驗證的結果才是有效的,不會出現假的正確結果和假的錯誤結果最后需要指出的是,在實際的時序驗證中,通常只對dmax 進行驗證而不考慮dmin , 其原因在於,假如dmin 違反了時序關系,只需用一個延時器就可以實現正確的時序關系以下我們只對dmax 進行分析。

1.5.4 SPICE 分析法

前面提到dmax 實際上由電路的模擬行為所決定為了得到准確的dmax可以用三極管電阻和電容等來模擬電路的行為顯然, SPICE 非常適於解這類問題它通過對一個電路建立它的連續微分方程組來計算得到准確的dmax。而實際應用SPICE 進行時序分析時存在以下幾個困難:

1) 由於一組微分方程只能求解一個原始輸入模式的響應為了得到准確的dmax 必須對所有2n 個原始輸入模式進行計算這里n 為原始輸入變量個數。

2) 當電路規模超過一定限制時微分方程數目顯著增加,計算微分方程的解必然要耗去大量的時間。

由於存在以上困難所以在實際的時序分析中並不應用SPICE 而是應用更抽象的門級分析法由於門級分析不與電路的模擬行為直接相關,同時又含有模擬行為的信息因而在實際中得到了廣泛的應用。

1.5.5 門級時序分析

門級時序分析問題可以歸納如下:

布爾網絡G=(V,E),表示一個多級組合邏輯電路。V = Vpi U Vpo U Vi
式中VP I表示原始輸入,VPO表示原始輸出, Vi 表示內部節點,通常也稱作門,表示網絡中節點之間的邊集。

任意一個內部節點nV。它的延遲特性[0,d(n)]由電路的模擬行為事先計算得到。對於每個原始輸入XiVpi,它的它的到達時間為arr(Xi);則對於任意一個原始輸出ZiVpo,計算它的最晚到達時間arrmax (Zi);

需要指出的是,在門級時序分析中,為了方便,假設每個門的延遲對不同的扇入以及上升和下降波形都是相同的,而實際上,門的延遲是扇入和上升以及下降波形的函數。

1.5.6 拓撲算法

對於門級時序分析問題,一個最簡單和最直接的算法就是拓撲算法在拓撲算法中, 假定每個門的輸出只有在它的各扇入均穩定以后才穩定因此, 簡單地從原始輸入到原始輸出的正向遍歷便可以得到原始輸出的最晚到達時間,計算公式為:

clip_image010

從拓撲上講, 網絡中從原始輸入到原始輸出的最長路徑決定了原始輸出的最晚到達時間(此時,原始輸入的到達時間假設為0)該算法的復雜度為O(|V|+|E|) 其中|V|為網絡中節點的數目,|E|為網絡中邊的數目由於拓撲算法簡單高效,並且它的計算結果是保守的,因而在許多時序優化工具中都用到該算法。

1.6 靜態時序分析中要解決的主要問題

為了對電路進行門級的靜態時序分析,首先需要整個電路的單元線網及其相互關系的信息這些信息主要從網表文件和庫文件中得到庫文件和網表文件都是普通的文本文件格式在進行需要把庫和網表中有用的信息抽取出來鏈接成可以進行分析的數據結構。

有了庫和網表的數據結構后要進行時序分析還需要得到各個單元和線網的時延單元的時延可以通過其輸入信號的上升下降時間及輸出端口上的負載電容信息。從工藝庫中的查表模型中以插值的方法得到。

線網是由半導體材料內部的金屬層實現的,可以看作微帶結構。要求得線網的時延,首先要把線網結構轉變成可以用於分析的樹形RC結構或RLC結構,然后通過特定的方法從這種結構中計算出信號在線網上的時延。

在計算線網時延的同時還不能忽略一個問題就是串擾的問題。所謂串擾問題就是多根長的平行互連線之間信號的互相影響解決串擾問題。有兩個方面,一個是求得兩根平行線之間的耦合電容或耦合電感;另一個是根據不同的情況估算串擾對時延的影響。

當已經掌握了所有單元和線網的時延情況后,還必須在所有的從觸發器與觸發器間的組合邏輯塊中找到最長路徑和最短路徑,以便進行建立時間檢查和保持時間檢查因此必須找到一種准確而便捷的方法來求取該路徑。

在本文中將選擇性的就上面多個問題中的一部分進行討論這些問題是:

數字集成電路的靜態時序分析(第二章)

時序分析中的相關文件和架構(第三章)

互連線的時延估算 (第四章)

關鍵路徑方法 (第五章)

考慮串擾效應的靜態時序分析(第六章)

 

第二章 數字集成電路的靜態時序分析[微軟中國1]

靜態時序分析是大規模集成電路設計中非常重要的一個方面。在電路設計過程中,為得到一個最佳的電路設計,在結構邏輯、電路布局布線等方面時序分析起着關鍵性的作用。靜態時序分析既要檢驗電路的最大延遲以保證電路在指定的頻率下能夠滿足建立時間的要求; 同時又要檢驗電路的最小延遲以滿足保持時間的需求。芯片的設計只有通過了靜態時序分析才能真正完成甚至在從邏輯綜合開始后的每一個步驟的結果都需要滿足或部分滿足時序的要求。

隨着芯片尺寸的減小和集成度密集化的增強、電路設計復雜度的增加、電路性能要求的提高等,新的變化都對芯片內的時序分析提出了更高的要求。

2.1 數字集成電路中的時序問題

在一個同步時序電路中, 所有的觸發器都由一個共同的外部時鍾線控制,這條時鍾線通常稱為全局時鍾(global clock)。為了實現嚴格的同步, 電路中的時序關系必須滿足一定的條件。

2.1.1 建立時間和保持時間

一個下降沿觸發的觸發器,它有3個端口,即數據輸入端(data input)、數據輸出端(data output)和控制端(control input)。它的基本工作原理是:當控制端口由高電平變化為低電平時觸發器對數據輸入端進行采樣,並把采樣值送到數據輸出端。當控制端口為其它情況時數據輸出端維持原采樣值。直至控制端口第二次由高電平變化為低電平它的時序關系如圖2-1 所示:

實際上由於物理元器件本身的特性,為了保證采樣過程的准確,數據輸入端必須在實際采樣時間到達之前就保持穩定,同樣在采樣時間之后數據輸入端仍然必須維持一段時間。這其實就是通常所說的數據輸入端相對於采樣時刻的數據建立時間(setup time) 和數據保持時間(hold time) 。如上圖所示當觸發器類型確定以后建立時間和保持時間由該觸發器本身的結構決定,一般來說它們是常數。

clip_image006[1]

圖2-1 建立時間和保持時間

2.1.2 時鍾偏斜(clock skew)

在一個典型的同步時序電路中觸發器的數據輸入端連接到一個組合邏輯電路的輸出,而該組合邏輯電路的輸入又連接到一些觸發器的數據輸出端。如圖2-2所示:

clip_image012

圖2-2 同步時序電路

從以上的同步時序電路上可以看到時鍾到達R1 和R2 的時間Tclk1 和Tclk2 很可能是有差異的我們把時鍾到達不同觸發器的時間差定義為時鍾偏斜(clock

Skew)用δ表示。公式為:

δ = Tclk1 Tclk2 2-1

時鍾skew 在不同的時鍾布線的情況下可正可負,如圖2-3:

clip_image014

圖2-3 時鍾偏斜

時鍾skew的正負這樣定義,當時鍾信號的傳輸方向和邏輯信號的傳輸方向一致時,skew為正如圖2-3(a)。當時鍾信號的傳輸方向和邏輯信號的傳輸方向相反時,skew為負如圖2-3(b)。

2.1.3 時延約束

未命名

未命名2

自制圖片(下文可參考)

(1) 建立時間約束

由前面對的分析知道,為了實現正確的同步,觸發器的數據輸入端必須滿足建立時間的要求。圖2-2中,觸發器R1在時鍾信號到達R1后輸出邏輯信號,輸出的邏輯信號在經過組合邏輯電路后到達觸發器R2。邏輯信號達到R2的時刻應該比下一個周期時鍾信號到達R2的時刻至少早一個建立時間的長度。用公式表示為:

(T2 + T) - (T1 + tR1 + tlogic) > tsetup (2-2)

式中T1 是本周期時鍾信號到達R1的時刻,T2 是本周期時鍾信號達到R2 的時刻,T是時鍾周期,那么T2 + T是下一個周期的時鍾信號到達R2的時刻。

tR1[微軟中國2] 是R1中時鍾到達后直到Q 端信號輸出的延時 tlogic 是邏輯信號在組合邏輯電路中的延時,則 tR1 + tlogic 是邏輯信號從R1到R2的總延時。那么T1 + tR1 + tlogic 是R1輸出信號到達R2的時刻。tsetup是建立時間,由於時鍾偏斜δ= T2 -T1經過整理得到:

tlogic < T - tR1 - tsetup +δ 2-3)[微軟中國3]

則:

T > tlogic + tR1 + tsetup - δ (2-4)

從上式可以看到集成電路的時鍾周期受到的約束。研發人員希望芯片的時鍾周期越小越好,這樣可以提高芯片的頻率,但是時鍾周期受到了上式的限制。可以看到要縮短時鍾周期就要減小組合邏輯和時序邏輯的延時,從另一個方面也說明了靜態時序分析的重要性。

在實際電路中組合邏輯延時並不是固定值會跟據信號走過的路徑不同而改

變如圖2-9。在上2-4式中由於大於號在tlogic (組合邏輯延時)的左邊為了在各種情況下都使該式成立。所以這里的tlogic是最長的組合邏輯延時是tlogicmax,也就是說從所有只經過組合邏輯連接到R2 的觸發器出發找出一條延時最長的路徑這條路徑的時延必須滿足R2的建立時間時延約束。

由於類似2-4式在集成電路中的所有有信號傳播關系的時序邏輯單元之間都要滿足由於tR1tsetupδ相對tlogicmax很小,因而在所有每兩個時序邏輯單元之間的這樣的最大路徑中時延最大的一條就是限制時鍾周期的最關鍵因素,我們一般稱為“關鍵路徑”。因此找出各個觸發器間組合邏輯的最長路徑成為靜態時序分析工具需要解決的主要問題之一,有關關鍵路徑的查找問題見第4章。

clip_image020[微軟中國4]

圖2-9 不同的內部路徑

在時序分析工具中把自前級觸發器出發的時鍾[微軟中國5] 到達后級觸發器的時間稱為“到達時間arrival time”,而把后一級觸發器由於setuptime 的原因要求前級信號到達的時間成為“要求時間required time”。

這樣把(2-3)變形為:

T +δ- tsetup < tR1 + tlogic (2-5)

其中等式左邊就是要求時間 required time:

TR = T +δ- tsetup (2-6)

等式右邊邊就是到達時間 arrival time:

TA = tR1 + tlogic (2-7)

TR > TA,而一般把TR - TA的值稱作slack,用來表明該時序路徑上是否有違反建立時間約束的情況。當slack為正值時表明滿足建立時間約束,當slack為負則不滿足建立時間約束。對於不滿足時序約束的情況稱為timing violation

下圖就是一個slack為負出現setup timing violation的例子:

clip_image022

圖2-4 違反建立時延約束情況timing violation

(2) 保持時間約束

從前面對保持時間的定義中可以知道在時鍾信號到達觸發器並對觸發器輸入端采樣之后,數據輸入端仍然必須維持一段時間才能保證觸發器輸出端的正確輸出。

由於一般情況下,后級觸發器在本時鍾邊沿收到的前級觸發器在上一個時鍾邊沿處發出的信號。所以為了保證后級觸發器上本周期時鍾到達后仍穩定一段時間前級觸發器在本時鍾邊沿發出的信號到達后級觸發器的時間不能太早,前級觸發器本時鍾沿的輸出信號應當在后級觸發器本時鍾沿到達后經過保持時間后才到達后級觸發器。用公式表示為:

T1 + tR1 + tlogic > T2 + Thold (2-8)[微軟中國6]

式中左邊的T1 + tR1 + tlogic 是R1輸出信號到達R2的時刻,右邊為本周期時鍾到達R2的時刻加上一個保持時間,經過整理可以得到:

δ < tR1 + tlogic [微軟中國7] - Thold (2-9)

從上式中可以看到當δ為正時它一定要小於tR1 + tlogic - Thold ,而當δ 為負時 T > tlogic + tR1 + tsetup - δ,負值δ會引起時鍾周期變大而影響芯片性能。所以在集成電路設計中總是希望使同一時鍾信號到達所有時序邏輯的時間一致,使δ盡可能的接近零,這樣就可以避免上述問題。

在保持時間約束的檢查中到達時間為:

TA = tR1 + tlogic

而要求時間為

TR =δ + Thold

這里要求TA > TR 。另外需要強調的是,一般情況下建立時間是在下一個時鍾鍾邊沿處比較,而保持時間是與兩個觸發器的同一個時鍾邊沿之比較。如下圖所示:

clip_image024

圖2-5 建立時間檢查和保持時間檢查

由於保持時間時延約束關心的是觸發器的當前輸入信號穩定保持一段時間。強調輸入端的下一個信號的到達不能早於這段時間。這就使得tlogic的定義與其在建立時間約束有明顯的不同。這里的tlogic指的是輸入端變化最早到達的時間而不是輸入端信號的最遲到達的時間。所以這里的tlogic是最快情況下的組合邏輯時延是ltlogicmin。與建立時間時延約束要求尋找最長路徑不同這里要尋找最短路徑一個數字集成電路要滿足其時鍾頻率正常工作就必須滿足以上兩個約束而對建立時間和保持時間約束進行檢查的方法稱為“時序分析”。


[微軟中國1]靜態時序分析與綜合的關系,綜合工具是怎樣進行靜態時序分析的?綜合時的時序約束與靜態時序分析的關系?

[微軟中國2]Tco 時間,第一章中的dmax包括Tco和Tlogic。

[微軟中國3]不考慮時鍾偏斜的情況下,最小的時鍾周期 Tmin = Tco + Tlogic + TsetupT > Tco + Tlogic + Tsetup算上skew后變為:T +δ> Tco + Tlogic + Tsetup

[微軟中國4]前后各是一個寄存器,兩個寄存器之間可能有n條組合邏輯的路徑。其中延時最大的為關鍵路徑。

[微軟中國5]應該為數據輸出信號把?

[微軟中國6]

tR1 + tlogic >δ + Thold

[微軟中國7]

Tlogicmin


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM