热门问题
时间线
聊天
视角

統計靜態時序分析

来自维基百科,自由的百科全书

Remove ads

傳統的靜態時序分析(Static Timing Analysis,STA)長期以來是數字電路設計中的常用分析算法。但半導體器件與互連的變異性增加,帶來若干傳統(確定性)STA無法處理的問題。由此催生了大量關於統計靜態時序分析Statistical Static Timing AnalysisSSTA)的研究。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英語Altos Design Automation的Variety工具。

批評

對SSTA的若干批評包括:

  • 過於複雜,尤其在面對真實的非高斯分布時。
  • 難以與優化流程或算法耦合。
  • 難以獲取算法所需的數據。即便能獲得,這些數據也可能隨時間變化,因此不可靠。
  • 若晶圓廠的客戶認真採用SSTA,會限制製造廠改變工藝統計特性時的自由度。
  • 相較於同時考慮靈敏度和相關性的增強型確定性STA,其收益相對較小。[3]

執行靜態時序分析的工具

現場可編程邏輯門陣列

特定應用積體電路

相關

參考

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads