嵌入式存儲器的測試及可測性設計研究
引言
本文引用地址:http://www.ex-cimer.com/article/265388.htm近年來,消費者對電子產品的更高性能和更小尺寸的要求持續(xù)推動著SoC(系統(tǒng)級芯片)產品集成水平的提高,并促使其具有更多的功能和更好的性能。要繼續(xù)推動這種無止境的需求以及繼續(xù)解決器件集成領域的挑戰(zhàn),最關鍵的是要在深亞微米半導體的設計、工藝、封裝和測試領域獲得持續(xù)的進步。
SoC是采用IP復用技術的一種標準設計結構,在多功能電子產品中得到了廣泛的應用。SoC的典型結構包括CPU、存儲器、外圍邏輯電路、多媒體數字信號編解碼器和接口模塊等?,F在的SoC中,存儲器通常占據整個芯片的大部分面積,并且可能包括各種類型的嵌入式存儲器,如DRAM、SRAM及Flash存儲器等,可滿足不同的應用需要。目前SoC設計要求存儲器的容量不斷地增大,嵌入式存儲器在SoC中所占的面積百分比也隨之不斷增加。另外,SoC的復雜度不斷地提高而集成電路工藝尺寸在不斷減小,這就導致嵌入式存儲器的制造缺陷比例也不斷地增加。因此嵌入式存儲器的故障率對于SoC的總成品率的影響越來越大,而保證低故障率的關鍵是高效率和高故障覆蓋率的嵌入式存儲器測試方案。
在我國,集成電路測試及可測性設計,特別是存儲器的測試研究相對國際上的研究比較落后。目前,我國自主研究的測試算法以及開發(fā)的測試設備還沒有形成產業(yè)化,還不能與國際上先進的集成電路測試設備相抗衡。而近幾年來,我國在集成電路領域加大了投入,集成電路產業(yè)也得到了長足的進步。
集成電路測試也是一個知識密集型的高投入領域,一直是我國集成電路產業(yè)發(fā)展的制約因素。半導體工業(yè)成本發(fā)展的特點就是它的單位功能制造成本以每年平均25%~30%的比例下降,而測試成本卻以每年平均10.5%的比例提高。隨著集成電路復雜度的不斷提高,為其設計的測試電路也越來越復雜,測試電路占用的芯片面積及設計制造成本也變得更高。
本文對嵌入式存儲器的測試及可測性設計進行研究總結,為我國存儲器測試的研究以及集成電路測試產業(yè)的發(fā)展奠定堅實的技術基礎。
嵌入式存儲器測試方法
半導體存儲器自20世紀60年代開始設計生產以來,在設計結構、產品的性能和存儲的密度等各方面發(fā)生了巨大的變化,現在嵌入式存儲器技術的發(fā)展已經取得了很大的成就,并被廣泛應用于各類基于SoC芯片設計的電子產品中,已經成為大多數電子系統(tǒng)中必不可少的組成部分,在人們的生產生活中起到了舉足輕重的作用。嵌入式存儲器的測試方法主要包括以下三類:
存儲器直接存取測試
此類測試方法把嵌入式存儲器部分從整個系統(tǒng)中分離出來,由專用的存儲器測試電路連接到存儲器接口上對嵌入式存儲器進行測試,系統(tǒng)框圖如圖1所示。
圖1 存儲器直接存取測試
專門設計的存儲器接口電路僅在需要對存儲器進行測試時才通過I/O多路選擇器選擇使用,并利用測試儀產生的存儲器測試向量對存儲器進行測試。因此這種測試方法可以從芯片的封裝引腳直接對嵌入式存儲器進行測試,也可以直接對存儲器測試的邏輯狀態(tài)和存儲器運行的過程進行監(jiān)控和測試,可以方便地實現嵌入式存儲器的多種測試算法。但這種測試方法也存在不足之處,對存儲器進行測試的測試向量需要串行化后才能通過I/O端口的多路選擇器送入存儲器接口電路,這樣不僅增加了測試的復雜度,而且還增加了測試的時間。
片上微處理器測試
這種測試方法利用SoC上的微處理器構造測試系統(tǒng)對嵌入式存儲器進行測試。首先,選擇對嵌入式存儲器進行測試的測試算法,利用微處理器的匯編語言編寫相應的測試算法程序;然后,通過微處理器匯編語言的編譯器得到可執(zhí)行代碼;接下來,將可執(zhí)行代碼下載到系統(tǒng)中,通過微處理器的運行產生相應的測試向量,并按照測試算法對嵌入式存儲器進行測試。測試的結果由微處理器進行比較評估,也可以由專門設計的結果處理電路進行結果判定。
這種測試方法的優(yōu)點是利用SoC現有資源,而不需要設計額外的測試電路,也不需要對現有電路進行任何修改,因此不會增加額外的面積開銷,也不會降低性能。這種測試方法可以采用任何一種測試算法對嵌入式存儲器進行測試,可以提供全故障診斷和進行全速測試。但是這種測試方法也有一定的缺點,首先芯片中的嵌入式存儲器部分或者全部與微處理器不相連,需要有專用的接口電路對測試算法的二進制代碼進行處理,其次不同測試算法的編程和程序修改需要大量的時間和人力,還有這種測試方法不能測試存儲測試程序的存儲器。
存儲器內建自測試
存儲器內建自測試(Build-in Self Test, BIST)是近幾年里大量應用于存儲器測試領域里的一種非常重要的技術。這種技術利用芯片內部專門設計的BIST電路進行自行測試,能夠對嵌入式存儲器、組合和時序邏輯電路等具有復雜電路結構的嵌入式模塊進行全面的測試。存儲器BIST電路將產生測試向量的電路模塊以及檢測測試結果的比較模塊都置于芯片的內部,在測試完成后,將測試的結果通過芯片的測試管腳送出到芯片的外部,從而增加了很少的管腳用于進行測試。存儲器BIST電路的結構包含三類:與系統(tǒng)正常運行并發(fā)的存儲器BIST電路結構;與系統(tǒng)正常運行不能并發(fā)的存儲器BIST電路結構,在存儲器BIST電路運行期間,必須中斷系統(tǒng)的正常運行,同時存儲器內不能保存系統(tǒng)運行的任何信息;與系統(tǒng)正常運行不能并發(fā),但是在存儲器BIST電路運行期間,可以保存系統(tǒng)運行時的內容,并在系統(tǒng)測試結束后恢復運行。
針對不同的嵌入式存儲器,需要專門針對可能產生的各種缺陷類型,采用一種或多種測試算法來設計專用BIST電路。通常嵌入式存儲器的BIST電路包括測試向量產生模塊、測試算法控制模塊和結果分析模塊。結構框圖如圖2所示。
圖2 存儲器BIST電路結構
存儲器的測試算法
存儲器測試需要根據測試算法的要求產生大量的測試向量,要反復對所有的存儲器單元進行讀/寫操作,并與預期值進行比較。測試算法設計的目標是能夠盡可能多地檢測出存儲器的各種故障。為了在盡可能短的測試時間和測試費用限制下測試出最多的存儲器故障,選擇高效的測試算法是至關重要的。目前應用比較廣泛的存儲器測試算法主要包括偽隨機存儲器測試算法、確定性存儲器測試算法,以及March系列存儲器測試算法三類。
偽隨機存儲器測試算法
這類算法利用n位反饋移位寄存器產生偽隨機序列對嵌入式存儲器進行測試。反饋移位寄存器可以通過如式(1)所示的n元反饋函數的多項式來進行構造。如果移位寄存器以
作為反饋函數,則稱之為反饋移位寄存器。
如果n級反饋移位寄存器呈線性結構,則稱之為線性反饋移位寄存器,可構造為如式(2)所示的多項式形式,共包含2n個移位寄存器。
不滿足公式(2)的反饋移位寄存器稱為非線性反饋移位寄存器,其共包含
個移位寄存器。與線性反饋移位寄存器包含的移位寄存器總個數比較發(fā)現,非線性反饋移位寄存器具有的移位寄存器總數更多,結構更復雜。
確定性存儲器測試算法
這類算法的形式很多,需要根據被測存儲器的結構特征和關注的故障選擇適合的測試算法,產生測試向量,以便提高測試故障覆蓋率,主要用于存儲器結構相對規(guī)則,并與關注的故障類型相關度高的存儲器測試。下面介紹三種比較典型的確定性存儲器測試算法。
(1)MSCAN(Memory SCAN)算法
這種算法就是簡單地對存儲器的每個單元寫0,然后讀出每個單元的內容驗證是否為0;再對每個單元寫1,然后讀出驗證。算法公式如式3所示。
MSCAN測試算法的復雜度與存儲單元數量N成正比,其測試復雜度為
從測試復雜度可以看出此算法花費的測試時間較短,另外此算法能夠測試SAF故障,也能測試存儲器在最差情況下所消耗的功耗,還可以作為進行其它較復雜測試算法之前對存儲器的初始化操作,但是此算法的測試故障覆蓋率較低。
(2)Checkerboard算法
這種測試算法在向存儲單元賦值時要求0和1交替賦值,也就是每個存儲器單元與周圍的四個單元的值都不同。然后再讀取每個存儲器單元的數值,并檢驗其正確性。算法公式如式5所示。
Checkerboard測試算法的復雜度同樣與存儲單元數量N成正比,其測試復雜度為
在如上的測試完成后,還需要交換0和1的位置再按照算法的要求交替寫入和讀取并驗證。這種算法執(zhí)行速度較快,能夠測試數據保留故障、固定故障和一半的轉換故障。
(3)GALPAT(Galloping Pattern)算法
這種算法也稱為漫游或者乒乓測試。首先需要初始化存儲器的所有單元為0(或1),然后按照地址從小到大的順序對某被測單元寫1(或0)的操作,接下來讀取被測單元的數值進行驗證。算法公式如式7所示。
GALPAT測試算法的復雜度為
這種測試算法的測試故障覆蓋率較高,能夠測試固定故障、狀態(tài)傳輸故障、圖形敏感故障以及大部分耦合故障。但根據公式8可知,該測試算法需要花費的測試時間較長,對于大容量存儲器來說并不適合。
March系列算法
March系列算法是在存儲器測試領域得到廣泛研究和應用的測試算法,原因在于其具有較高的故障覆蓋率,并花費較少的測試時間。此系列算法已經成功運用到大容量的SRAM測試,SDRAM測試等存儲器測試領域,并出現了大量的改進算法。
March系列算法通過有限狀態(tài)機的控制,對存儲器的每個單元進行讀寫操作,讀寫的順序會按照算法的要求,分為地址升序和降序等方式。這樣,通過算法設計的對存儲單元的各種讀寫過程,能夠測試出絕大部分存儲器故障。
常見的March系列算法包含MATS算法、March X算法、March C-算法等。各種算法的不同之處就是包含的March元素各不相同。每種March算法包含多個March元素,每個March元素都由地址變化順序、讀寫的操作和操作的數據三部分組成。用
表示讀寫的順序可以是升序,也可以是降序;
表示讀寫的順序為升序;
表示讀寫的順序為降序;
表示從存儲器單元中讀取的向量應該為第n個向量;
表示向存儲器單元中寫入第n個向量。
結束語
嵌入式存儲器的測試及可測性設計是隨著SoC的發(fā)展而逐步發(fā)展的研究領域,近些年的研究成果取得長足的進步,但是其測試難度也是相當大的,主要問題如下:無法通過芯片的封裝引腳直接訪問嵌入式存儲器,造成對嵌入式存儲器的可控制性以及可觀測性較低;任何一種測試算法都不能測試所有的故障類型,增加了測試的難度;隨著嵌入式存儲器容量的不斷增加,所花費的測試時間也不斷地增加,測試向量也越來越多,超過了目前的ATE處理能力??傊?,嵌入式存儲器測試及可測性設計仍需要廣大學者繼續(xù)努力研究。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)存儲器相關文章:存儲器原理
網線測試儀相關文章:網線測試儀原理
評論