猜測估算法是否足以取得失效模式分佈?

英文原文:Is A Guestimate Good Enough For Obtaining Failure Mode Distribution?

2022年2月8日於《Semiconductor Engineering》刊登

減少執行功能安全分析時的主觀性和錯誤。

汽車應用中 SoC 必須滿足 ISO 26262 所述的特定安全和品質標準,而定量的安全分析方法需要執行失效模式效應和診斷分析 (Failure Mode Effects and Diagnostic Analysis, FMEDA)。FMEDA 是一種系統性的定量分析技術,可以取得子系統/產品等級的故障率、失效模式,並具備系統故障診斷的功能。在眾多技術中, FMEDA對於設計中的元件考量的是每一個元件的失效模式和每一個元件失效模式對於產品功能的影響;而這些故障會以失效模式分佈 (Failure Mode Distribution; FMD) 來進行測量。

FMEDA 中的 FMD 通常是一個估計值,這對於車輛安全完整性等級(Automotive Safety Integrity Level; ASIL)的 A/B 等級來說是可以接受的,但 ISO 26262 規定必須對追溯性進行量化分析,尤其是針對 ASIL的C/D 等級。

定性方法的限制

失效模式分佈 (FMD) 指的是設計中一個區塊內可能導致故障的面積百分比。

當一個硬體子部件(subpart)存在多種故障模式時,就有必要找出哪種故障模式在分佈中的佔比多少。在 FMEDA 中填入 FMD 資料的方法有很多,其中有些是定性方法,例如:

  • 線性縮放:在硬體子部件中,所有故障模式的分佈均相等。舉例來說,如果在硬體子部件中有 5 種故障模式,則每個模式各佔 20%。此方法的優點在於它簡單快速,但它不能反映實際分佈的狀況,因為某些故障模式的佔比可能會比其他模式高。
  • 工程判斷:這是比較好一點的方法,讓邏輯電路工程師透過其專業知識和判斷來提供分佈,由工程師提供各種故障模式的分佈。

在硬體子部件中,所有故障模式的佔比後加總會達到 100%,而工程師必須為每一個硬體子部件中的所有故障模式算出類似的分佈。這種定性結果有其限制,包括:

  • 主觀且可能不完整
  • 如果故障模式跨越到非設計人員所擁有的子階層結構,結果就有可能不準確
  • 不準確的數值可能會導致產品 ASIL 分級不準確,尤其在 ASIL-D 等級
  • 沒有其他可追蹤的證據可以證明 FMEDA 如何決定分佈,因此難以向安全評估人員證明其數值的合理性 (ISO 26262 特別注重可追蹤的證據)
  • 當設計師離開組織時,大部分原設計的相關知識也會遺失
  • 由於沒有其他替代方法,因此目前只能按照現有做法來執行人工 FMD,以模擬暫態故障分析(transient fault analysis)中的軟性誤差(soft error)機率。在理想情況下,該分析應根據每個失效模式中的觸發器(flops)故障發生機率來完成

雖然在 ASIL-B 等級下,安全評估人員仍然可以接受定性分析的結果,但其可信度並不高。

以工具為基礎的自動化流程優勢

自動化方法可以突破定性方法的限制。自動化工具可以透過靜態結構分析自動取得實際的設計資料,並對故障模式分佈進行定量分析。此方法的關鍵,在於找出符合故障模式的正確邏輯單元。

這種方法需指定一個受不同失效模式影響的輸出點作為觀測點,然後對該點進行邏輯電路各個節點的反向追溯 (logic back-tracing),直至其輸入點。這個過程包括寄存器、輸出/輸入接口及不同的邏輯階層。邏輯追溯的結果會形成該故障模式的下降漏斗 (Cone of Influence; COI)圓錐,一旦定義出圓錐的範圍後,就能找出存在於其中的單元。將漏斗內單元的面積加總,可以得到該圓錐的面積。接著,以該圓錐面積進行相對比較,就能得出該硬體子部件的 FMD。

圖 1:下降漏斗範例

相較於以非基於工具為基礎的手動下降漏斗(COI)確認流程,此方法具有以下優勢:

  • 準確且符合現實
  • 減少工程判斷的主觀性
  • 減少誤差
  • 工具能完成大部分的工作,因此分析結果的周轉速度很快
  • 適用於準確的永久和暫態 FMD 資料

FMD 的準確度會影響到整體 SPFM/LFM 分數和 ASIL 評分等級,在較低的 ASIL C/D 等級尤其如此。在 ASIL-C/D 等級中,具備分析證據的定量結果是必要的。

TestMAX FuSa 中的 FMD 分析

新思科技 TestMAX FuSa 利用靜態分析法來準確計算某個設計或其中一部分的 FMD。

針對 FMD 分析,使用者可以為特定的故障模式指定觀察點。此工具會追溯邏輯電路,一路到設計輸入端,通過時序停止點(timing stop point)諸如觸發器、連接埠和子階層結構 (如果存在的話) 等,以劃出下降漏斗 (COI)。COI 中所有單元的面積總和,便是該故障模式的面積佔比。接下來,該數值便會相對分佈到各個失效模式中。

分析完成後,會產生 FMD,做為暫態或永久錯誤之失效模式觀察點的COI。TestMAX FuSa 還能回報基於邏輯閘或面積的 COI 指標。

基於邏輯閘的方法會以邏輯閘的數量來計算 COI 指標,適用於 RTL 設計。不過,缺乏面積資訊的網表(netlist) 設計也可以使用這個方法。

基於面積的方法則使用單元面積來計算 COI 指標,適用於 Liberty 文件 (.lib) 中包含面積資訊的網表設計。

圖 2:使用靜態分析和可觀測性運算從觀測點反向傳播

圖 3:TestMAX FuSa 回報基於邏輯閘或面積的 COI 指標

總而言之,透過以自動化工具為基礎的方法,使用 新思科技 TestMAX FuSa來取得 FMD,可以節省時間、減少主觀性、減少錯誤,並提供可追蹤的資料報告。