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