差異在於「由誰產生測試圖樣、由誰判定結果」。ATPG 是將 EDA 工具事先產生的圖樣由測試機灌入,與期望值的比對也在測試機端進行。BIST 則是把圖樣產生電路與判定電路做進晶片內部,由晶片自己執行測試,只回傳合格與否。ATPG 的優勢在於高涵蓋率與詳細的故障診斷,BIST 的優勢則在於對測試機依賴低、能以實速運作,以及出貨後的自我診斷。
主要差異
| 比較項目 | ATPG(外部圖樣) | BIST(自我測試) |
|---|---|---|
| 圖樣產生 | 由 EDA 工具事先產生 | 由晶片內部電路即時產生(LFSR 等) |
| 合格判定 | 由測試機與期望值比對 | 在晶片內部壓縮與比對(特徵值比對) |
| 對測試機的要求 | 需要大容量記憶體與多接腳 | 只需啟動與讀出結果(低成本測試機即可) |
| 測試資料量 | 多(以壓縮技術削減) | 極少 |
| 故障涵蓋率 | 高(能確實偵測鎖定的故障) | 依賴隨機圖樣,容易有漏網之魚 |
| 故障診斷 | 擅長(以掃描診斷鎖定位置) | 不擅長(只有合格與否,位置資訊少) |
| 面積額外負擔 | 掃描鏈的部分(相對較小) | 多出產生與判定電路的部分,較大 |
| 出貨後的利用 | 不可(需要測試機) | 可以(可用於開機時的自我診斷) |
記憶體用 BIST、邏輯用 ATPG 的分工
記憶體結構規則,可用 March 圖樣之類的演算法進行全面測試。在內部產生圖樣很容易,而且位元數龐大,從外部灌入全部資料並不實際,因此記憶體 BIST(MBIST)實質上是標準做法。另一方面,隨機邏輯結構不規則,隨機圖樣難以偵測的故障會殘留下來,因此會使用能確實鎖定目標故障的 ATPG 圖樣搭配掃描鏈。這種分工是現代 SoC 之 DFT 架構的基本形。
測試成本的結構不同
ATPG 的圖樣數越多,測試機的記憶體用量與測試時間就越多,會長時間占用高階測試機。緩解這點的是測試壓縮,藉由壓縮外部資料再於內部展開,可將資料量削減1個數量級以上。相對地,BIST 的測試機只需送出啟動訊號並讀取結果,因此便宜的測試機也能執行,測試時間也較短。不過,它是以面積額外負擔的形式預先支付了矽成本。
出貨後能否使用
BIST 不可忽視的優點,是不只在製造時,在現場也能執行。若作為通電時的自我診斷內建,就能因應車用與工業設備所要求的運作中故障偵測(如 ISO 26262 這類功能安全要求)。ATPG 圖樣沒有測試機就無法執行,因此無法用於這種用途。這就是安全相關系統重視 BIST 的原因。