新型的嵌入式存儲(chǔ)器測(cè)試算法
摘要:針對(duì)目前嵌入式存儲(chǔ)器測(cè)試算法的測(cè)試效率與故障覆蓋率難以兼得的現(xiàn)狀,提出了兼顧二者的測(cè)試算法。實(shí)驗(yàn)結(jié)果表明該算法最適合對(duì)存儲(chǔ)器進(jìn)行大批量的測(cè)試。在測(cè)試效率上的優(yōu)勢(shì)很明顯,故障覆蓋率也能達(dá)到應(yīng)用標(biāo)準(zhǔn)。
關(guān)鍵詞:存儲(chǔ)器測(cè)試;嵌入式存儲(chǔ)器;故障覆蓋率;外圍互連線
引言
隨著微電子產(chǎn)業(yè)日新月異的發(fā)展,IC設(shè)計(jì)的規(guī)模與集成度越來越大。SoC是現(xiàn)階段IC設(shè)計(jì)的標(biāo)準(zhǔn)結(jié)構(gòu)之一,通常由CPU核、存儲(chǔ)器、邏輯電路、各種外設(shè)及接口組成,而存儲(chǔ)器通常占據(jù)芯片的絕大部分。常用的嵌入式存儲(chǔ)器有ROM、Flash、SRAM、DRAM等。典型的存儲(chǔ)器的基本結(jié)構(gòu)如圖1所示,存儲(chǔ)器主要由地址線、數(shù)據(jù)線、控制線、地址譯碼器、存儲(chǔ)單元陣列、輸入/輸出電路、讀出放大器、寫驅(qū)動(dòng)電路等部分組成。
嵌入式存儲(chǔ)器的測(cè)試主要分為3類:
①直流參數(shù)測(cè)試(DC Parameter Testing)——校驗(yàn)工作電流、電平、功率、扇出能力、漏電流等參數(shù)特性。
②交流參數(shù)測(cè)試(AC Parameter Testing)——檢測(cè)建立時(shí)間、保持時(shí)間、訪問時(shí)間等時(shí)間參數(shù)特性。
③功能測(cè)試(Functional Testing)——測(cè)試存儲(chǔ)器件的邏輯功能是否正常,對(duì)存儲(chǔ)單元、讀出放大器、寫驅(qū)動(dòng)等產(chǎn)生的物理故障進(jìn)行檢測(cè)。
本文主要討論第3類中嵌入式存儲(chǔ)器的功能測(cè)試。
1 采用的方法
現(xiàn)有的嵌入式存儲(chǔ)器測(cè)試算法都是直接對(duì)存儲(chǔ)器內(nèi)部單元直接測(cè)試,所用的算法在測(cè)試復(fù)雜度和故障覆蓋率之問難以找到一個(gè)平衡點(diǎn)。本文介紹的方法采用外圍互連線測(cè)試和內(nèi)部單元結(jié)合的測(cè)試算法,摒棄了以往只是測(cè)試內(nèi)部單元的算法,提高了測(cè)試效率,故障覆蓋率也有所提升。
外圍互連線測(cè)試:假設(shè)存儲(chǔ)器本身功能正常,控制線也總是可控的,故障只是由于器件裝配引起的,需要對(duì)存儲(chǔ)器的地址線和數(shù)據(jù)線可能的短路和開路故障進(jìn)行測(cè)試。
內(nèi)部單元測(cè)試:對(duì)存儲(chǔ)器的譯碼、讀寫等功能進(jìn)行測(cè)試。
兩種測(cè)試的目的不一樣。內(nèi)部單元測(cè)試的目的在于判斷內(nèi)存單元的好壞,所以在程序設(shè)計(jì)中只要發(fā)現(xiàn)故障就可以終止退出,同時(shí)報(bào)告發(fā)生故障的內(nèi)存單元;外圍互連測(cè)試的目的不僅僅在于發(fā)現(xiàn)故障,而且還要求能對(duì)故障進(jìn)行精確定位。所以在算法設(shè)計(jì)中需要將這兩步測(cè)試過程按順序執(zhí)行完畢。
2 嵌入式存儲(chǔ)器測(cè)試的故障模型
對(duì)故障機(jī)理進(jìn)行分析,建立相應(yīng)的故障模型是產(chǎn)生算法的前提。
2.1 外圍互連線測(cè)試的故障模型
對(duì)于外圍互連線,本文采用的是固定故障模型,固定故障也是存儲(chǔ)器外嗣互連線的主要故障。固定故障模型包括固定邏輯故障、固定開路故障和橋接短路故障。固定邏輯故障是指由于物理缺陷,數(shù)據(jù)線或者地址線的狀態(tài)不受輸入的控制,綁定到邏輯O或者1狀態(tài),包括S-A-1(Stuck-at-1)和S-A-0(stuck-at-0)故障。而在外圍互連線測(cè)試中,固定開路故障和橋接短路故障往往可以等價(jià)于S-A-0或S-A-1的固定邏輯故障,在此不作贅述。[!--empirenews.page--]
2.2 內(nèi)部單元測(cè)試的故障模型
對(duì)于內(nèi)部單元,除了上文提到的類似的固定邏輯故障和固定開路故障模型,還有狀態(tài)轉(zhuǎn)換故障(transition fault)、數(shù)據(jù)保持故障(data-maintaining fault)、狀態(tài)耦合故障(coupiing fault)和多重寫入故障(multiple access fault)等。
狀態(tài)轉(zhuǎn)換故障:0→1或1→0的狀態(tài)轉(zhuǎn)換至少有一個(gè)不被正確執(zhí)行。
數(shù)據(jù)保持故障:存儲(chǔ)單元無法保持一個(gè)邏輯值持續(xù)一定的時(shí)間。
狀態(tài)耦合故障:當(dāng)且僅當(dāng)單元j處于某一個(gè)特定狀態(tài)y(y∈{0,1})時(shí),單元i總是為某一個(gè)確定值x(x∈{0,1}),則稱單元i耦合于單元j。耦合關(guān)系不一定具有對(duì)稱性,也就是說單元i耦合于單元j,并不一定單元j也耦合于單元i。
多重寫入故障:對(duì)單元i寫入x(x∈{0,1})導(dǎo)致單元j也寫入了x,則稱單元i有多重寫入故障。多重寫入故障不一定具有對(duì)稱性。
3 存儲(chǔ)器的測(cè)試算法
目前存儲(chǔ)器的測(cè)試算法中比較著名的有March算法及其各種變種算法、Gallop算法,這些算法太過復(fù)雜,測(cè)試效率不高。本文所提出的算法不僅故障覆蓋率能夠達(dá)到實(shí)際應(yīng)用標(biāo)準(zhǔn),而且測(cè)試效率有明顯提高。
3.1 外圍互連線的測(cè)試算法
存儲(chǔ)器外圍互連線包括控制線、數(shù)據(jù)線和地址線。對(duì)于控制線的測(cè)試沒有比較規(guī)范的測(cè)試方法,但是如果控制線存在故障,存儲(chǔ)器基本無法正常工作。一般而言,控制線的故障在對(duì)數(shù)據(jù)線和地址線的簡(jiǎn)單測(cè)試中就能被發(fā)現(xiàn),所以不作專門測(cè)試。
數(shù)據(jù)線和地址線的測(cè)試的目的不只是發(fā)現(xiàn)故障,更主要的是精確定位故障以便很容易地進(jìn)行修復(fù)或更換。采用“三步法”,該算法不僅能夠精確地定位故障,而且還能區(qū)分固定邏輯故障和橋接短路故障這兩種不同類型,具體算法如表1所列。
第一步測(cè)試數(shù)據(jù)線是否存在開路故障和固定邏輯故障,第二步測(cè)試數(shù)據(jù)線是否存在短路故障,第三步測(cè)試地址線是否存在開路或短路故障。在第二步測(cè)試結(jié)束時(shí)進(jìn)行數(shù)據(jù)線故障診斷,在第三步測(cè)試結(jié)束時(shí)進(jìn)行地址線故障診斷。[!--empirenews.page--]
3.2 內(nèi)部存儲(chǔ)單元測(cè)試算法
內(nèi)部單元的測(cè)試算法有Checkboard測(cè)試、MSCAN算法、March算法、GALPAT、跨步法等算法,本文對(duì)內(nèi)部存儲(chǔ)器單元進(jìn)行測(cè)試,采用如圖2所示的棋盤和跨步相結(jié)合的算法,在檢測(cè)數(shù)據(jù)單元時(shí)采用棋盤圖形,在檢測(cè)地址譯碼時(shí)采用跨步圖形,將棋盤測(cè)試法和跨步法各自的優(yōu)點(diǎn)合二為一。
4 測(cè)試結(jié)果
將本文所涉及的算法進(jìn)行測(cè)試效率與故障覆蓋率的分析,并將結(jié)果進(jìn)行比較,如表2所列。其中d為地址線數(shù)目,n為數(shù)據(jù)線數(shù)目,M為待測(cè)存儲(chǔ)器空間大小,一般M=2d。從表中可以看出這些算法的測(cè)試效率比典型的March算法效率高很多,三步法的測(cè)試復(fù)雜度只有4(n+d+1),棋盤跨步相結(jié)合的算法的測(cè)試復(fù)雜度也有5M,在故障覆蓋率也滿足應(yīng)用要求,完全可以為實(shí)際項(xiàng)目所采用。