1引言
隨著深亞微米VLSI技術(shù)的發(fā)展,大量的不同廠家的電路設(shè)計(jì)或核集成到一個(gè)芯片上。存儲(chǔ)器密度的增長(zhǎng)使存儲(chǔ)器的測(cè)試面臨著更大的挑戰(zhàn)。嵌入式RAM存儲(chǔ)器是最難測(cè)試的電路,因?yàn)榇鎯?chǔ)器的測(cè)試通常需要大量的測(cè)試模式來激活存儲(chǔ)器并將存儲(chǔ)器的單元內(nèi)容讀出來與標(biāo)準(zhǔn)值進(jìn)行比較。在可以接受的測(cè)試費(fèi)用和測(cè)試時(shí)間的限制下,準(zhǔn)確的故障模型和有效的測(cè)試算法是至關(guān)重要的。而為了保證測(cè)試時(shí)間和故障覆蓋率,測(cè)試的好壞大大的依賴于所選的功能故障模型。
以前大部分關(guān)于故障模型的論文都是把故障的敏化固定在最多一個(gè)操作上(如一個(gè)讀或一個(gè)寫),這些功能故障被叫作靜態(tài)功能故障。而基于缺陷注入和SPICE仿真的DRAM的試驗(yàn)分析表明:在沒有靜態(tài)故障的情況下存在另外一種多于一個(gè)操作才能敏化的故障(如一個(gè)連續(xù)的讀和寫操作),即動(dòng)態(tài)故障。大部分的測(cè)試算法主要針對(duì)靜態(tài)故障,對(duì)動(dòng)態(tài)故障的覆蓋率比較低,但動(dòng)態(tài)故障的測(cè)試也是非常重要的。
2、存儲(chǔ)器故障模型
故障模型可以用故障原語(Fault Primitive)來表示。單個(gè)單元故障用符號(hào)S/F/R》表示,兩個(gè)單元耦合故障用符號(hào)Sa;Sv/F/R》表示。S表示單個(gè)單元的敏化操作序列,Sa表示耦合單元的敏化操作序列,Sv表示被耦合單元的敏化操作序列,F(xiàn)表示故障單元的值F {0,1},R表示讀操作的邏輯輸出值R {0,1,-}?!硎緦懖僮骷せ罟收?,沒有輸出值。故障原語可以構(gòu)成一個(gè)驅(qū)動(dòng)所有存儲(chǔ)器功能故障的操作序列的完整集合。
2.1單個(gè)單元靜態(tài)故障
單個(gè)單元靜態(tài)故障有12種可能的故障原語,而這12種故障原語可以看作是一個(gè)六個(gè)功能故障模型的集合,下面是這六種功能故障:1)狀態(tài)故障(State Fault);2)轉(zhuǎn)換故障(Transition Fault);3)寫干擾故障(Write Disturb Fault);4)讀破壞故障(Read Destructive Fault); 5)偽讀破壞故障(Deceptive Read Destructive Fault);6)錯(cuò)誤讀故障(Incorrect Read Fault)。這些故障在文章中有詳細(xì)的解釋。
在文章[3]中提到固定故障(Stuck-at Faults)的故障原語是 /0/-》和 /1/-》,所以固定故障被認(rèn)為是狀態(tài)故障與轉(zhuǎn)換故障的并集。固定開路故障(Stuck Open Fault)是由于斷開的字線引起的,即0w1或1w0的操作是不能完成的,所以可以認(rèn)為是轉(zhuǎn)換故障;另外由于存儲(chǔ)器的讀出依賴于靈敏放大器,可以認(rèn)為是錯(cuò)誤讀故障,所以把固定開路故障認(rèn)為是轉(zhuǎn)變故障和錯(cuò)誤讀故障的并集。
2.2靜態(tài)耦合故障
靜態(tài)耦合故障的故障原語有36種,可以被歸納為以下七種類型的功能故障模型:1)狀態(tài)耦合故障(State Coupling Fault); 2)干擾耦合故障(Disturb Coupling Fault); 3)轉(zhuǎn)換耦合故障(Transition Coupling Fault);4)寫破壞耦合故障(Write Destructive Coupling Fault); 5)讀破壞耦合故障(Read Destructive Coupling Fault);6)偽讀破壞耦合故障(Deceptive Read Destructive Coupling Fault); 7)錯(cuò)誤讀耦合故障(Incorrect Read Coupling Fault)。這些故障在文章[2]中有詳細(xì)的解釋。
2.3單個(gè)單元的動(dòng)態(tài)故障
只考慮S=xWyRz這種情況。單個(gè)單元?jiǎng)討B(tài)故障的故障原語有12種,可以被歸納為以下三種類型的功能故障模型:1)動(dòng)態(tài)的讀破壞故障(Dynamic Read Destructive Fault);2)動(dòng)態(tài)的偽讀破壞故障(Dynamic Deceptive Read Destructive Fault);3)動(dòng)態(tài)的錯(cuò)誤讀故障(Dynamic Incorrect Read Fault)。這些故障在文章中有詳細(xì)的解釋。
2.4動(dòng)態(tài)耦合故障
主要分析兩個(gè)單元的動(dòng)態(tài)耦合故障,它可分為四種類型。只研究其中的兩種(兩個(gè)連續(xù)的操作都應(yīng)用在耦合單元和兩個(gè)連續(xù)的操作都應(yīng)用在被耦合單元)。兩個(gè)單元的動(dòng)態(tài)耦合故障的故障原語有32種,可以被歸納為以下四種類型的功能故障模型:
1)動(dòng)態(tài)干擾耦合故障(Dynamic Disturb Coupling Fault): 耦合單元的連續(xù)的兩個(gè)寫,讀操作使被耦合單元的值發(fā)生跳變。
2)動(dòng)態(tài)的讀破壞耦合故障(Dynamic Read Destructive Coupling Fault):耦合單元的某一特定值使被耦合單元的連續(xù)的兩個(gè)寫,讀操作改變了存儲(chǔ)單元的邏輯值并輸出錯(cuò)誤的值。
3)動(dòng)態(tài)的偽讀破壞耦合故障(Dynamic Deceptive Read Destructive Coupling Fault):耦合單元的某一特定值使被耦合單元的連續(xù)的兩個(gè)寫,讀操作改變了存儲(chǔ)單元的邏輯但輸出正確的值。
4)動(dòng)態(tài)的錯(cuò)誤讀耦合故障(Dynamic Incorrect Read Coupling Fault):耦合單元的某一特定值使被耦合單元的連續(xù)的兩個(gè)寫,讀操作返回錯(cuò)誤的值但存儲(chǔ)單元的值沒有發(fā)生改變。
3、存儲(chǔ)器測(cè)試
在文章[2]中提到的March SS算法如圖1所示,它被認(rèn)為能測(cè)出上面所提到的所有的靜態(tài)簡(jiǎn)化故障。在文章[3]中把固定開路故障認(rèn)為是轉(zhuǎn)換故障和錯(cuò)誤讀故障的并集,但是由于固定開路故障的敏化必須使上次讀的值與本次所期望讀的值反向,所以對(duì)它的測(cè)試的算法是不同于錯(cuò)誤讀故障的算法。通過對(duì)圖1所示March SS算法的分析可以很容易的發(fā)現(xiàn)它不能測(cè)出固定開路故障,只須在它的四個(gè)元素M1,M2,M3,M4中任意一個(gè)元素的最后一個(gè)寫操作的后面增加一個(gè)讀操作就能測(cè)出固定開路故障(如在元素M1的w1最后面加一個(gè)r1)。為了規(guī)則性,可以在M1,M2,M3,M4四個(gè)元素的后面都增加一個(gè)讀操作,得到March SS’算法,其算法如圖2所示。
增加的讀操作只會(huì)影響由這個(gè)讀操作所敏化的故障的檢測(cè)。而對(duì)于其它的靜態(tài)故障的檢測(cè),由于增加的讀操作并不影響存儲(chǔ)器單元的內(nèi)容,所以也不會(huì)影響這些故障的覆蓋率。在這些由讀操作所引起的故障中,除偽讀破壞故障和偽讀破壞耦合故障以外的其它故障是由一個(gè)讀操作敏化并且檢測(cè)的,所以該算法只會(huì)增加不會(huì)減少對(duì)這些故障的覆蓋率。最后對(duì)于偽讀破壞故障和偽讀破壞耦合故障,用March SS’算法的測(cè)試如表1中的(a)和(b)所示。其中“v》a”表示被耦合單元的地址高于耦合單元的地址,“va”表示被耦合單元的地址低于耦合單元的地址,“,”表示故障能被多個(gè)元素敏化和檢測(cè),“/”的左邊表示敏化右邊表示檢測(cè)。從以上可以得出該算法可以測(cè)出所有的靜態(tài)故障。
表1. (a)March SS’算法對(duì)偽讀破壞故障的覆蓋率,(b) March SS’算法對(duì)偽讀破壞耦合故障的覆蓋率
算法March SS’中的M1,M2,M3,M4四個(gè)元素的第二個(gè)讀操作主要是為了檢測(cè)由第一個(gè)讀操作敏化的偽讀破壞故障和偽讀破壞耦合故障,而對(duì)其它的故障的檢測(cè)沒有任何貢獻(xiàn),所以去掉這些讀操作并不影響對(duì)這兩個(gè)故障之外的故障的檢測(cè)。從表1的(a)和(b)可以看出,如果沒有這四個(gè)讀操作同樣能測(cè)出偽讀破壞故障和偽讀破壞耦合故障。因此可以去掉March SS’算法中M1,M2,M3,M4四個(gè)元素的第二個(gè)讀操作,得到一個(gè)如圖3所示的改進(jìn)的算法-March SSE算法。該算法同樣能測(cè)出所有的上述的靜態(tài)故障,另外還能測(cè)出固定開路這個(gè)不能被March SS測(cè)出的靜態(tài)故障。故障覆蓋率得到了提高。
下面分別來看March SS算法和March SSE算法對(duì)動(dòng)態(tài)故障的測(cè)試情況,對(duì)單個(gè)單元的動(dòng)態(tài)故障的測(cè)試如表2所示,表格的第三列所對(duì)應(yīng)的是March SS對(duì)單個(gè)單元的動(dòng)態(tài)故障的測(cè)試情況,第四列是March SSE對(duì)單個(gè)單元的動(dòng)態(tài)故障的測(cè)試情況??梢钥闯鯩arch SS算法只能測(cè)出其中1/3的故障,而March SSE能夠測(cè)出5/6的故障。
表2. March SS和March SSE對(duì)單個(gè)單元的動(dòng)態(tài)故障的覆蓋率
對(duì)于多個(gè)單元的動(dòng)態(tài)耦合故障,以兩個(gè)單元的為例。表3顯示了兩種算法對(duì)動(dòng)態(tài)干擾耦合故障(dCFds)和動(dòng)態(tài)偽讀破壞耦合故障(dCFdrd)兩種動(dòng)態(tài)耦合故障的敏化和檢測(cè)情況。而另外兩種動(dòng)態(tài)耦合故障動(dòng)態(tài)讀破壞耦合故障(dCFrd)和動(dòng)態(tài)錯(cuò)誤讀耦合故障(dCFir)同理很容易被證明可以全部被March SSE算法測(cè)試,而March SS只能測(cè)出其中一半的故障。對(duì)兩個(gè)單元的動(dòng)態(tài)耦合故障的總體來講,March SS算法只能測(cè)出其中3/8的故障,而March SSE卻能測(cè)出7/8的故障。因此對(duì)動(dòng)態(tài)故障的故障覆蓋率有了大幅度的提高。
表3. March SS和March SSE對(duì)兩個(gè)單元的動(dòng)態(tài)耦合故障的覆蓋率
4、結(jié)論
本文通過對(duì)嵌入式存儲(chǔ)器的幾種不同的類型的動(dòng)態(tài)和靜態(tài)簡(jiǎn)化功能故障的分析,在原有的主要用來測(cè)試靜態(tài)故障的March SS算法的基礎(chǔ)上提出了March SSE算法。該算法長(zhǎng)度為22N , N為存儲(chǔ)器的字的個(gè)數(shù),其中每個(gè)字包含一位。與March SS算法相比較,March SSE算法在測(cè)試長(zhǎng)度不變的情況下,其故障覆蓋率有了大幅度的提高。不但能測(cè)出March SS算法所測(cè)試的全部的功能故障,而且還能檢測(cè)出March SS算法所遺漏的固定開路故障,以及85%以上的第2節(jié)所描述的動(dòng)態(tài)故障,故障覆蓋率得到了大幅度地提高。
本文作者創(chuàng)新點(diǎn):本文在March SS算法的基礎(chǔ)提出了一種改進(jìn)的隨機(jī)存取存儲(chǔ)器的測(cè)試算法-March SSE算法,該算法在測(cè)試長(zhǎng)度不變的情況下,不但能檢測(cè)出原算法所能檢測(cè)的所有故障,而且還能測(cè)出原算法不能檢測(cè)出的固定開路故障,以及85%以上的由連續(xù)的寫、讀兩個(gè)操作敏化的動(dòng)態(tài)故障。該算法在測(cè)試長(zhǎng)度不變的情況下大大地提高了故障覆蓋率。
責(zé)任編輯:gt
-
嵌入式
+關(guān)注
關(guān)注
5087文章
19158瀏覽量
306446 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7521瀏覽量
164087 -
RAM
+關(guān)注
關(guān)注
8文章
1369瀏覽量
114821
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論