STA靜態(tài)時序分析(Static Timing Analysis)
STA功能
(1) 靜態(tài)時序分析是一種驗證數(shù)字集成電路時序是否合格的驗證方法;
(2) 靜態(tài)時序分析的前提是同步邏輯設(shè)計(重要!),不能分析異步電路;
(3) 靜態(tài)時序分析工具計算路徑延遲的總和,并比較相對于預定義時鐘的延遲;
(4) 靜態(tài)時序分析僅關(guān)注時序間的相對關(guān)系,而不是評估邏輯功能;
(5) 靜態(tài)時序分析對所有的時序路徑進行錯誤分析,不需要使用測試向量激活某個路徑(與時序仿真的不同點),分析速度比時序仿真工具快幾個數(shù)量級,克服了動態(tài)時序驗證的缺陷,適合大規(guī)模的電路設(shè)計驗證,在同步邏輯情況下,能夠達到100%的時序路徑覆蓋;
(6) 靜態(tài)時序分析的目的是找到隱藏的時序問題,根據(jù)時序分析結(jié)果優(yōu)化邏輯或者約束條件,使設(shè)計達到時序閉合(Timing Closure);
(7) 靜態(tài)時序分析能夠識別的時序故障:建立時間(Setup)/保持時間(Hold)/恢復時間(Recovery)/移除時間(Removal)檢查;最小跳變和最大跳變;時鐘脈沖寬度、時鐘畸變(Skew、Jitter);總線競爭;不受約束的邏輯通道;關(guān)鍵路徑;約束沖突等;
STA :時序路徑覆蓋率 100%,窮盡所有時序路徑,驗證時序;
形式驗證:驗證功能;
參考:
數(shù)字IC前端設(shè)計流程及工具【RTL設(shè)計+功能仿真】【綜合】【DFT】【形式驗證】【STA靜態(tài)時序分析】
STA分析內(nèi)容
靜態(tài)時序分析STA:
(1)setup time
建立時間:時鐘有效沿到來之前,數(shù)據(jù)必須保持穩(wěn)定的最短時間,對應的是數(shù)據(jù)路徑的最大延時;
與寄存器的時鐘有關(guān)。
(2)hold time
保持時間:時鐘有效沿到來之后,數(shù)據(jù)必須保持穩(wěn)定的最短時間,對應的是數(shù)據(jù)路徑的最小延時;
與寄存器的時鐘有關(guān)。
------------------- 分割線 ----------------------------------
建立時間或者保持時間不滿足導致數(shù)據(jù)采樣出錯,亞穩(wěn)態(tài) 現(xiàn)象。
--------------------------------------------------------------
(3)recovery time
復位的恢復時間:時鐘有效沿來臨之前,異步復位已經(jīng)撤銷的最小時間(復位已經(jīng)無效的最小時間,對應于數(shù)據(jù)的恢復);
即在時鐘有效沿來臨之前,復位就要撤銷,數(shù)據(jù)就要開始恢復的正常狀態(tài)的時間。
與寄存器的復位有關(guān)。
(4)removal time
復位的移除時間:時鐘有效沿來臨之后,異步復位需要保持有效的最小時間,類似時鐘的 hold。
(5)STA 的時序路徑
STA 四種時序路徑:
路徑1:輸入端口到寄存器的數(shù)據(jù)輸入 D,
路徑2:內(nèi)部寄存器的時鐘輸入端到下一個寄存器的數(shù)據(jù)輸入 D,
路徑3:內(nèi)部寄存器的時鐘輸入端到輸出端口;
路徑4:輸入端口到輸出端口。
每條時序路徑包含 1 個起點和 1 個終點,
起點只能是設(shè)計的基本輸入端口或內(nèi)部寄存器的時鐘輸入端,
終點只能是內(nèi)部寄存器的數(shù)據(jù)輸入端或設(shè)計的基本輸出端口。
對于路徑 3,分析根據(jù)寄存器的 Tco 延遲和組合路徑延遲等分析 setup 和 hold 是否滿足。
對于路徑 1 和 3,可以加入 input delay 和 output delay 來分析,來滿足寄存器的建立/保持時間要求。
系統(tǒng)函數(shù)進行時序檢查:
參考:
Verilog中用于時序驗證的系統(tǒng)任務(wù)[setup][hold][skew][width][recovery][removal]
(1)setup 建立時間檢查
$setup(data, posedge clk, tSU);
(2)hold 保持時間檢查
$hold(posedge clk, data, tHLD);
(3)setuphold 建立/保持時間檢查
$setuphold(posedge clk, data, tSU, tHLD);
(4)recovery 復位信號的恢復時間檢查
$recovery(posedge rst, posedge clk, 3);
(5)removal 復位信號的移除時間檢查
$removal(posedge rst, posedge clk, 3);
(6)recrem 復位信號的恢復/移除時間檢查
$recrem(posedge rst, posedge clk, recovery_limit, removal_limit);
聯(lián)系客服