新聞中心

EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 單向雙端口SRAM的測試算法

單向雙端口SRAM的測試算法

作者: 時間:2007-10-19 來源:網(wǎng)絡(luò) 收藏
引 言

單向雙端口SRAM是一種專用的器,它具有獨(dú)立的寫總線和讀總線,不僅可以實(shí)現(xiàn)單端口的讀寫,還可以對不同單元進(jìn)行同時讀寫操作,提高了SRAM的性能。本文分析了單向雙端口SRAM的失效模式,并描述了相應(yīng)的基于字的算法。

器模型

圖1表示了3×3的單向雙端口SRAM模塊的結(jié)構(gòu)示意圖,輸入為讀地址總線、寫地址總線和輸入數(shù)據(jù)總線,輸出為輸出數(shù)據(jù)總線。每一個存儲單元都有四個端口,分別是數(shù)據(jù)寫入(BW),數(shù)據(jù)讀出(BR),寫地址端口(WA)和讀地址端口(RA)。在這種結(jié)構(gòu)中,同一列單元的數(shù)據(jù)寫入端和讀出端連到總線上,輸出采用了線與的方式。對于字長大于1的存儲器來說,讀地址和寫地址一次選中一行,一行中所有的存儲單元 組成字,讀寫都是基于字的操作。由于讀寫總線分離,可以通過讀地址和寫地址選中不同的字,實(shí)現(xiàn)同時讀寫。

失效模型

存儲器的失效表現(xiàn)為單元不能被正確地寫入和讀出,失效模型表示引起失效的原因。設(shè)計(jì)不當(dāng)、制造工藝引入的缺陷和硅片上的點(diǎn)缺陷都會引起存儲器的失效。失效使電路的結(jié)構(gòu)發(fā)生變化,通過模擬分析出電路失效行為,上升到功能級,總結(jié)出功能失效模型。單向雙端口SRAM的失效模型可以分為單元失效,單元耦合失效,地址失效,同時讀寫失效和復(fù)合失效。

單個存儲單元失效

固定0/1失效(SAF),單元存儲值固定為0/1。固定開路失效(SOF),單元不能被讀寫,由于輸出線與,讀出數(shù)據(jù)為固定值。轉(zhuǎn)換失效(TF),單元存儲值不能由0 變?yōu)?,或由1變?yōu)?。

存儲單元間的失效

對一個單元的讀寫操作改變了另一單元存儲值,稱為耦合失效(CF),兩個單元分別被稱為耦合單元和被耦合單元。相鄰單元,同一行和同一列單元更易于發(fā)生耦合失效。由于讀寫是基于字的操作,耦合失效又可以分為字間耦合失效和字內(nèi)耦合失效。

地址失效

地址失效(AF)包括了四種情況:1. 對某一地址,沒有單元被存取;2. 對某一單元,沒有地址可以對其存??;3. 對某一地址,多個單元被同時存??;4. 對某一單元,同時被多個地址存取。由這四種失效子模式組合引起的失效可以等效成固定0/1

失效和單元耦合失效。

同時讀寫失效

由于同時讀寫操作的相互影響,導(dǎo)致寫入或讀出錯誤的值而引起的失效。

復(fù)合失效

多個耦合失效,或耦合失效和地址譯碼失效復(fù)合在一起。復(fù)合失效可以相互掩蓋而可能通過,必須合理地選擇測試算法,以小的測試復(fù)雜度,達(dá)到大的失效覆蓋率。

單向雙端口SRAM的算法

目前對存儲器的檢測算法主要基于功能級的失效模型,測試算法必須滿足失效發(fā)生的條件,通過寫入或讀出測試向量激活失效,并通過讀操作檢測出來。當(dāng)讀出值與預(yù)期值不同時,可以判定存儲器失效。

隊(duì)列測試方法具有測試時間短、結(jié)構(gòu)簡單、易于用自檢測電路實(shí)現(xiàn)而被普遍采用。它包含了一組測試元素,時間復(fù)雜度為O (n),n表示存儲單元的容量。以MATS+法為例,表示方法為{ (Write0)m1;( read0,Write1)m2;( read1,Write0)m3},包括了3組測試元素M1、M2、M3,其中T ( read1,Write0)表示以地址遞減的順序?qū)γ恳粋€單元進(jìn)行讀1和寫0操作,總的時間復(fù)雜度為5n。

由于讀寫操作都是基于字的,因此采用基于字的檢測方法,把失效檢測劃分成三部分,字間失效檢測、字內(nèi)失效檢測和同時讀寫失效檢 測。下面以3位字長的單向雙端口存儲器為例來說明測試算法。

字間失效檢測

字間檢測采用傳統(tǒng)的隊(duì)列測試算法,March C+算法覆蓋了固定0/1失效,固定開路失效和轉(zhuǎn)換失效,地址失效和字間耦合失效,基于字的MarchC+算法表示為:


時間復(fù)雜度為14B,B為存儲器字的容量。

字內(nèi)失效檢測

字內(nèi)檢測針對字內(nèi)各存儲位之間的耦合失效,考慮字內(nèi)任意一位會受到兩側(cè)相鄰位的耦合,可以構(gòu)造出圖2中的狀態(tài)圖。圖2覆蓋了所有的狀態(tài)和相鄰位之間的耦合失效,圓圈表示相鄰三位的狀態(tài),連線上的符號表示由狀態(tài)轉(zhuǎn)換引起的失效類型,以〈W1,W1:↓〉為例,表示了對兩側(cè)相鄰位寫入1時置中間位為0,則時寫入111并讀出可以檢測這一失效。因此,對相鄰三位執(zhí)行下列操作序列,

Write000,Write111,read111,read111,Write000,read000,read000,
Write001,Write110,read110,read110,Write001,read001,read001,
Write010,Write101,read101,read101,Write010,read010,read010,
Write011,Write100,read100,read100,Write011,read011,read011,

可以檢測出相鄰位之間的耦合失效。在測試序列中包括了兩次連續(xù)的讀出,第一次讀出檢測由前一次寫操作引起的失效,第二次讀出檢測由第一次讀出引起的失效。

將上述的檢測序列轉(zhuǎn)化成隊(duì)列測試的形式,得到如下的結(jié)果:

時間復(fù)雜度為35B,B為存儲器字的容量。字內(nèi)失效檢測算法和字間失效檢測算法包含了相同的測試元素,因此對兩種算法進(jìn)行合并,在失效覆蓋率相同的情況下,減小測試的時間復(fù)雜度。可以得到如下結(jié)果:

時間復(fù)雜度為41B,B為存儲器字的容量。

同時讀寫失效檢測

單向雙端口存儲器允許同時讀寫不同單元。假定這種失效模型僅僅在相鄰的字間發(fā)生,檢測同時讀寫失效的測試算法為:

表示對當(dāng)前地址寫入111,同時對下一地址讀出000。通過對相鄰單元分別寫入和讀出,判定這種操作方式是否會引起失效。時間復(fù)雜度為10B,B為存儲器字的容量。

與傳統(tǒng)測試算法的比較

以上以3位字長為例,介紹了單向雙端口存儲器的檢測方法,包括了字間失效的檢測、字內(nèi)失效的檢測和同時讀寫失效的檢測,總的時間復(fù)雜 度為51B。對于由任意位組成的字,可以對上述算法中的3位測試向量拓展成相應(yīng)字長的測試向量,測試的時間復(fù)雜度不變。上述算法中對字間失效和字內(nèi)失效的測試時間復(fù)雜度為41B,傳統(tǒng)的測試方法采用了March C+算法檢測,使用多個不同的測試向量,如0000,0101,0011等,實(shí)現(xiàn)對字間失效和字內(nèi)失效的檢測,這種測試方法不能保證對字內(nèi)失效檢測的覆蓋率,March C+測試算法的時間復(fù)雜度為14B,因此當(dāng)使用的測試向量大于3個時,測試的時間復(fù)雜度將大于上述針對字間失效和字內(nèi)失效設(shè)計(jì)的測試算法。

結(jié) 論

分析了單向雙端口SRAM的失效,描述了基于字的隊(duì)列檢測算法,可以有效地檢測字間失效、字內(nèi)失效和同時讀寫失效,具有失效覆蓋率高和測試時間復(fù)雜度低的優(yōu)點(diǎn)。



關(guān)鍵詞: 存儲 地址 譯碼 檢測

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉