基于故障注入的基準(zhǔn)電路故障響應(yīng)分析
1 研究背景
本文引用地址:http://2s4d.com/article/90421.htm隨著半導(dǎo)體器件的尺寸不斷縮小,集成電路(IC)設(shè)計的規(guī)模越來越大,芯片集成度越來越高,使得芯片測試越來越困難。為了提高集成電路的成品率,研究人員把更多的精力放在芯片的測試技術(shù)上,試圖采用更簡便有效的方法測試芯片,并獲得滿足要求的故障覆蓋率。
電路故障覆蓋率的評測方法可以在芯片制造完成后,通過自動測試儀(ATE)獲得芯片的故障覆蓋率。這種方法是一種事后的評估行為,他只能對成品芯片的優(yōu)劣做出估計,不能對改進(jìn)芯片設(shè)計起到至關(guān)重要的作用。
另一種獲得故障覆蓋率的方法是,設(shè)計或測試人員在進(jìn)行電路功能仿真(前仿真)或電路時序仿真(后仿真)的過程中,對電路注入單故障或多故障,然后在電路存在故障的情況下,模擬電路的行為,確認(rèn)該故障是否會導(dǎo)致電路產(chǎn)生差錯或失效。對所選定的故障集中的所有故障進(jìn)行模擬后,就可以獲得電路的故障覆蓋率。對于門級電路,故障注入的位置可以是門電路的輸入或輸出線。這種方法對改進(jìn)電路設(shè)計有直接的效果。
2 故障與故障注入
故障覆蓋率是給定測試集所能檢測的給定電路在給定的故障模型下的故障數(shù)與電路中含有的故障總數(shù)之比。
比較常見的故障模型有固定型故障和橋接故障,橋接故障會改變電路的拓?fù)浣Y(jié)構(gòu),本文主要討論的是固定型故障。固定型故障主要反映電路或系統(tǒng)中某一根信號線上信號的不可控,即系統(tǒng)運(yùn)行過程中該信號線永遠(yuǎn)固定在某一個值上。故障注入是指按照選定的故障模型加于運(yùn)行特定工作負(fù)載的目標(biāo)系統(tǒng)中,用人工的方法有意識地產(chǎn)生故障并施以加速該系統(tǒng)的錯誤和失效的發(fā)生,同時觀測和回收系統(tǒng)對所注入故障的反應(yīng)信息,并對回收信息進(jìn)行分析,從而向試驗者提供有關(guān)結(jié)果的試驗過程。
3 電路故障響應(yīng)分析程序設(shè)計
3.1 確定型測試
本程序采用確定型測試,即為被測電路的每個故障產(chǎn)生相應(yīng)的測試碼,生成一個能測試電路中所有故障的測試碼集合作為測試碼源,無故障電路對應(yīng)于測試碼中的各個測試的響應(yīng)值存儲起來作為參考值,如圖1所示??梢圆捎霉降姆椒▽y試碼進(jìn)行更準(zhǔn)確的定義。
X:被測電路的可控輸入矢量;
G(X):電路無故障時的可測輸出矢量;
Gf(x):電路有故障f時的可測輸出矢量;
測試和測試碼:一個輸入矢量A,滿足G(A)≠Gf(A);
故障的完全測試集:所有滿足G(A)≠Gf(A)的輸入矢量的集合。
這里有定理,一個電路中所有的單固定型故障都是可測的,當(dāng)且僅當(dāng)該電路是無冗余的。本程序采用最小完全測試集(含有最小測試數(shù)的完全測試集)作為測試碼。
3.2 輸入電路
選用的輸入為ISCAS85基準(zhǔn)電路。他是電子自動化關(guān)于IC測試的標(biāo)準(zhǔn),85指組合電路,89指時序電路。
3.3 注入單故障的分析
程序共分以下4個重要步驟:
(1)初始化網(wǎng)表
首先讀入電路的門級電路的描述的ISCAS85電路網(wǎng)表,對其進(jìn)行文本修改,將其變成便于程序運(yùn)行的格式。
(2)載入測試向量
測試向量的最小完全測試集存儲在.test為后綴名的文件中,載入后以ver.out為后綴名的文件輸出。
(3)無故障時電路輸出
輸入測試向量到注入故障前的電路,得到無故障電路時對于測試向量的正確輸出作為參考值,將結(jié)果存儲在fault_free_output.out文件中。以for(p_tr=0;p_tr<TESTS_R;p_tr++)作為第一層循環(huán),依次輸入每個測試向量,在此循環(huán)中欠套for(p_no=1;p_no<TOTAL_LINE+1;p_n0++)循環(huán),便利整個網(wǎng)表的每一行,從而得到正確的輸出。便利的過程如下,主要是檢查網(wǎng)表的節(jié)點的類型項,對各種門進(jìn)行響應(yīng)的操作,逐級向下后便利整個網(wǎng)表,得到正確的輸出。
(4)故障注入
首先一個循環(huán)是對于整個故障集for(p_f=0;p_f<FAULT_SIZE;p_f++),判斷注入的故障0或是故障1,接著嵌套循環(huán)for(p_tr=0;p_tr<TESTS_R;p_tr++),依次在輸入端輸入每個測試向量,然后嵌套循環(huán)for(p_no=1;p_no<MAX_LINE;p_no++)遍歷網(wǎng)表,在便利網(wǎng)表之前,根據(jù)先前的判斷是故障0或是故障1,將這節(jié)點的value固定為0或1即可。
根據(jù)以上結(jié)果做統(tǒng)計工作,寫文件fault_list.out和fault_sum.out。寫文件fault_list.out是在每次循環(huán)for(p_no=1;p_no<MAX_LINE;p_no++)結(jié)束后,寫文件fault_sum.out實在循環(huán)for(p_tr=0;p_tr<TESTS_R;p_tr++)結(jié)束后。
根據(jù)數(shù)據(jù)得到程序最后需要的統(tǒng)計結(jié)果,即故障響應(yīng)率。其計算公式為:
sum of error/(refss*tlotv)
sum of error是注入單故障之后,對于測試向量集,得到的結(jié)果與參考值不同的次數(shù);srefss是simplistically reduced equivalent fault set size的縮寫,即最小等價故障類的大小;tlotv是the length of test vectors的縮寫,即測試向量的個數(shù)。
3.4 注入雙故障的分析
在進(jìn)行注入單故障情況下的分析以及得出結(jié)果故障響應(yīng)率(FRF)后,繼續(xù)考慮對ISCAS85基準(zhǔn)電路注入雙重故障的情況進(jìn)行研究。
注入雙故障,基本的思想就是在注入一個單故障的情況下,再注入一個與之不同的故障,其等價效果極為注入雙故障。所以在fault_injection增加1層循環(huán),即:
for(p_f=0;p_f<FAULT_SIZE;p_f++);
從而由原先的整個故障集-整個測試向量-遍歷網(wǎng)表每一行的3層嵌套循環(huán),擴(kuò)展為整個故障集-整個故障集-整個測試向量-遍歷網(wǎng)表每一行的4層循環(huán)。當(dāng)然另外在便利網(wǎng)表時要注入雙重故障,即要判斷此節(jié)點是否時注入故障的那2個節(jié)點以及注入的是故障0還是故障1,進(jìn)行響應(yīng)的操作。
注入雙故障時的故障響應(yīng)率(FRF)的計算公式為:
sum of errot/{[srefss*(srefss-1)]*tlotv}
4 結(jié) 語
根據(jù)各個電路的輸出結(jié)果,結(jié)合上面的計算參數(shù),就可以得到注入單故障的故障響應(yīng)率(FRF)。如表2所示。
對于注入單故障的故障響應(yīng)率(FRF)的分析可以從兩個方面來看:從故障注入的角度,他反映了注入故障之后的電路,對于測試向量的響應(yīng)情況,故障響應(yīng)率越高,說明這組測試向量對電路的故障檢測能力越強(qiáng);但是如果從容錯的角度來看,故障響應(yīng)率(FRF)越低,說明更多情況下,即使電路中存在故障,也可以得到正確的輸出結(jié)果,說明的電路具有比較強(qiáng)的容錯能力。
同樣,結(jié)合注入單故障時的計算參數(shù)srefss和tlotv,得到注入雙故障的故障響應(yīng)率(FRF)。如表3所示。
從此組數(shù)據(jù)可以看出,注入雙重故障下的故障響應(yīng)率比注入單故障是的故障響應(yīng)率有明顯的增大,增加1倍左右。這個結(jié)果是可以理解的,從故障響應(yīng)的角度,一組測試向量在雙故障情況下其故障響應(yīng)能力明顯提高(因為輸出結(jié)果出錯的幾率大大增加);而從容錯的角度來看,電路能夠容納雙故障的能力一定會大大降低,導(dǎo)致故障響應(yīng)率的提高。
矢量控制相關(guān)文章:矢量控制原理 網(wǎng)線測試儀相關(guān)文章:網(wǎng)線測試儀原理
評論