?

一種Mbist新型算法March 3CL的設計

2018-01-03 02:14陳之超李小進丁艷芳李玲玲
電子測試 2017年22期
關鍵詞:原語敏化存儲器

陳之超,李小進,丁艷芳,李玲玲

(華東師范大學信息科學技術學院,上海,200241)

一種Mbist新型算法March 3CL的設計

陳之超,李小進,丁艷芳,李玲玲

(華東師范大學信息科學技術學院,上海,200241)

制造工藝的不斷進步,嵌入式存儲器在片上系統芯片中的集成度越來越大,同時存儲器本身也變得愈加復雜,使得存儲器出現了一系列新的故障類型,比如三單元耦合故障。存儲器內建自測試技術是當今存儲器測試的主流方法,研究高效率的Mbist算法,是提高芯片成品率的必要前提。以SRAM的7種三單元耦合故障為研究對象,通過分析故障行為得到三單元耦合的72種故障原語,并且分析了地址字內耦合故障的行為,進而提出新的測試算法March 3CL。以2048X32的SRAM為待測存儲器,利用EDA工具進行了算法的仿真,仿真結果表明,該算法具有故障覆蓋率高、時間復雜度低等優點。

SRAM;存儲器內建自測試;三單元耦合故障;March算法;可測性設計

0 引言

隨著深亞微米技術的不斷發展,工藝尺寸不斷縮小,存儲器中各個單元之間的距離越來越近,出現了更為復雜的故障,如三單元耦合故障。存儲器內建自測試是DFT(design for test)中重要的一項內容,目的是為了檢測SOC(system on chip)中的嵌入式存儲器是否存在故障。當下主流的Mbist設計工具是Mentor公司的Tessent Mbist,它可以檢測到所有的單個單元故障、雙單元故障和少部分三單元耦合故障[1],存在的缺陷是無法全面的覆蓋三單元耦合障。當工藝達到28nm及以下時,這種三單元故障的影響會逐步加深,測試算法是存儲器測試的核心內容[2],因此根據故障模型研究新的測試算法,以備更好地保證芯片的良率,成為行業所需。

1 三單元耦合故障分析

1.1 三單元耦合故障類型

當下的IC設計中,由于單端口靜態存儲器使用更為廣泛,所以這里只針對它的三單元耦合故障進行研究分析。所謂耦合故障,就是兩個或兩個以上的存儲單元之間存在緊密配合和相互影響,導致其中某幾個單元的存儲值發生改變從而使芯片產生故障的現象[3],而相鄰單元出現耦合故障的概率比非相鄰單元要大好幾個數量級,所以這里只針對相鄰的三個存儲單元進行分析。

為了能夠定義存儲器的故障,功能故障模型以及故障原語被提出[4][5],故障原語的形式如下:=,其中,S(Sensitizing operation sequence)稱為“敏化操作序列”,能夠讓被檢測單元表現出故障的狀態,Sa1和Sa2代表施加在兩個施主單元a1和a2上的敏化操作,Sv代表受主單元v上受到的敏化操作,v單元上會出現故障行為。由于這里我們分析的是單端口的存儲器,一個操作周期內只會對一個存儲單元進行操作,所以兩個施主單元不會同時有敏化操作,Sa1和 Sv屬于 {0,1,R0,R1,0W0,0W1,1W0,1W1},而 Sa2屬于{0,1}。F描述有故障單元的行為或狀態值,F屬于{0,1,↑,↓},當S為讀操作時,R表示存儲器的輸出結果,當S不是讀操作時,R為-。

根據不同的故障類型,可以把三單元故障分為7種[6],分別是:

(1)狀態耦合故障(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)

1.2 三單元耦合故障原語的建立

通過分析三單元耦合的各種故障行為,結合上文提到的8種敏化操作,得到三單元耦合故障的72種故障原語[7],如表1所示。

表1 三單元耦合故障原語

1.3 故障復雜性分析

表1列出了72種故障原語,從邏輯上對存儲器中的故障進行了分類,由于這里的研究對象是三個單元,而三個單元中的任意兩個都可以成為施主單元,剩下的一個作為受主單元,所以每種故障下又多了6種出現故障單元的方式。另外,考慮實際情況下相鄰三個故障單元在存儲器中的物理排布,會有如圖1所示的6種不同排列形式。因此,綜上所述,需要檢測的三單元耦合故障共有2592個。

圖1 相鄰三單元排列方式圖

對于這么多的故障而言,所設計的算法不僅要保持較高的故障覆蓋率,還要保證較低的時間復雜度,所以最合適的方法是以March算法基于地址的測試思想來設計算法。

2 新型算法March 3CL的設計

2.1 算法背景初始化設計

在對存儲器進行測試之前需要對其存儲單元的值初始化,這樣做的目的是為了避免由于數據的偶然性而誤導測試結果,從而保證測試的正確性。對存儲器進行初始化,也就是對存儲器寫入邏輯值0或者1。三單元耦合故障算法的設計是針對存儲器中的三個相鄰的單元(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)經過一些寫操作得到,(0,1,0)和(1,0,1)這兩種故障組合,只能通過另外的背景初始化設計才能覆蓋到。為了能夠覆蓋全部的邏輯組合,就有了下面的4種新的初始化背景設計C1—C4,如圖2所示。

圖2 背景初始狀態排列圖

初始化步驟C1、C3和C2、C4是兩兩互補的,配合后面的敏化操作,能全面覆蓋三個單元的各種邏輯組合。

2.2 March 3CL算法設計

測試過程中,存儲器是以地址為單位輸入測試數據,默認的背景數據是“0”和“1”,因此每個地址上的位間只能形成00和11兩種狀態,同一地址內位間缺少01和10兩種狀態,所以無法覆蓋同一地址內位間的耦合故障,這種形式稱為字內故障[8]。為了讓算法能夠覆蓋這種故障,我們增加測試數據類型“5”和“A”,通過增加形如“0101“和“1010”的測試數據,就可以覆蓋字內故障。為了配合測試存儲器,在工具中人為加入背景數據“5”和“A”,在字內即可形成“0101”和“1010”的二進制數據,從而覆蓋字內故障。

綜上分析得到最終的March 3CL算法,如圖3所示。

March 3CL算法設計過程中,為了使時間復雜度盡可能小,把一些觀測步驟和敏化步驟整合到了一起,得到了最終的14個算法步驟。

3 存儲器內建自測試電路原理

存儲器內建自測試就是在存儲器周圍建立測試電路,實現對存儲器輸入輸出數據的控制,并把存儲器的輸出結果與期望值進行比較,若兩者結果一致,則說明沒有故障,若不一致,則表明存儲器存在故障[9]?;倦娐方Y構如圖4所示,核心單元是MBIST控制器,由它控制電路進入相應的模式,當進入測試模式時,Function模式下的3個操作控制信號Func_r/w,Func_di,Func_add被切斷,存儲器的測試路徑被接通,此時MBIST controler中產生的數據通過三個多路選擇器Mux輸入進Memory,從而直接控制存儲器的讀寫操作。MBIST controler能夠產生理想的輸出結果Test_do,并將其輸入進比較器Comparator,使其與存儲器的實際輸出數據進行比較,如果兩者不一致,則故障標志位Mbist_GO信號會被拉高,說明存儲器存在故障。整個過程完成后,信號MBIST_DONE會被拉高,表示存儲器自測試完成,可以進入其他測試模式或功能模式。

圖3 March 3CL算法步驟

圖4 基本的Bist電路結構

4 算法仿真與驗證

本文采用大小為2048X32的SRAM作為待測存儲器,以March 3CL算法作為測試算法,采用Mentor公司的Tessent Mbist作為代碼生成和插入工具,利用synopsys公司的VCS作為功能仿真工具,最后通過Novas公司的Verdi查看得到的波形圖。按照工具提供的用戶自定義算法模板來編寫算法過程,得到最終的算法文件,并將其導入工具中。

圖5說明了March 3CL算法的測試過程,該存儲器共有11條地址線,最后兩個信號MBIST_GO和MBIST_DONE是用來判斷測試結果的。在整個算法測試階段,由于使用的SRAM是理想的模型,圖中倒數第二個信號MBIST_GO沒有發生跳變,一直處在高電平,說明沒有故障發生,最后一個信號MBIST_DONE在測試最后階段跳變為高電平,標志著整個測試過程的結束。對于算法有效性的驗證,這里采用的方法是在存儲器庫文件模型內人為注入故障,即在存儲器RTL上直接改寫其行為,產生符合要求的故障模型。由圖6可以看出,在最后一個信號MBIST_DONE變為高電平之前,倒數第二個信號MBIST_GO跳變為低電平,說明算法檢測到存儲器存在故障。本文提到的72種三單元耦合故障以及字內耦合故障,都可以通過這種人為故障注入的方法來驗證算法的有效性。

圖5 無故障存儲器算法仿真波形圖

圖6 檢測到存儲器故障仿真波形圖

5 結語

嵌入式存儲器的測試面臨越來越多新的挑戰,本文深入分析了三單元耦合以及字內耦合的各種故障行為,在此基礎上設計了新型算法March 3CL,算法推導過程中在故障覆蓋率和算法復雜度上進行了折中,最后利用EDA工具進行了仿真驗證,結果證明該算法可以覆蓋上述提到的所有故障,并且該算法具有較低的時間復雜度。

[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 +改進算法的MBIST設計 [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].微電子學,2009,39(2):251-255

[7]劉儲元. ARMcortexM3芯片嵌入式存儲器內建自測試算法的設計[D].南京:東南大學.2016.

[8]郭明朝.基于March算法的SRAM內建自測試設計與驗證[D].西安:西安電子科技大學.2015.

[9]郭雙友.嵌入式存儲器測試算法的研究與實現[D]. 西安:西安電子科技大學.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

陳之超,華東師范大學碩士研究生,主要研究方向為數字集成電路設計。

猜你喜歡
原語敏化存儲器
冠心病穴位敏化現象與規律探討
近5年敏化態與非敏化態關元穴臨床主治規律的文獻計量學分析
靜態隨機存儲器在軌自檢算法
密碼消息原語通信協議介紹及安全分析
淺談旅游翻譯中文化差異的處理
耦聯劑輔助吸附法制備CuInS2量子點敏化太陽電池
5種天然染料敏化太陽電池的性能研究
存儲器——安格爾(墨西哥)▲
基于Nand Flash的高速存儲器結構設計
基于原語自動生成的安全協議組合設計策略及應用研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合