靜態(tài)時序分析介紹
傳統(tǒng)的電路設計分析方法是僅僅采用動態(tài)仿真的方法來驗證設計的正確性。隨著集成電路的發(fā)展,這一驗證方法就成為了大規(guī)模復雜的設計驗證時的瓶頸。
相對于動態(tài)仿真方法,靜態(tài)時序分析方法要快很多,而且它能夠驗證所有的門級電路設計的時序關系。
靜態(tài)時序分析最大的特點是不需要加入輸入測試向量,每一個時序路徑都自動被檢測到。
靜態(tài)時序分析工具主要對設計電路中以下路徑進行分析:
從原始輸入端到設計電路中的所有觸發(fā)器;
從觸發(fā)器到觸發(fā)器;
從觸發(fā)器到設計電路的原始輸出端口;
從設計電路的原始輸入端口到原始輸出端口。
時序路徑(Timing Path)
路徑1:從設計電路的原始輸入端口A到觸發(fā)器的數據端口D。
路徑2:從觸發(fā)器的CLK端到觸發(fā)器的數據輸入端口D。
路徑3:從觸發(fā)器的CLK端到設計電路的原始輸出端口Z。
路徑4:從設計電路的原始輸入端口A到設計電路的原始輸出端口Z。
觸發(fā)器的建立時間(Setup Time):
觸發(fā)器的保持時間(Hold Time):
指的是時鐘信號變化之后數據保持不變的時間
時間裕量(Slack)
Slack是指信號在時序路徑上要求的時間和實際花費的時間之差。
時鐘偏斜(Clock Skew)
時鐘偏斜是指從時鐘定義點到不同觸發(fā)器時鐘引腳的延時差。在可綜合的同步設計電路中,在一個時鐘沿第一個觸發(fā)器放出數據,此數據在另一個時鐘沿(通常是接下來的那個時鐘沿)被第二個觸發(fā)器接收到。如果這兩個時鐘沿(發(fā)出數據的時鐘沿和接收數據的時鐘沿)是同一個時鐘源放出的,則在理想狀態(tài)下,兩個時鐘沿相差一個時鐘周期。但是由于兩個觸發(fā)器的時鐘路徑的不同,路徑上的延時會有一定的差別,接收數據的時鐘沿可能早到或晚到,這樣的話就會產生時鐘偏斜。
實例:用PrimeTime進行時序分析
Primetime,縮寫為PT,是一個獨立的STA工具。它不僅能夠在設計電路所要求的約束條件下檢查時序,還能對設計電路進行全面的靜態(tài)時序分析。
(1)讀取設計電路數據
把電路的設計代碼文件讀入PT中,以便PT進行分析。值得注意的是,PT做靜態(tài)時序分析的時候只能讀映射過的文件。
read_db-netlist_only.db#dbformat read_verilog .sv#verilogformat read_vhdl .svhd#vhdlformat read_edif .edf#EDIFformat
(2)創(chuàng)建設計電路的約束條件
對設計電路設置約束條件,這樣才能得到接近實際情況的分析結果。通常需要設置相關的時鐘信號和輸入/輸出延時
create_clock-period40-waveform{020}CLK set_clock_latency-source0.2CLK set_clock_uncertainty-setup0.5-hold0.5CLK set_dont_touch_networkCLK set_ideal_networkCLK
(3)指定環(huán)境分析條件
除了一些語法上輕微的差別,PT的環(huán)境的設置命令與DC一致。
下面是常用的設置環(huán)境的命令:
set_wire_load_model-nameset_wire_load_mode set_operating_conditions set_load50[all_outputs] set_input_delay10.0-clock [all_inputs] set_output_delay10.0-clock [all_outputs]
(4)進行靜態(tài)時序分析
report_timing:顯示時序路徑信息。
report_timing -delay max -from a -to z2
report_timing -delay min -from a -to z2
上述第一條命令用于建立時間沖突的檢查,第二條命令用于保持時間沖突的檢查。
report_constraint:顯示設計電路的相關約束信息。
report_constraint -all_violators
檢查時序沖突和修正沖突
由于靜態(tài)時序工具把整個設計電路打散成時序路徑,分析不同路徑的時序信息,得到建立時間和保持時間的計算結果。而靜態(tài)時序分析的精髓就在于判斷和分析這兩個參數的結果。
消除建立、保持時間的沖突方法
消除建立時間的沖突方法如下:
加強約束條件重新綜合設計電路或對產生沖突的時序路徑進行進一步的優(yōu)化;
通過做ECO(Engineering Change Order)來消除沖突;
如果以上方法都不能產生效果,那可能只好通過修改RTL代碼來實現。
消除保持時間沖突方法如下:
絕大多數的布局布線工具都具有自動消除保持時間沖突的功能,可以通過這些工具來實現;
如果工具不能實現的話,可以在產生沖突的時序路徑上通過ECO添加緩沖器邏輯,使得數據到達的時間符合保持時間的檢查,以此消除沖突。
統(tǒng)計靜態(tài)時序分析
靜態(tài)時序分析很久以來都被看作是百萬門級芯片時序分析的基本方法及設計完成的檢驗。然而,隨著深亞微米技術進一步下降到90 nm及其以下的線寬,設計者在進行靜態(tài)時序分析時面臨著太多的不確定性。
用統(tǒng)計表態(tài)時序分析(SSTA,Statistical Static Timing Analysis)的方法有可能估計出許多不確定的現象,幫助設計者精調設計,減少不必要的過度設計,使得設計更可靠,進而提高良率。
傳統(tǒng)的時序分析的局限
制程變異的來源有很多,主要包括每批晶圓的差異、晶圓與晶圓間的差異、裸片間的差異,以及裸片上的差異等。
將電路置于最好條件(Best Case)、最壞條件(Worst Case)等多種情況下進行分析,但是對于晶片上的制程變異卻無能為力。因為在最壞條件分析時,靜態(tài)時序分析總是假定一個晶圓上的電路同時都處于最壞情況下,而實際上,同一個晶圓上的電路不可能同時都處于最壞的條件下(這可由分析版圖或者工藝得來)。
在一個芯片上不同位置上畫了兩個完全一樣的MOS管,制造出來后,兩只MOS管的性能很難保證完全一樣。當工藝在90 nm以下時,誤差會高達20%~30%。傳統(tǒng)式的靜態(tài)時序分析是將芯片上所有器件按同一個工藝及工作條件下的時間路徑上的延時加起來,因而傳統(tǒng)式的靜態(tài)時序分析對于延遲的估計過于悲觀。
統(tǒng)計靜態(tài)時序分析的概念
在靜態(tài)時序分析中,信號的到達時間和門延遲都是確定的數值。
在統(tǒng)計靜態(tài)時序分析中,當工藝參數的偏差用隨機變量建模后,作為工藝參數函數的門延遲、互連線延遲和門輸入端信號的到達時間自然也需要用帶有概率分布的隨機變量來描述。
統(tǒng)計靜態(tài)時序分析的步驟
首先,要有用于統(tǒng)計靜態(tài)時序分析的標準單元庫。
通過統(tǒng)計靜態(tài)時序分析,找出合適的時序窗(Timing Window),在此窗中,良率可以達到最高。
總之,統(tǒng)計靜態(tài)時序分析通過對制程變異進行恰當的建模,更好地解決了延遲的不確定性問題,避免了過度的余量,提高了設計的性能及制造的良品率。
審核編輯:劉清
-
觸發(fā)器
+關注
關注
14文章
1996瀏覽量
61052 -
靜態(tài)時序分析
+關注
關注
0文章
28瀏覽量
9572 -
時鐘信號
+關注
關注
4文章
445瀏覽量
28511 -
CLK
+關注
關注
0文章
127瀏覽量
17126 -
時鐘偏斜
+關注
關注
0文章
4瀏覽量
6340
原文標題:來學習下靜態(tài)時序分析
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論