曾健平 王振宇 袁甲 彭偉 曾云



摘? ?要:面向March C+算法故障覆蓋率的問題,本文提出一種改進(jìn)的March CS算法來完成存儲器SRAM的內(nèi)建自測試.通過增加原算法元素的讀寫操作來敏化存儲單元的故障,檢測原算法不能敏化的靜態(tài)故障和動態(tài)故障,從而提高故障覆蓋率.最后,通過對1 024*32位靜態(tài)隨機(jī)存儲器進(jìn)行故障仿真驗(yàn)證,以及FPGA對SRAM芯片的應(yīng)用性測試,March CS算法檢測靜態(tài)故障和動態(tài)故障的覆蓋率分別達(dá)到91.67%和76.93%.
關(guān)鍵詞:March CS算法;靜態(tài)故障; 動態(tài)故障; 故障覆蓋率;
中圖分類號: TN47? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)志碼:A
An Improved SRAM Fault Built-in-self-test Algorithm
ZENG Jianping1,WANG Zhenyu1,YUAN Jia2,PENG Wei1,ZENG Yun1
(1.School of Physics and Microelectronics Science,Hunan University,Changsha 410000,China;
2. Institute of Microelectronics,Chinese Academy of Sciences,Beijing 100029,China)
Abstract: This paper proposed an improved March CS algorithm to complete the built-in self-test of SRAM
memory due to the problem of March C + algorithm's fault coverage. The static and dynamic fault of memory cell were sensitized by the original algorithm increasing the read-write operation of the algorithm element, so that the fault coverage was enhanced. Finally, the March CS algorithm achievesd 91.67% and 76.93% coverage of static and dynamic faults respectively through the simulation experiments of the 1 024*32-size fault static Randon-Access memory and the measurement of FPGA to SRAM chips.
Key words: March CS algorithm;static fault;dynamic fault;fault coverage
集成電路的發(fā)展一直遵循著摩爾定律,片上系統(tǒng)SoC(System-on-Chip)已經(jīng)成為了集成電路IC(Integrated Circuit Design)設(shè)計(jì)的主流之一[1].隨著IC設(shè)計(jì)的發(fā)展與更新,集成電路的測試也成為一個備受關(guān)注的焦點(diǎn)問題.在如今的存儲器測試方法中,內(nèi)建自測試BIST(Built-in-Self-Test)成為了一種主流測試方法[2-3].存儲器內(nèi)建自測試MBIST不僅能簡化測試中的步驟,而且可以縮短測試所需時間,對故障的覆蓋比較全面[4].
存儲器內(nèi)建自測試MBIST的研究集中在測試算法中,通過采用一種或多種測試算法對靜態(tài)隨機(jī)存儲器SRAM進(jìn)行故障測試.目前比較常用的算法包括:MSCAN算法、棋盤算法、GALPAT算法以及March算法等.其中March算法[5]在當(dāng)今存儲器測試應(yīng)用較多,比較常用的有March C算法、March C+算法等,它們具有較高的故障覆蓋率,且測試時間短,但仍然有許多故障不能被覆蓋[6].
隨著集成電路內(nèi)建自測試技術(shù)的發(fā)展,國外芯片公司已經(jīng)設(shè)計(jì)出比較成熟的內(nèi)建自測試的工具,比如Mentor公司的MBIST Architect軟件以及Synopsys開發(fā)出的DFT Compiler軟件.本文的算法是通過MBIST Architect軟件實(shí)現(xiàn)內(nèi)建自測試[7],并且是對于memory compile生成的1024X32的SRAM進(jìn)行功能仿真與驗(yàn)證.
1? ?存儲器的故障概念
存儲器的故障一般指邏輯與功能上故障,其中主要包括固定故障(SAF)、轉(zhuǎn)換故障(TF)、讀破壞故障(RDF)、寫干擾故障(WDF)以及耦合故障(CF)
等[8].故障原語FP(Fault Primitive)是用來表示存儲器的故障行為,其通常的表現(xiàn)形式有兩種,分別為〈S/F/R〉與〈Sa;Sv /F/R〉,其中, 〈S/F/R〉通常表示單個單元的故障行為,而〈Sa;Sv /F/R〉通常表示兩個單元的故障敏化序列.其中S表示存儲器故障行為的操作和狀態(tài),F(xiàn)表示故障單元的狀態(tài)值,R表示存儲器的讀操作的結(jié)果.而對于兩個單元的故障原語,Sa表示施主單位的敏化序列,a表示施主單元的地址.Sv表示故障單位的敏化序列,v表示故障單元的地址[9].
存儲器的故障類型一般有固定故障、轉(zhuǎn)換故障、寫干擾故障、讀破壞故障以及耦合故障等類型.其中,耦合故障(CF)是發(fā)生在多個存儲單元之間,是指某個單元的變化而影響到其他存儲單元發(fā)生變化.耦合故障的類型主要是以下幾種:反相耦合故障(CFin)是指某個存儲單元跳變?yōu)?或1時,而導(dǎo)致其它一個的存儲單元的值進(jìn)行翻轉(zhuǎn).定值耦合故障(CFid)是指某個存儲單元跳變?yōu)?或1時,而導(dǎo)致其它的存儲單元的值變?yōu)榱艘粋€固定值.狀態(tài)耦合故障(CFst)是指存儲單元在某一個確定狀態(tài)時,而導(dǎo)致了另一個存儲單元跳變到了錯誤狀態(tài).