當SoC上有超過80%的芯片面積被各種形式的存儲器占用之時,存儲器的DFT測試已經變得非常重要。
(一)存儲器故障模型類型:
1.固定故障(SAF),即Stuck at Fault
存儲單元stuck at 1或0。
2.轉換故障(TF),即Transition fault
比如可以1->0,但是無法完成0->1的準換。
3.耦合故障(CF),即Couple Fault
由于鄰接單元,許多單元共享字線和位線,寫入一個單元可能導致另一個單元出現相同值。反向耦合(CFin, Inversion Couple Fault)是指當寫入一個值到一個存儲單元時,該值將反轉另一個存儲單元值。
比如,要測試CF,需在所有單元中寫0,然后在存儲單元A寫1。讀取所有單元值,檢查除了單元A為1外,是否還有其他單元被耦合拉為1了。另外,對相反值也要采取此流程。
4.橋接故障(BF),即Bridge Fault
兩個或兩個以上位線短接在一起就造成了橋接故障(BF)。
(二)存儲器測試算法
測試存儲器測試算法的性能指標通常有兩個:
測試時間
故障覆蓋率
常用的確定性測試算法有:Checkerboard算法、March類算法、MSCAN(Memory Scan)算法、跳步 (GALPAT) 和走步 (Walking 1/0)算法,我們重點介紹Checkerboard算法、March類算法。
MSCAN算法
MSCAN 算法是一種最基本、最簡單的測試算法。首先對所有待測單元寫入全0,然后讀取所有存儲單元并判斷是否有故障,接著寫入全1,再讀取所有存儲單元并判斷是否有故障,可以檢測所有SAF故障,缺點是僅支持部分耦合故障的測試,故障覆蓋率有限。
Checkerboard棋盤算法
Checkerboard 算法也叫棋盤算法,基本過程是對每個存儲單元進行賦值,保證每一個存儲單元的值都與相鄰單元的值不同,這樣就將整個存儲陣列分為了兩塊:存儲值是0的為A 塊,存儲值是1的為B 塊:
Checkerboard棋盤算法分塊后,按如下過程測試:
(1) 對A和B塊分別寫入0和1;
(2) 讀所有存儲單元;
(3) 對A和B塊分別寫入1和0;
(4) 讀所有存儲單元。
該算法的操作數為4N,N為存儲單元個數,時間復雜度為O(N),可以檢測固定型故障和部分橋連故障,在BIST 算法中應用廣泛。
March 測試算法
March算法是一系列的算法,具有較高的故障覆蓋率、測試時間較短,已經廣泛應用于大容量SRAM 和DRAM 的測試,目前的March 算法主要有MATS,MATS+,March X、March C、March C-、March C+、March LR 等類型。可以檢測各種內存故障(Stuck-At、Transition、Address faults、Idempotent coupling faults)。
March-C 算法以任何順序將0寫入所有存儲單元,然后從位置 0開始以地址升序排序的方法讀取并檢查數據是否是0,并將已讀取的位置寫入1,遍歷后,所有的存儲器位都為1。然后我們又從位置0開始以遞增順序讀取 1,并將每次讀取的位置寫為0。然后重復類似的測試。詳細步驟如下:
March-C 的測試步驟:
按照上圖的解釋,March算法執行步驟可以更簡單的描述如下:
地址遞增:
初始化寫0
讀0,寫1,地址順序遞增
讀1,寫0,地址順序遞增
地址遞減:
讀0,寫1,地址順序降序
讀1,寫0,地址順序降序
按降序讀0
March-C讀寫一共進行10次,因此算法復雜度為10N。
當前,大多數行業標準使用March和棋盤格算法的組合,通常稱為SMarchCKBD算法。該算法使MBIST控制器能夠進行快速行或列訪問來檢測內存故障。
我們可以看到景芯SoC訓練營也是采用的SMarchCKBD算法:
審核編輯:劉清
-
控制器
+關注
關注
114文章
16857瀏覽量
182381 -
DRAM
+關注
關注
40文章
2340瀏覽量
184982 -
存儲器
+關注
關注
38文章
7615瀏覽量
166009 -
DFT設計
+關注
關注
0文章
10瀏覽量
8952
原文標題:DFT設計—MBIST算法
文章出處:【微信號:全棧芯片工程師,微信公眾號:全棧芯片工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
DFT算法與FFT算法的優劣分析
Nvidia is hiring-Senior DFT Engineer
L220 MBIST控制器技術參考手冊
CoreLink 2級MBIST控制器L2C-310技術參考手冊
ARM L210 MBIST控制器技術參考手冊
什么是DFT,DFT是什么意思
DFT的快速算法-FFT
滑動DFT算法在功率譜估計中的應用

基于BEM聯合反饋分組DFT的信道估計算法

怎么配置DFT中常見的MBIST以及SCAN CHAIN
DFT如何產生PLL 測試pattern

評論