新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于故障注入的基準電路故障響應分析

        基于故障注入的基準電路故障響應分析

        作者:俞振華,江建慧 時間:2008-12-23 來源:現代電子技術 收藏

        1 研究背景

        本文引用地址:http://www.104case.com/article/90421.htm

          隨著半導體器件的尺寸不斷縮小,集成電路(IC)設計的規模越來越大,芯片集成度越來越高,使得芯片測試越來越困難。為了提高集成電路的成品率,研究人員把更多的精力放在芯片的測試技術上,試圖采用更簡便有效的方法測試芯片,并獲得滿足要求的故障覆蓋率。

          覆蓋率的評測方法可以在芯片制造完成后,通過自動測試儀(ATE)獲得芯片的故障覆蓋率。這種方法是一種事后的評估行為,他只能對成品芯片的優劣做出估計,不能對改進芯片設計起到至關重要的作用。

          另一種獲得故障覆蓋率的方法是,設計或測試人員在進行電路功能仿真(前仿真)或電路時序仿真(后仿真)的過程中,對電路注入單故障或多故障,然后在電路存在故障的情況下,模擬電路的行為,確認該故障是否會導致電路產生差錯或失效。對所選定的故障集中的所有故障進行模擬后,就可以獲得電路的故障覆蓋率。對于門級電路,故障注入的位置可以是門電路的輸入或輸出線。這種方法對改進電路設計有直接的效果。

        2 故障與故障注入

          故障覆蓋率是給定測試集所能檢測的給定電路在給定的故障模型下的故障數與電路中含有的故障總數之比。

          比較常見的故障模型有固定型故障和橋接故障,橋接故障會改變電路的拓撲結構,本文主要討論的是固定型故障。固定型故障主要反映電路或系統中某一根信號線上信號的不可控,即系統運行過程中該信號線永遠固定在某一個值上。故障注入是指按照選定的故障模型加于運行特定工作負載的目標系統中,用人工的方法有意識地產生故障并施以加速該系統的錯誤和失效的發生,同時觀測和回收系統對所注入故障的反應信息,并對回收信息進行分析,從而向試驗者提供有關結果的試驗過程。

        3 響應分析程序設計

        3.1 確定型測試

          本程序采用確定型測試,即為被測電路的每個故障產生相應的測試碼,生成一個能測試電路中所有故障的測試碼集合作為測試碼源,無故障電路對應于測試碼中的各個測試的響應值存儲起來作為參考值,如圖1所示??梢圆捎霉降姆椒▽y試碼進行更準確的定義。

          X:被測電路的可控輸入矢量;

          G(X):電路無故障時的可測輸出矢量;

          Gf(x):電路有故障f時的可測輸出矢量;

          測試和測試碼:一個輸入矢量A,滿足G(A)≠Gf(A);

          故障的完全測試集:所有滿足G(A)≠Gf(A)的輸入矢量的集合。

          這里有定理,一個電路中所有的單固定型故障都是可測的,當且僅當該電路是無冗余的。本程序采用最小完全測試集(含有最小測試數的完全測試集)作為測試碼。

        3.2 輸入電路

          選用的輸入為ISCAS85基準電路。他是電子自動化關于IC測試的標準,85指組合電路,89指時序電路。

         

        3.3 注入單故障的分析

          程序共分以下4個重要步驟:

          (1)初始化網表

          首先讀入電路的門級電路的描述的ISCAS85電路網表,對其進行文本修改,將其變成便于程序運行的格式。

          (2)載入測試向量

          測試向量的最小完全測試集存儲在.test為后綴名的文件中,載入后以ver.out為后綴名的文件輸出。

          (3)無故障時電路輸出

          輸入測試向量到注入故障前的電路,得到無故障電路時對于測試向量的正確輸出作為參考值,將結果存儲在fault_free_output.out文件中。以for(p_tr=0;p_tr<TESTS_R;p_tr++)作為第一層循環,依次輸入每個測試向量,在此循環中欠套for(p_no=1;p_no<TOTAL_LINE+1;p_n0++)循環,便利整個網表的每一行,從而得到正確的輸出。便利的過程如下,主要是檢查網表的節點的類型項,對各種門進行響應的操作,逐級向下后便利整個網表,得到正確的輸出。

          (4)故障注入

          首先一個循環是對于整個故障集for(p_f=0;p_f<FAULT_SIZE;p_f++),判斷注入的故障0或是故障1,接著嵌套循環for(p_tr=0;p_tr<TESTS_R;p_tr++),依次在輸入端輸入每個測試向量,然后嵌套循環for(p_no=1;p_no<MAX_LINE;p_no++)遍歷網表,在便利網表之前,根據先前的判斷是故障0或是故障1,將這節點的value固定為0或1即可。

          根據以上結果做統計工作,寫文件fault_list.out和fault_sum.out。寫文件fault_list.out是在每次循環for(p_no=1;p_no<MAX_LINE;p_no++)結束后,寫文件fault_sum.out實在循環for(p_tr=0;p_tr<TESTS_R;p_tr++)結束后。

          根據數據得到程序最后需要的統計結果,即故障響應率。其計算公式為:

          sum of error/(refss*tlotv)

          sum of error是注入單故障之后,對于測試向量集,得到的結果與參考值不同的次數;srefss是simplistically reduced equivalent fault set size的縮寫,即最小等價故障類的大??;tlotv是the length of test vectors的縮寫,即測試向量的個數。

        3.4 注入雙故障的分析

          在進行注入單故障情況下的分析以及得出結果故障響應率(FRF)后,繼續考慮對ISCAS85基準電路注入雙重故障的情況進行研究。

          注入雙故障,基本的思想就是在注入一個單故障的情況下,再注入一個與之不同的故障,其等價效果極為注入雙故障。所以在fault_injection增加1層循環,即:

          for(p_f=0;p_f<FAULT_SIZE;p_f++);

          從而由原先的整個故障集-整個測試向量-遍歷網表每一行的3層嵌套循環,擴展為整個故障集-整個故障集-整個測試向量-遍歷網表每一行的4層循環。當然另外在便利網表時要注入雙重故障,即要判斷此節點是否時注入故障的那2個節點以及注入的是故障0還是故障1,進行響應的操作。

          注入雙故障時的故障響應率(FRF)的計算公式為:

          sum of errot/{[srefss*(srefss-1)]*tlotv}

        4 結 語

          根據各個電路的輸出結果,結合上面的計算參數,就可以得到注入單故障的故障響應率(FRF)。如表2所示。

         

          對于注入單故障的故障響應率(FRF)的分析可以從兩個方面來看:從故障注入的角度,他反映了注入故障之后的電路,對于測試向量的響應情況,故障響應率越高,說明這組測試向量對電路的故障檢測能力越強;但是如果從容錯的角度來看,故障響應率(FRF)越低,說明更多情況下,即使電路中存在故障,也可以得到正確的輸出結果,說明的電路具有比較強的容錯能力。

          同樣,結合注入單故障時的計算參數srefss和tlotv,得到注入雙故障的故障響應率(FRF)。如表3所示。

         

          從此組數據可以看出,注入雙重故障下的故障響應率比注入單故障是的故障響應率有明顯的增大,增加1倍左右。這個結果是可以理解的,從故障響應的角度,一組測試向量在雙故障情況下其故障響應能力明顯提高(因為輸出結果出錯的幾率大大增加);而從容錯的角度來看,電路能夠容納雙故障的能力一定會大大降低,導致故障響應率的提高。

        矢量控制相關文章:矢量控制原理
        網線測試儀相關文章:網線測試儀原理


        關鍵詞: 電路故障

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 安达市| 旅游| 泸西县| 定襄县| 类乌齐县| 宁化县| 西青区| 洛宁县| 榆中县| 都昌县| 枣阳市| 成武县| 岐山县| 合阳县| 普陀区| 南郑县| 贺州市| 鄢陵县| 新巴尔虎左旗| 尼勒克县| 白水县| 泰宁县| 平泉县| 芒康县| 嫩江县| 旬邑县| 望江县| 德昌县| 诸暨市| 祁阳县| 永靖县| 岐山县| 吕梁市| 平湖市| 昆山市| 慈溪市| 沙洋县| 秭归县| 雷山县| 泽普县| 灵台县|