热门问题
时间线
聊天
视角
統計靜態時序分析
来自维基百科,自由的百科全书
Remove ads
傳統的靜態時序分析(Static Timing Analysis,STA)長期以來是數字電路設計中的常用分析算法。但半導體器件與互連的變異性增加,帶來若干傳統(確定性)STA無法處理的問題。由此催生了大量關於統計靜態時序分析(Statistical Static Timing Analysis,SSTA)的研究。SSTA用概率分布替代門與互連的確定性時延,輸出的是電路可能結果的分布,而非單一結果。
與傳統STA的比較
確定性STA之所以被廣泛採用,有其合理性:
- 不需要向量,因此不會漏掉路徑。
- 基本算法的運行時間隨電路規模線性增長。
- 結果保守(保守估計)。
- 通常使用相對簡單的庫(例如延遲與輸出斜率作為輸入斜率及輸出負載的函數)。
- 易於擴展為增量式以便用於優化。
但STA也有若干局限:
- 不易處理片內相關性,尤其包含空間相關性時更難。
- 需要許多「工藝角」(corners)來覆蓋所有可能情況。
- 當存在較大隨機變異時,為始終保持保守性,結果會過於悲觀,影響產品競爭力。
- 為解決相關性問題所做的修改(如CPPR,Common Path Pessimism Removal)會使基本算法變得非線性或失去增量性,或兩者兼具。
SSTA直接或間接地針對這些限制展開。首先,SSTA使用靈敏度(sensitivities)來發現時延之間的相關性。然後在統計分布相加時利用這些相關性。
從技術上講,並無理由不能通過在每個值上保存靈敏度向量將確定性STA擴展為處理相關性與靈敏度的算法。歷史上看來,這對傳統STA是較大的負擔,而對SSTA則顯得必需,因此更早被接受。下文在對SSTA的批評中提到過提出此替代方案的觀點。
Remove ads
方法
SSTA算法主要分為兩類:基於路徑的方法與基於塊的方法。
基於路徑的方法[1]將特定路徑上的門和線延遲相加。統計計算較簡單,但需在運行分析前識別出感興趣的路徑。若遺漏了其他相關路徑,則可能影響結果,因此路徑選擇很重要。
基於塊的方法[2]從時鐘元件向前(到達時間)和向後(要求時間)在每個節點生成時間值。其優點是完整性高,無需路徑選擇。最大的問題是需要一種在考慮相關性的情況下計算統計最大值(或最小值)的運算,這在技術上很困難。
目前已有用於SSTA的單元表徵工具,例如Altos Design Automation的Variety工具。
批評
對SSTA的若干批評包括:
- 過於複雜,尤其在面對真實的非高斯分布時。
- 難以與優化流程或算法耦合。
- 難以獲取算法所需的數據。即便能獲得,這些數據也可能隨時間變化,因此不可靠。
- 若晶圓廠的客戶認真採用SSTA,會限制製造廠改變工藝統計特性時的自由度。
- 相較於同時考慮靈敏度和相關性的增強型確定性STA,其收益相對較小。[3]
執行靜態時序分析的工具
- Altera Quartus II
- 賽靈思ISE
- Synopsys Primetime(Synopsys PrimeTime)
- Cadence Encounter計時系統(Cadence Tempus)
- IBM EinsTimer
- ANSYS Path FX(ANSYS Path FX)
相關
參考
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads