陳之超,李小進(jìn),丁艷芳,李玲玲
(華東師范大學(xué)信息科學(xué)技術(shù)學(xué)院,上海,200241)
一種Mbist新型算法March 3CL的設(shè)計
陳之超,李小進(jìn),丁艷芳,李玲玲
(華東師范大學(xué)信息科學(xué)技術(shù)學(xué)院,上海,200241)
制造工藝的不斷進(jìn)步,嵌入式存儲器在片上系統(tǒng)芯片中的集成度越來越大,同時存儲器本身也變得愈加復(fù)雜,使得存儲器出現(xiàn)了一系列新的故障類型,比如三單元耦合故障。存儲器內(nèi)建自測試技術(shù)是當(dāng)今存儲器測試的主流方法,研究高效率的Mbist算法,是提高芯片成品率的必要前提。以SRAM的7種三單元耦合故障為研究對象,通過分析故障行為得到三單元耦合的72種故障原語,并且分析了地址字內(nèi)耦合故障的行為,進(jìn)而提出新的測試算法March 3CL。以2048X32的SRAM為待測存儲器,利用EDA工具進(jìn)行了算法的仿真,仿真結(jié)果表明,該算法具有故障覆蓋率高、時間復(fù)雜度低等優(yōu)點(diǎn)。
SRAM;存儲器內(nèi)建自測試;三單元耦合故障;March算法;可測性設(shè)計
隨著深亞微米技術(shù)的不斷發(fā)展,工藝尺寸不斷縮小,存儲器中各個單元之間的距離越來越近,出現(xiàn)了更為復(fù)雜的故障,如三單元耦合故障。存儲器內(nèi)建自測試是DFT(design for test)中重要的一項(xiàng)內(nèi)容,目的是為了檢測SOC(system on chip)中的嵌入式存儲器是否存在故障。當(dāng)下主流的Mbist設(shè)計工具是Mentor公司的Tessent Mbist,它可以檢測到所有的單個單元故障、雙單元故障和少部分三單元耦合故障[1],存在的缺陷是無法全面的覆蓋三單元耦合障。當(dāng)工藝達(dá)到28nm及以下時,這種三單元故障的影響會逐步加深,測試算法是存儲器測試的核心內(nèi)容[2],因此根據(jù)故障模型研究新的測試算法,以備更好地保證芯片的良率,成為行業(yè)所需。
當(dāng)下的IC設(shè)計中,由于單端口靜態(tài)存儲器使用更為廣泛,所以這里只針對它的三單元耦合故障進(jìn)行研究分析。所謂耦合故障,就是兩個或兩個以上的存儲單元之間存在緊密配合和相互影響,導(dǎo)致其中某幾個單元的存儲值發(fā)生改變從而使芯片產(chǎn)生故障的現(xiàn)象[3],而相鄰單元出現(xiàn)耦合故障的概率比非相鄰單元要大好幾個數(shù)量級,所以這里只針對相鄰的三個存儲單元進(jìn)行分析。
為了能夠定義存儲器的故障,功能故障模型以及故障原語被提出[4][5],故障原語的形式如下:=
根據(jù)不同的故障類型,可以把三單元故障分為7種[6],分別是:
(1)狀態(tài)耦合故障(State coupling faults,CFst)
(2)擾動耦合故障(Disturb coupling faults,CFds)
(3)跳變耦合故障(Transition coupling faults,CFtr)
(4)寫破壞耦合故障(Write Destructive coupling faults,CFwd)
(5)讀破壞耦合故障(Read destructive coupling faults,CFrd)
(6)偽讀破壞耦合故障(Deceptive read destructive coupling faults,CFdrd)
(7)不正確讀耦合故障(Incorrect read coupling faults,CFir)
通過分析三單元耦合的各種故障行為,結(jié)合上文提到的8種敏化操作,得到三單元耦合故障的72種故障原語[7],如表1所示。
表1 三單元耦合故障原語
表1列出了72種故障原語,從邏輯上對存儲器中的故障進(jìn)行了分類,由于這里的研究對象是三個單元,而三個單元中的任意兩個都可以成為施主單元,剩下的一個作為受主單元,所以每種故障下又多了6種出現(xiàn)故障單元的方式。另外,考慮實(shí)際情況下相鄰三個故障單元在存儲器中的物理排布,會有如圖1所示的6種不同排列形式。因此,綜上所述,需要檢測的三單元耦合故障共有2592個。
圖1 相鄰三單元排列方式圖
對于這么多的故障而言,所設(shè)計的算法不僅要保持較高的故障覆蓋率,還要保證較低的時間復(fù)雜度,所以最合適的方法是以March算法基于地址的測試思想來設(shè)計算法。
在對存儲器進(jìn)行測試之前需要對其存儲單元的值初始化,這樣做的目的是為了避免由于數(shù)據(jù)的偶然性而誤導(dǎo)測試結(jié)果,從而保證測試的正確性。對存儲器進(jìn)行初始化,也就是對存儲器寫入邏輯值0或者1。三單元耦合故障算法的設(shè)計是針對存儲器中的三個相鄰的單元(a,b,c),每個單元上的邏輯值為0或1,因此這三個單元的邏輯組合有 8 種,分別是(0,0,0)、(0,0,1)、(0,1,1)、(1,0,0) 、(1,1,0)、 (1,1,1)、(0,1,0)、(1,0,1),前 6 種都可以由(0,0,0)經(jīng)過一些寫操作得到,(0,1,0)和(1,0,1)這兩種故障組合,只能通過另外的背景初始化設(shè)計才能覆蓋到。為了能夠覆蓋全部的邏輯組合,就有了下面的4種新的初始化背景設(shè)計C1—C4,如圖2所示。
圖2 背景初始狀態(tài)排列圖
初始化步驟C1、C3和C2、C4是兩兩互補(bǔ)的,配合后面的敏化操作,能全面覆蓋三個單元的各種邏輯組合。
測試過程中,存儲器是以地址為單位輸入測試數(shù)據(jù),默認(rèn)的背景數(shù)據(jù)是“0”和“1”,因此每個地址上的位間只能形成00和11兩種狀態(tài),同一地址內(nèi)位間缺少01和10兩種狀態(tài),所以無法覆蓋同一地址內(nèi)位間的耦合故障,這種形式稱為字內(nèi)故障[8]。為了讓算法能夠覆蓋這種故障,我們增加測試數(shù)據(jù)類型“5”和“A”,通過增加形如“0101“和“1010”的測試數(shù)據(jù),就可以覆蓋字內(nèi)故障。為了配合測試存儲器,在工具中人為加入背景數(shù)據(jù)“5”和“A”,在字內(nèi)即可形成“0101”和“1010”的二進(jìn)制數(shù)據(jù),從而覆蓋字內(nèi)故障。
綜上分析得到最終的March 3CL算法,如圖3所示。
March 3CL算法設(shè)計過程中,為了使時間復(fù)雜度盡可能小,把一些觀測步驟和敏化步驟整合到了一起,得到了最終的14個算法步驟。
存儲器內(nèi)建自測試就是在存儲器周圍建立測試電路,實(shí)現(xiàn)對存儲器輸入輸出數(shù)據(jù)的控制,并把存儲器的輸出結(jié)果與期望值進(jìn)行比較,若兩者結(jié)果一致,則說明沒有故障,若不一致,則表明存儲器存在故障[9]。基本電路結(jié)構(gòu)如圖4所示,核心單元是MBIST控制器,由它控制電路進(jìn)入相應(yīng)的模式,當(dāng)進(jìn)入測試模式時,F(xiàn)unction模式下的3個操作控制信號Func_r/w,F(xiàn)unc_di,F(xiàn)unc_add被切斷,存儲器的測試路徑被接通,此時MBIST controler中產(chǎn)生的數(shù)據(jù)通過三個多路選擇器Mux輸入進(jìn)Memory,從而直接控制存儲器的讀寫操作。MBIST controler能夠產(chǎn)生理想的輸出結(jié)果Test_do,并將其輸入進(jìn)比較器Comparator,使其與存儲器的實(shí)際輸出數(shù)據(jù)進(jìn)行比較,如果兩者不一致,則故障標(biāo)志位Mbist_GO信號會被拉高,說明存儲器存在故障。整個過程完成后,信號MBIST_DONE會被拉高,表示存儲器自測試完成,可以進(jìn)入其他測試模式或功能模式。
圖3 March 3CL算法步驟
圖4 基本的Bist電路結(jié)構(gòu)
本文采用大小為2048X32的SRAM作為待測存儲器,以March 3CL算法作為測試算法,采用Mentor公司的Tessent Mbist作為代碼生成和插入工具,利用synopsys公司的VCS作為功能仿真工具,最后通過Novas公司的Verdi查看得到的波形圖。按照工具提供的用戶自定義算法模板來編寫算法過程,得到最終的算法文件,并將其導(dǎo)入工具中。
圖5說明了March 3CL算法的測試過程,該存儲器共有11條地址線,最后兩個信號MBIST_GO和MBIST_DONE是用來判斷測試結(jié)果的。在整個算法測試階段,由于使用的SRAM是理想的模型,圖中倒數(shù)第二個信號MBIST_GO沒有發(fā)生跳變,一直處在高電平,說明沒有故障發(fā)生,最后一個信號MBIST_DONE在測試最后階段跳變?yōu)楦唠娖?,?biāo)志著整個測試過程的結(jié)束。對于算法有效性的驗(yàn)證,這里采用的方法是在存儲器庫文件模型內(nèi)人為注入故障,即在存儲器RTL上直接改寫其行為,產(chǎn)生符合要求的故障模型。由圖6可以看出,在最后一個信號MBIST_DONE變?yōu)楦唠娖街?,倒?shù)第二個信號MBIST_GO跳變?yōu)榈碗娖?,說明算法檢測到存儲器存在故障。本文提到的72種三單元耦合故障以及字內(nèi)耦合故障,都可以通過這種人為故障注入的方法來驗(yàn)證算法的有效性。
圖5 無故障存儲器算法仿真波形圖
圖6 檢測到存儲器故障仿真波形圖
嵌入式存儲器的測試面臨越來越多新的挑戰(zhàn),本文深入分析了三單元耦合以及字內(nèi)耦合的各種故障行為,在此基礎(chǔ)上設(shè)計了新型算法March 3CL,算法推導(dǎo)過程中在故障覆蓋率和算法復(fù)雜度上進(jìn)行了折中,最后利用EDA工具進(jìn)行了仿真驗(yàn)證,結(jié)果證明該算法可以覆蓋上述提到的所有故障,并且該算法具有較低的時間復(fù)雜度。
[1]R. Nair,S. Thatte,J. Abraham.Efficient algorithms fortesting semiconductorrandomaccessmemory[J].IEEE Trans.Comput.C-27(6)(1978)572-576.
[2]V.A.Vardanian,Y.Zorian.A March-based Fault Location Algorithm for Static Random Access Memories[C].Proceedingsof the 2002 IEEE International Workshop on Memory Technology,Design and Testing,2002:63-67.
[3]申志飛,梅春雷,易茂祥.基于MarchC +改進(jìn)算法的MBIST設(shè)計 [J],電子科技,2011,24(10):67-70.
[4]Ad J. van de Goor,Issam B.S.A Systematic Method for Modifying March Tests for Bit-Oriented Memories into Tests for Word-Oriented Memories[J],IEEE TRANSACTIONS ON COMPUTERS,2003,52(10):1320-1331.
[5]Alfredo Benso,Alberto Bosio.March Test Generation Revealed[J],IEEE TRANSACTIONS ON COMPUTERS,2008,57(12):1704-1703.
[6]石磊,王小力.一種基于存儲器故障原語的March測試算法的研究[J].微電子學(xué),2009,39(2):251-255
[7]劉儲元. ARMcortexM3芯片嵌入式存儲器內(nèi)建自測試算法的設(shè)計[D].南京:東南大學(xué).2016.
[8]郭明朝.基于March算法的SRAM內(nèi)建自測試設(shè)計與驗(yàn)證[D].西安:西安電子科技大學(xué).2015.
[9]郭雙友.嵌入式存儲器測試算法的研究與實(shí)現(xiàn)[D]. 西安:西安電子科技大學(xué).2009.
Design for a new Mbist algorithm March 3CL
Chen Zhichao, Li Xiaojin,Ding Yanfang, Li Lingling
(Department of Electrical Engineering, East China Normal University, Shanghai, 200241)
As the manufacturing process continues to advance,embeded memories have higher level of intergration on SOC,and at the same time the complexity of the memory itself make memories generate new fault types,such as 3-cell coupling faults.Memory build in self-test has been the main methods of memory test,so an effective algorithm is an essential prerequisite to the yield improvement.This paper points at seven categories of 3-cell coupling faults, we receive 72 kinds of fault primitive by analyzing the behavior of the 3-cell coupling fault,and we also analyze the faults in the same address,so a new test algorithmMarch 3CL is proposed.A 2048X32 SRAM has been used for verifying March 3CL by EDA tools,the result shows that this algorithm has the advantage of high fault coverage and short test time.
SRAM; Memory built-in self test(Mbist); 3-cell Coupling Faults; Algorithm March; Design For Test
陳之超,華東師范大學(xué)碩士研究生,主要研究方向?yàn)閿?shù)字集成電路設(shè)計。