999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于March C-算法的單片機存儲器測試

2010-04-12 00:00:00于文考
現代電子技術 2010年6期

摘 要:為了保證單片機系統的可靠性,對單片機內嵌存儲器的測試顯得尤為重要。根據MCS-51系列單片機系統內嵌存儲器的結構特點和故障模型,研究了測試算法的選擇、數據背景的產生等問題,首次提出將March C-算法用于單片機內嵌存儲器的用戶級測試程序編寫。該測試程序對SAF,TF,AF,CF的故障覆蓋率可達到100%,并且能夠檢測部分NPSF故障,具有較高的故障覆蓋率,適合于對用戶級MCS-51系列單片機存儲器的測試。

關鍵詞:單片機;March C-算法;存儲器測試;故障覆蓋率

中圖分類號:TP333文獻標識碼:B

文章編號:1004-373X(2010)06-019-03

Test of Single Chip Microcomputer′s Memory Based on March C- Algorithm

YU Wenkao,GAO Cheng,ZHANG Dong

(Beihang University,Beijing,100191,China)

Abstract:In order to ensure thereliability of single chip microcomputer system,test of the single chip microcomputer embedded memory is particularly important.In accordance with characteristics and fault model of MCS-51 embedded memory,selection of the test algorithm and the data background are researched,and the test program which based on March C- algorithm for MCS-51 single chip microcomputer embedded memory for the first time in user-level is presented.The test program can reach all of the SAF,TF,AF,CF failure and some of NPSF failure,has a high fault coverage,suitable for test of MCS-51 single chip microcomputer embedded memory in user-level.

Keywords:single chip microcomputer;March C- algorithm;memory test;fault coverage

0 引 言

存儲器是單片機系統中的重要組成部分,其功能的正確性直接影響到單片機的可靠性。因此,為了保證單片機系統的可靠性,對單片機內嵌存儲器的功能測試尤為重要。針對單片機內嵌存儲器的結構特點,在詳細分析嵌入式存儲器故障模型的基礎上,合理選擇測試算法和數據背景,采用面向位與面向字節相結合的March C-算法,實現了基于March C-算法的單片機內嵌存儲器測試。

1 存儲器的故障模型

文獻[1]介紹了存儲器的五種故障模型,分別是:

(1) 固定故障(Stuck-At Fault,SAF)

存儲器的某個單元或某條線固定為邏輯0或者邏輯1不變。

(2) 狀態轉換故障(Transition Fault,TF)

固定故障中的一個特殊情況,指某個單元或某條線在經過一個寫操作以后不能實現0到1或者1到0的轉換,分別為上升狀態轉換故障和下降狀態轉換故障。

(3) 耦合故障(Coupling Fault,CF)

指在兩個單元當中,由于一個單元的狀態轉換而致使另外一個單元的內容發生了變化。耦合故障可具體分為翻轉耦合故障、冪耦合故障、動態耦合故障、橋聯故障及狀態耦合故障五種。翻轉耦合故障(Inversion Coupling Fault)是指一個單元中上升沿跳變或下降沿跳變會引起另一個單元內容的翻轉;冪耦合故障(Idempotent Coupling Fault)指一個單元中上升沿跳變或下降沿跳變會迫使另一個單元內容置0或置1;動態耦合故障(Dynamic Coupling Fault)冪耦合故障中的一種特殊情況,指當一個單元發生讀或寫操作后,迫使另一個單元的內容為0或1;橋聯故障(Bridging Fault,BF)由兩個或多個單元或線短路所引起的,分為與橋聯故障和或橋聯故障。與橋聯故障的邏輯值是兩個橋聯單元邏輯值的與,或橋聯故障情況亦然;狀態耦合故障(State Coupling Fault)指當一個單元處于某個狀態值時,另一個耦合單元被置0或1。

(4) 圖形敏感故障(Pattern Sensitive Fault,PSF)

指一種特殊的狀態耦合故障。圖形敏感故障意味著在部分存儲器出現一些特定的數據時,其他部分存儲器的數據會受到影響。它可能是一種動態(由于數據的改變)或者靜態(由于固定的數據)的故障類型,也可能是一種全局的或者只局限于附近單元的故障類型。

(5) 尋址故障(Address decoder Fault,AF)

行或列譯碼器可能訪問不到尋址單元;或者多個地址訪問同一個存儲單元;或者一個地址同時訪問多個單元;或者不訪問所指定的單元而訪問其他單元[2]。

此外,存儲器的故障模型還有開路故障[3](Stuck-at Fault,SAF)、維持故障[4](Retention Fault,RF)和相鄰模式敏感故障[5] (Neighborhood Patter Sensitive Fault,NPSF)等。

2 嵌入式存儲器的測試方法

嵌入式存儲器的測試方法有以下三種:

2.1 存儲器直接存取測試

存儲器直接存取測試是產生一種測試結構來允許對嵌入式存儲器陣列的直接訪問。它通常利用自動測試設備進行測試,可以從封裝引腳直接對嵌入式存儲器進行訪問,或者可以從封裝引腳對測試狀態邏輯以及對一些為存儲器提供數據的流水線結構中串行狀態進行訪問,能夠輕易實現多種高質量測試算法。其缺點是:在ATE機上實現的算法越復雜,對ATE機存儲器的容量要求越高;在 ATE機上不易實現對嵌入式存儲器的“全速”測試,測試時鐘的工作頻率越高,測試成本越高;由于芯片外圍管腳的限制,則對芯片內大容量嵌入式存儲器進行直接測試往往不大現實。

2.2 利用嵌入微處理器來間接測試存儲器

在這種測試方法中,通過嵌入式微處理器對存儲器進行讀/寫操作,測試向量是一系列微處理器的程序代碼。這些代碼可以放在程序存儲器中,在嵌入式芯片接口處施加代碼,測試存儲器的過程就是微處理器執行測試程序的過程。其優點是不需要對設計硬件做任何修改,而且測試算法的修改與實現可以通過靈活修改微處理器代碼予以完成。

2.3 存儲器內建自測試(MBIST)

這種方法的基本思想是由電路自己生成測試向量,而不是要求外部施加測試向量,它依靠自身邏輯來判斷所得測試結果是否是正確的,這樣就大大降低了對測試設備的要求。MBIST技術主要應用于存儲器的可測性設計中。

本文研究的是單片機內嵌的存儲器測試方法,由于待測存儲器的硬件無法更改,且外界測試環境無法通過器件引腳直接訪問內嵌存儲器,因此只有利用內嵌的微處理器來測試存儲器才是切實可行的。

3 March C-算法

March算法是比較流行的存儲器測試方法[8],提出后進行過多次改進,出現了很多變種,如MATS,MATS+,March X,March C,March C-等算法[9]。March算法是由March元素構成的序列,其基本思想是反復對每一個地址進行讀/寫0或1操作,保證每兩個字節之間的測試碼出現00,01,10,11四種情況,至少各一次,并且為了檢查高低地址讀/寫順序故障,分別進行地址遞增和地址遞減兩種操作。

在諸多的March算法中,綜合考慮算法的故障覆蓋率及測試成本等因素,本文選用能夠有效檢測大多數存儲器簡化故障的Match C-算法。March C-算法的具體描述如下:

{ (w0);(r0,w1);(r1,w0);

M0M1M2

(r0,w1);(r1,w0); (r0)}

M3M4M5

其中:表示地址升序;表示地址降序; 表示任意地址順序;w0表示寫入數據背景;w1表示寫入一個相反的數據背景;r0和r1分別表示讀出并驗證一個數據背景和一個相反的數據背景;M0~M5分別表示一個March單元。March C-算法能夠有效檢測出SAF,TF,CF,AF等故障[1]。其中,SAF故障可由M0,M1單元和M1,M2單元檢測出;TF故障中0→1故障可由M3,M4單元檢測出,1→0故障可由M2,M3單元檢測出;CFin故障中1→0故障可由M2,M3單元和M4,M5單元檢測出,0→1故障可由M1,M2單元和M3,M4單元檢測出;CFid故障中置1故障可由M2,M3單元和M4,M5單元檢測出,置0故障可由M1,M2單元和M2,M3單元檢測出;AF故障可以在March單元的連續升序/降序中得到檢測。

存儲器分為面向字(Word-oriented)的存儲器和面向位(Bit-oriented)的存儲器,這是根據存儲器的讀/寫方式來分的。面向字的存儲器是以字(Word)為單位進行讀/寫的,面向位的存儲器是以位(Bit)為單位進行讀/寫的。由于單片機內嵌存儲器既可以進行按位讀寫操作(地址為20H~2FH),也可以進行按字節讀寫操作,所以在測試時,采用了面向位與面向字節相結合的March C-算法進行。

對于多位的SRAM,耦合故障可能發生在屬于不同地址的單元之間,也可能發生在同一個地址的單元之間。前一種情況稱為字間耦合故障,后一種情況稱為字內耦合故障,這兩種故障同時存在[10]。在將面向位的March C-算法擴展成面向字的March C-算法時,為了能夠檢測到字內耦合故障,通常的做法是增加數據背景。最常見的增加數據背景是DB和DBbar,DBbar是DB按位取反的結果。DB中連續0和連續1的個數從1到W/2(W為字寬)遞增,直到滿足數據背景K的個數為止。對于字寬為W的存儲器,要完成該類測試,至少需要K個數據背景,其中:

K=(log2 W)+1

對于每種數據背景,都要執行一遍測試算法。MCS-51系列單片機的存儲器字寬為8 b,在面向字的March C-算法中使用的數據背景如表1所示。

表1 測試8位存儲器的數據背景

序號DBDBbar

10000000011111111

20101010110101010

30011001111001100

40000111111110000

面向字的March C-算法描述如下:

{ w(DB1);

(r(DB1),w(DBbar1));(r(DBbar1),w(DB1));

(r(DB1),w(DBbar1));(r(DBbar1),w(DB1));

(r(DB1),w(DB2));

(r(DB2),w(DBbar2));(r(DBbar2),w(DB2));

(r(DB2),w(DBbar2));(r(DBbar2),w(DB2));

(r(DB2),w(DB3));

(r(DB3),w(DBbar3));(r(DBbar3),w(DB3));

(r(DB3),w(DBbar3));(r(DBbar3),w(DB3));

(r(DB3),w(DB4));

(r(DB4),w(DBbar4));(r(DBbar4),w(DB4));

(r(DB4),w(DBbar4));(r(DBbar4),w(DB4));

r(DB4)}

在編寫測試程序時,共使用了讀、寫和比較三種指令,將讀取的數據與正確值相比較,若不同,則表示存儲器出現故障,同時由單片機輸出特定的報警信號。首先使用面向位的March C-算法對地址區20H~2FH內的單元進行測試,所用指令為位尋址指令。接下來使用面向字的March C-算法對整個RAM區域進行測試;根據不同地址區間的特點,首先通過寄存器尋址指令來完成地址00H~1FH區間RAM單元的測試;通用寄存器R0~R7所對應的物理地址由程序狀態字PSW控制。然后對地址20H~7FH區間的RAM單元,使用直接尋址指令來進行測試。

下面給出使用MCS-51系列單片機匯編語言編寫的程序片段。該片段功能是對地址20H~7FH區間的RAM單元進行測試。該程序片段如下:

MOV R0,#20H;將初始地址賦給R0

MOV B,#60H ;設置循環次數

LOOP1: MOV @R0,#DB;寫數據背景DB

INC R0;地址遞增

DJNZ B,LOOP1

MOV R0,#20H;將初始地址賦給R0

MOV B,#60H ;設置循環次數

LOOP2: CJNE @R0,#DB,ERROR

;讀出并比較存儲內容DB

MOV @R0,#DBbar

;寫入數據背景DBbar

INC R0;地址遞增

DJNZ B,LOOP2

MOV R0,#20H;將初始地址賦給R0

MOV B,#60H ;設置循環次數

LOOP3: CJNE @R0,#DBbar,ERROR

;讀出并比較存儲內容DBbar

MOV @R0,#DB;寫數據背景DB

INC R0;地址遞增

DJNZ B,LOOP3

MOV R0,#7FH;將初始地址賦給R0

MOV B,#60H ;設置循環次數

LOOP4: CJNE @R0,#DB,ERROR

;讀出并比較存儲內容DB

MOV @R0,#DBbar

;寫入數據背景DBbar

DEC R0;地址遞減

DJNZ B,LOOP4

MOV R0,#7FH;將初始地址賦給R0

MOV B,#60H ;設置循環次數

LOOP5: CJNE @R0,#DBbar,ERROR

;讀出并比較存儲內容DBbar

MOV @R0,#DB;寫數據背景DB

DEC R0;地址遞減

DJNZ B,LOOP5

MOV R0,#20H;將初始地址賦給R0

MOV B,#60H ;設置循環次數

LOOP6: CJNE @R0,#DB,ERROR

INC R0;地址遞增

DJNZ B,LOOP6

ERROR:…;輸出錯誤信息

SJMP

4 結 語

這里將March C-算法用于單片機系統內嵌存儲器的測試,實現了用戶級測試程序的開發。該測試程序對SAF,TF,AF,CF的故障覆蓋率可達到100%,并且能夠檢測部分NPSF故障,同時測試時間僅為10 ns,具有很好的故障覆蓋率和測試效率,現已實際應用于單片機系統的故障檢測,從而有效地保證了單片機系統的質量及可靠性。

參考文獻

[1]孫華義,鄭學仁,閭曉晨,等.嵌入式存儲器內建自測試的一種新型應用[J].中國集成電路,2007,16(11):1-5.

[2]唐濤,許邦建.基于March算法的嵌入式存儲器BIST技術[J].計算機研究與發展,2007,44(Z1):17-21.

[3]王麗,施玉霞,王友仁.一種嵌入式存儲器內建自測試電路設計[J].計算機測量與控制,2008,16(5):624-626.

[4]林曉偉,鄭學仁,劉漢華,等.嵌入式存儲器的內建自測試算法及測試驗證[J].中國集成電路,2006,15(2):77-80.

[5]Chrisarithopoulos A,Haniotakis T,Tsiatouhas Y.New Test Pattern Generation Units for NPSF Oriented Memory Built-in Self Test.The 8th IEEE International Conference[C].2001,2:749-752.

[6]陸思安,何樂年,沈海濱,等.嵌入式存儲器內建自測試的原理及實現[J].固體電子學研究與進展,2004,24(2):205-208.

[7]檀彥卓,徐勇軍,韓銀和,等.面向存儲器核的內建自測試[J].計算機工程與科學,2005,27(4):40-43.

[8]李金鳳,曹順,汪瀅.嵌入式存儲器測試方法研究[J].計量與測試技術,2004(12):12-14.

[9]宋毅,陽輝,方葛豐,等.嵌入式存儲器內建自測試方法[J].微計算機信息,2008,24(11):263-265.

[10]須自明,蘇彥鵬,于宗光.基于March C-算法的SRAM BIST電路的設計[J].集成電路設計與開發,2007,32(3):245-247.

主站蜘蛛池模板: 激情综合网址| 中文字幕丝袜一区二区| 久久精品人人做人人综合试看| 亚洲精品国产首次亮相| 福利片91| 香蕉久人久人青草青草| 亚洲欧洲日韩久久狠狠爱| 欧美精品在线免费| 嫩草在线视频| 国产成人高精品免费视频| 一本久道久久综合多人| 色有码无码视频| 日韩AV无码免费一二三区| 国产成人午夜福利免费无码r| 99久久亚洲综合精品TS| 亚洲国产91人成在线| 亚洲娇小与黑人巨大交| 无码aaa视频| 91久久青青草原精品国产| 亚洲狼网站狼狼鲁亚洲下载| 欧美在线伊人| 网友自拍视频精品区| 又粗又硬又大又爽免费视频播放| 亚洲香蕉在线| 女人18一级毛片免费观看| 国产欧美日韩综合在线第一| aⅴ免费在线观看| 亚洲九九视频| 一级毛片基地| 精品国产女同疯狂摩擦2| 欧美在线导航| 亚洲天堂网在线视频| 日本五区在线不卡精品| 亚洲男人天堂网址| 不卡无码h在线观看| 亚洲国产成人精品无码区性色| 97av视频在线观看| 日本成人不卡视频| 亚洲无卡视频| 2048国产精品原创综合在线| 麻豆国产精品一二三在线观看| 四虎影院国产| 国产在线91在线电影| 精品天海翼一区二区| 亚洲人成人无码www| 女人爽到高潮免费视频大全| 亚洲精品爱草草视频在线| 亚洲日本韩在线观看| 中文字幕1区2区| 五月婷婷中文字幕| 国产亚洲现在一区二区中文| 婷婷六月激情综合一区| 日本在线国产| 亚洲成a人片在线观看88| 国产精品毛片一区| 国产欧美自拍视频| 五月天在线网站| 丁香婷婷久久| 亚洲人成色77777在线观看| 青青久久91| 国产成人精品男人的天堂下载| 久热这里只有精品6| www精品久久| 国产精品午夜福利麻豆| 91精品伊人久久大香线蕉| 国模视频一区二区| 99热亚洲精品6码| 国产乱人伦偷精品视频AAA| 99免费在线观看视频| 在线看免费无码av天堂的| 久久久久人妻精品一区三寸蜜桃| 色老二精品视频在线观看| 色噜噜中文网| 久久影院一区二区h| 国产三区二区| 国产成人a毛片在线| 中国一级特黄大片在线观看| 小蝌蚪亚洲精品国产| 国内精品久久久久鸭| 国产第一福利影院| 在线观看免费AV网| 婷婷六月综合网|