自動測試圖樣生成

自動測試圖樣生成ATPG, Automatic Test Pattern Generation)係指電子元件測試方法中嘅一個環節,即針對啲元件嘅邏輯電路結構生成輸入圖樣、等最終好檢得到啲元件嘅內部錯誤。

模型同簡化原理

編輯

電路模型

編輯

一塊芯片嘅邏輯電路可以好複雜,不過佢都可以睇做係由啲基本模型鬭埋而成嘅,譬如話組合邏輯電路同埋序向邏輯電路。前者係一種邏輯電路、之佢穩態輸出衹跟佢嗰陣時得到嘅輸入相關。後者就係輸出唔單止跟嗰陣嘅輸入、仲跟上一陣嘅輸入有關。照慣例,輸入通常表示為x,輸出通常表示為y,內部信號通常表示為z,貯存器通常表示為s。

故障類型

編輯
内文:故障模型

對於系統、特別係電路系統佢啲結構或者操作產生嘅故障,大體上可以分成以下幾種:

  • kak1定故障(Stuck-at fault):啲信號硞定喺邏輯「0」、邏輯「1」或者高阻態嘅故障。種故障都係ATPG常用嘅模擬故障類型、之攞嚟模擬實際生產中嘅芯片故障噶。具體個信號硞定喺乜嘢二進制可以用「信號/0」或者「信號/1」表示。以輸入x0為例,佢硞定喺0、1就分別表示成x0/0、x0/1。
  • 晶體管故障:類似硞定故障,晶體管都可能硞定喺通態(短路)或者喺斷態(唔傳電)。
  • 橋接故障:兩條信號路之間短路就喊做橋接故障。一般嚟講,橋接故障都用開/邏輯嚟表示。對於一條路嘅驅動主導另一條嘅情況,就用到主導與/或邏輯,即係主導信號路維持自己啲信號、而捱主導嘅信號路嘅輸出就係主導路同自己兩家輸出嘅與/或邏輯結果。特殊情況下,假如條路橋接到VDD抑或係VSS嗰陣時,佢就相當於硞定故障(見故障㘝疊)。
  • 開路故障
  • 延遲故障:隻信號係啱邏輯嘅,但係就係慢過或者快過正常信號。

簡化

編輯

對於一隻有n個輸入、m個輸出嘅組合邏輯電路嚟講,要逐個逐個測啲接腳有冇出錯需要2n次測試;而對於仲帶埋s個貯存器嘅序向邏輯電路嚟講,s相當於下一次嘅輸入,總共就要到2n+s次測試。所以精簡啲測試數目落嚟就好有必要。簡化之前,需要定義幾樣嘢:

  • 測試xν:一項測試即係一條代表輸入x0到xmax取乜具體值嘅矢量。例如對於二進制三輸入x0、x1、x2系統,佢其中一項測試x2就可以寫成x2=[x2,x1,x0]T=[0,1,0]T
  • 故障組Fν:由一項測試xν測得出嘅所有故障佮成嘅一組,一般作為行
  • 測試組Tμ:由測得出某個故障fμ嘅所有測試佮成嘅一組,一般作為迾
  • 測試集Tc:測得澌啲故障嘅測試組。使最少測試嘅測試集就係最細測試集Tcmin
  • 故障覆蓋:有幾多比例嘅故障可以喺一摣故障組當中揾到(百分百陣時即所有故障都揾得到,即冇一迾測試組係空寥嘅,即冇故障捱略過)
  • 等價故障:有啲故障fμ、fκ,佢哋無論喺乜嘢測試條件xν下啲輸出yi都一樣,即 ,其中yμ、yκ分別代表有故障fμ、fκ陣時嘅輸出
  • 主導故障:對於故障fμ、fκ,所有測得到fμ嘅測試都測得到fκ,即使佢哋唔係等價故障都好
  • 主導故障組FiD:對於所有測試xν,滿足 ;即Fi冇辦法任意其他故障組Fν包含到,即Fi係啲唔可以由佢哋代表到嘅各條最大組
  • 主導測試xνD:某個故障fμ衹能由佢測到
  • 主導測試組TjD:對於所有故障fμ,滿足 ;即Tj冇辦法任意其他測試組Tμ包含到,即Tj係啲唔可以由佢哋代表到嘅各條最細組

㘝疊

編輯

為唨達到使最少嘅測試可以覆蓋澌啲故障邇個目標,跟尾就要進行jaap3疊(collapsing),其中分為故障㘝疊同埋測試㘝疊。故障㘝疊即係保留啲等價故障之一、保留啲主導測試同埋主導測試組對應嘅故障,剔除其他故障,嚟減少要測嘅故障數;測試㘝疊即係保留啲主導故障組對應嘅測試,剔除其他測試,嚟儘量使到最少測試數。

Boolean導數法

編輯

作為生成測試圖樣嘅基本方法,Boolean導數法係早時應用喺非自動化計算輸入矢量嘅,但係佢並唔適用喺電腦自動化上邊。

Boolean導數嘅定義係噉:

 

代表z取唔同值陣時y對應嘅輸出是否有差。

以z/1,即z硞定喺1做例,成個方法嘅主要過程係:

  • 計出中間變量z同埋輸入x對應輸出y嘅函數式: 
  • 通過導數嘅公式計出個Boolean導數: 
  • 計出 (輸出有差同埋z反而取0)對應嘅輸入x0,x1……方程
  • 寫出各種可能嘅輸入矢量 嘅具體值,其中x0,x1……可以係0,1抑或X(是但)

D演算法

編輯

D演算法係第一種實質上可以應用喺電腦自動化嘅測試圖樣生成演算法。佢係通過引入一個D標記嚟同時標明某個輸入x嘅正常情況/故障情況,再按照D標記同01嘅運算規則嚟引導至輸出y。對於x嚟講, 對應嘅係「正常情況下1/故障情況下0」,而 就反之。

D標記滿足以下公式:

  
噉就可以在序向邏輯電路入便將輸入嘅 遞到輸出作為 一係 輸出(睇在中間有幾多非門)。

具體過程有:

故障厏定Fehlerbelegung):揀取要檢測嘅信號同埋佢上高厏定嘅故障類型( 定係 ),噉樣做下游就體現為 / 信號、上游就體現為對應嘅正常信號;

致敏Sensibilisierung):每當 / 信號遇上與或邏輯門嗰陣時,通過  公式嚟決定另一條路上嘅信號、嚟保證佢傳得到下游;

藴涵Implikation):根據邏輯門真值表計算上下游信號真值;

可選分配Optionale Zuweisung):計算  藴涵情況嗰陣時,  取值會有多種組合,要列澌啲組合出嚟,並根據佢哋列出輸入向量表。若果組合嘅信號仲會藴涵到其他信號,就要從中揀取啲真值組合出嚟、啲唔會同啲經已藴涵過、致敏過嘅信號真值有衝突嘅,再根據佢哋列出輸入向量表。

睇埋

編輯