肖愛斌,王斐堯,王文炎,雋 揚,張雷浩,張皓源(. 中國空間技術(shù)研究院,北京 00094;.中國電子科技集團公司第58研究所,江蘇 無錫 4035)
宇航用靜態(tài)隨機存儲器驗證方法研究與應(yīng)用
肖愛斌1,王斐堯1,王文炎1,雋 揚2,張雷浩1,張皓源1
(1. 中國空間技術(shù)研究院,北京 100094;
2.中國電子科技集團公司第58研究所,江蘇 無錫 214035)
摘 要:在研究靜態(tài)隨機存儲器故障模型以及常用功能驗證方法的基礎(chǔ)上,提出采用March SOF算法結(jié)合故障注入的EDAC測試程序作為宇航用帶EDAC功能SRAM存儲器的驗證方法。該方法將March SOF算法擴展為32位字定向算法,同時增加數(shù)據(jù)保持故障以及EDAC功能的測試,可以對宇航用SRAM進行全方位功能驗證。采用實際電路,對該方法進行實現(xiàn)和驗證,驗證結(jié)果表明了方法的可行性和有效性。
關(guān)鍵詞:靜態(tài)隨機存儲器SRAM;錯誤檢測與糾正EDAC;功能驗證;March算法
受宇宙空間中輻射的影響,航天器上的靜態(tài)隨機存儲器(Static Random Access Memory,SRAM)可能會發(fā)生單粒子翻轉(zhuǎn)效應(yīng)(Signal Event Upset,SEU)。SEU可能會造成存儲器某一位的數(shù)據(jù)從一個穩(wěn)態(tài)變化到另一個穩(wěn)態(tài),而存儲器的數(shù)據(jù)變化又會使星載計算機系統(tǒng)的指令或是數(shù)據(jù)出錯,嚴重時可能導(dǎo)致整個星載計算機系統(tǒng)的崩潰。因此需要尋找一種辦法來糾錯或是容錯[1]。實現(xiàn)星載計算機SRAM容錯或糾錯的辦法有很多,采用帶EDAC功能的SRAM存儲器是最直接的辦法。
隨著工藝尺寸的不斷縮小,存儲容量的不斷擴大,SRAM存儲器的測試復(fù)雜度越來越大,為提供合格的存儲器產(chǎn)品,必須針對各種電路故障,優(yōu)化測試向量,提高產(chǎn)品的測試覆蓋率。本文通過考慮SRAM存儲器的故障模型,采用March SOF算法結(jié)合故障注入的EDAC專用測試程序作為帶EDAC功能SRAM的測試方法。將March SOF算法擴展為32位字定向算法,字定向的March SOF算法對SRAM的常見故障模型有比較高的覆蓋率,結(jié)合故障注入的EDAC專用測試程序,可以對帶EDAC功能的SRAM進行全方位功能驗證。
SRAM的故障模型[2~4]包括固定故障、轉(zhuǎn)換故障、耦合故障、地址譯碼故障、讀破壞故障、錯誤寫通故障、數(shù)據(jù)保持故障等。每種故障均可通過一些特定的測試程序來進行檢測。正常存儲單元工作狀態(tài)如圖1所示。
圖1 正常存儲單元工作狀態(tài)
固定故障如圖2所示,一般由制造缺陷引入,表現(xiàn)形式為單元或連線的邏輯值總為某個固定值,不隨著輸入的變化而變化。
轉(zhuǎn)換故障如圖3所示,一般由于單元的比率設(shè)計不合理導(dǎo)致,這樣在讀寫操作發(fā)生時,單元會發(fā)生不可控制的翻轉(zhuǎn),導(dǎo)致讀寫錯誤。檢測這兩種類型的故障,只需要分別執(zhí)行數(shù)次相反的寫和讀操作(寫0 讀0,寫1讀1),即可以根據(jù)寫讀結(jié)果一致性判斷電路相關(guān)部分是否存在故障。
圖2 存儲單元固定0/1故障示意圖
圖3 存儲單元轉(zhuǎn)換故障示意圖
在存儲陣列中存儲單元不是孤立存在的,由于寄生電容、電阻等的影響,對單元的讀寫操作,有時也會影響到鄰近的單元存儲值的變化,這就是所謂的耦合故障,如圖5所示。通常是由于工藝參數(shù)不穩(wěn)定,導(dǎo)致存儲單元的管子閾值電壓發(fā)生變化引起的。針對這種類型的故障,可以對地址進行多次不同的讀寫,然后比較每次讀寫數(shù)據(jù)的差異。
譯碼選擇故障分為行譯碼固定故障、列譯碼固定故障、選擇線故障。行/列譯碼固定故障會引入行地址選擇錯誤,如總選擇單個行故障或總選擇多行故障。
這類故障主要是在制造過程中出現(xiàn)開路或短路造成的。它的表現(xiàn)形式大多是固定故障形式,故檢測方法與固定故障的相類似,分別執(zhí)行數(shù)次相反的寫和讀操作(寫0讀0,寫1讀1),根據(jù)寫讀結(jié)果一致性判斷電路相關(guān)部分是否存在故障。
圖4 正常存儲單元的寫讀操作示意圖
圖5 存儲單元耦合故障示意圖
存儲器具有讀保持的功能,即在讀操作過程中,存儲單元內(nèi)的數(shù)據(jù)是保持不變的,但如果制造過程中存在缺陷,會使存儲器單元的數(shù)據(jù)在讀過程中發(fā)生翻轉(zhuǎn),丟失了原來保存的數(shù)據(jù),發(fā)生讀破壞故障。
如圖7所示,當執(zhí)行讀操作時,位線BL上的電荷會通過P1和M1放電,但若M1的源端沒有與地相連,此時讀操作會將節(jié)點A上的數(shù)據(jù)沖掉(由0變1)。該類故障的檢測比較簡單,只需對發(fā)生故障的單元進行一次寫后,再執(zhí)行多次讀操作,會發(fā)現(xiàn)每次讀出的數(shù)據(jù)都在變化,如此即可檢測是否存在故障。
圖6 地址譯碼故障示意圖
圖7 讀破壞故障示意圖
錯誤寫通故障發(fā)生在寫控制電路的數(shù)據(jù)輸入端與位線之間相連的地方,一般是寫控制電路出現(xiàn)橋接,致使數(shù)據(jù)輸入端直接與位線相連通,如圖8所示,最終導(dǎo)致整條位線上的讀操作發(fā)生故障。這種故障會使整列單元的讀操作失效,故檢測時按列遍歷執(zhí)行先寫后讀即可。
圖8 錯誤寫通故障的兩種類型
數(shù)據(jù)保持故障是電路制造過程中產(chǎn)生的寄生電阻、電容等致使存儲單元發(fā)生異常,在待機模式下,存儲單元不能保持原有數(shù)據(jù)的一類故障。要檢測這類故障,需要在測試中引入一段等待時間。這段時間內(nèi)存儲器片選無效,不做任何操作,隨后使片選有效,讀取單元數(shù)據(jù),比較進入待機模式前寫入數(shù)據(jù)與讀出數(shù)據(jù)的一致性就能判斷是否發(fā)生該類故障。
在存儲器測試方面,考慮到大容量存儲器的測試時間較長,因此需要選擇既能覆蓋故障又能不太費機時的測試方法。目前在存儲器測試技術(shù)上有全0全1測試、正反棋盤格測試、March測試等多種算法。
全0全1測試算法對行列中的每一位存儲單元進行全0和全1的寫入讀出操作,可以完成存儲單元固定故障和部分地址譯碼故障的檢測。此算法測試時間比較短,能很快檢測存儲器的功能,但是故障覆蓋率很低。
正反棋盤格測試算法與全0全1算法類似,不同的是它對行列中的每一位存儲單元進行正反棋盤格寫入讀出操作,所以它不僅能快速檢測存儲器的固定故障,還能檢測地址譯碼故障和讀寫故障。由于只是寫入數(shù)據(jù)不同,故該算法的測試時間與全0全1測試算法相同。棋盤格的測試圖形如圖9所示,操作順序見圖10。
圖9 正反棋盤格測試
圖10 棋盤圖案法的操作順序
兩種測試算法的比較結(jié)果見表1,正反棋盤格測試算法在故障覆蓋率上要遠勝于全0全1測試算法。
因此在測試時,如果只想大致了解存儲器的情況,快速排除一些常見故障(固定故障),正反棋盤格測試算法相對較好。
表1 兩種測試算法的比較
測試存儲器推進法(March測試算法)廣泛應(yīng)用在存儲器的生產(chǎn)測試中。它先將存儲單元寫成全“0”狀態(tài),然后從最低地址到最高地址連續(xù)地讀“0”和改寫“1”為止。接著,在數(shù)據(jù)相反的情況下,由最高地址到最低地址重復(fù)上述過程。具體的測試序列跟實際測試相關(guān),測試序列不同,所能檢測的故障也各異。為此出現(xiàn)了很多種March序列,傳統(tǒng)的有March B、March SR、March C-、March C+和March SOF等測試序列[3~4]。為了選用故障覆蓋率比較高的序列,我們著重分析比較了這幾種算法的優(yōu)劣。表2是5種March算法的測試序列,它們每一步執(zhí)行的操作都不相同,序列的長短與測試時間成正比。
表2 測試算法與測試序列
表3是5種March序列對典型故障的覆蓋率情況。從表中可以看出,March B所需要的測試時間最多,測試的故障覆蓋率也比較差,而March C-是耗時最少的序列,但它也不能覆蓋所有典型的故障;March SOF和March C+的測試時間相對于March C-而言稍長些,但其對故障的覆蓋率卻是最高的。在傳統(tǒng)的March測試中一般都選取March C-,但為了檢測所有的故障,March SOF和March C+應(yīng)該是比較好的測試序列。
表3 測試序列與故障檢測情況
4.1帶EDAC防護的SRAM存儲器
航天器用JMR512k32型帶EDAC防護的SRAM存儲器是一款高性能抗輻照SRAM,存儲容量為16 M(512 k×32)位,內(nèi)置兩組EDAC模塊,每組EDAC均可實現(xiàn)糾1檢2的功能并指示位錯誤類型。器件通過片選信號(nCE)及寫使能信號(nWE)、輸出使能信號(nOE)可實現(xiàn)器件讀寫操作,內(nèi)置兩組(22, 16)的EDAC(糾1檢2)模塊,可實現(xiàn)對高低16位的編解碼糾檢錯,通過nEDAC_EN信號選擇該功能模塊的使能。
器件分為陣列、譯碼、控制、數(shù)據(jù)讀寫與EDAC 5個大部分。陣列部分是所有存儲單元的集合,它是單元按順序排列起來的單元塊。譯碼部分的作用是將輸入的地址信號轉(zhuǎn)換成可以在單元陣列中選中恰當單元的字選和列選信號??刂撇糠值淖饔檬峭瓿勺x寫的邏輯控制及產(chǎn)生異步時序控制信號。數(shù)據(jù)讀寫電路的作用是完成數(shù)據(jù)陣列與單元之間的通信。EDAC的作用是對數(shù)據(jù)位進行錯誤檢測與糾正,兩組EDAC SRAM模塊具備獨立的兩組(22, 16)編碼解碼設(shè)計,每組均具備糾1檢2功能。
電路功能框圖如圖11所示,器件的真值表如表4所示。
圖11 JMR512k32功能框圖
4.2功能驗證方案
根據(jù)第3章的分析,考慮測試算法復(fù)雜度和故障覆蓋率,March SOF算法是較好的選擇[5]。其算法的復(fù)雜度為11N(N為存儲器存儲單元數(shù)),對固定故障、轉(zhuǎn)換故障、耦合故障、地址譯碼故障、讀破壞故障、錯誤寫通故障、數(shù)據(jù)保持故障的故障覆蓋率為100%。
表5介紹的是面向“位”存儲器的March算法,而JMR512k32存儲器是按32位進行存儲的。對于面向32位存儲器的March測試算法,可通過對面向“位”的存儲器測試算法修改測試數(shù)據(jù)背景時序得到。根據(jù)文獻[6]所述,使用任意一個數(shù)據(jù)背景就可測所有的固定故障、轉(zhuǎn)換故障、地址譯碼故障、讀破壞故障、錯誤寫通故障和字間耦合故障,對于32位的存儲器,測試字內(nèi)的耦合故障的數(shù)據(jù)背景時序如表6所示。
表4 器件真值表
表5 面向位的March SOF算法
對于數(shù)據(jù)保持故障,March元素中只需包含Del就可覆蓋數(shù)據(jù)保持故障(Del為延時元素,通常設(shè)為100 ms[3]),并且對于面向“字”的存儲器,只需對其中一對互為反碼的數(shù)據(jù)背景進行數(shù)據(jù)保持故障測試。因此,經(jīng)優(yōu)化后,面向“字”的March SOF算法如表7所示。對于EDAC功能的驗證,采用故障注入的方式進行,具體方法如下:
先將EDAC功能打開,連續(xù)寫入三個地址的數(shù)據(jù);之后將EDAC功能關(guān)閉,改寫其中一個地址的數(shù)據(jù),可以改寫單位,也可以改寫多位;然后將EDAC功能打開,回讀3個地址的數(shù)據(jù),對比讀出數(shù)據(jù)的正確性,同時觀察翻轉(zhuǎn)標志信號;重復(fù)以上步驟直至覆蓋所有地址空間的每個數(shù)據(jù)位,包括單錯和雙錯兩種情況。
表6 字內(nèi)的耦合故障測試數(shù)據(jù)背景時序
4.3方案實施
JMR512k32驗證板由數(shù)字信號處理器(TMS320C6701)、存儲器(SRAM、FLASH)、看門狗芯片和電源轉(zhuǎn)換器組成;JMR512k32驗證板測試程序運行在TMS320C6701內(nèi)部存儲器,測試程序?qū)崿F(xiàn)對FLASH芯片的讀寫和擦除功能、看門狗芯片喂狗功能和JMR512k32 SRAM的測試功能,JMR512k32僅作為數(shù)據(jù)存儲器。
表7 面向字(32位)的March SOF 算法
JMR512k32驗證板SRAM測試方法包括March算法測試、SRAM檢錯測試(1位注錯測試)和SRAM糾錯測試(2位注錯測試),具體的測試流程如下:
(1)系統(tǒng)初始化包括中斷控制器初始化,定時器0、定時器1初始化,Mcbsp串口通信初始化和變量初始化;
(2)測試過程1:開啟JMR512k32的EDAC模式,進行March算法測試含表7所示的22個測試步驟,每個測試步驟的測試結(jié)果用Mcbsp串口發(fā)送給上位機Labview測試程序;
(3)測試過程2:關(guān)閉JMR512k32的EDAC模式,進行March算法測試含表7所示的22個測試步驟,每個測試步驟的測試結(jié)果用Mcbsp串口發(fā)送給上位機Labview測試程序;
(4)測試過程3:1位注錯測試,先進行低16位測試,然后進行高16位測試,最后進行低16位和高16 位同時測試;每個測試步驟的測試結(jié)果用Mcbsp串口發(fā)送給上位機Labview測試程序;
(5)測試過程4:2位注錯測試,先進行低16位測試,然后進行高16位測試,最后進行低16位和高16位同時測試;每個測試步驟的測試結(jié)果用Mcbsp串口發(fā)送給上位機Labview測試程序;
(6)重復(fù)步驟2~ 步驟5。
采用本功能驗證方案,該器件進行了25.5次(時間12天)的熱循環(huán)試驗,器件功能正常。
圖12 JMR512K32驗證板原理框圖
本文采用March SOF算法與故障注入的EDAC專用測試程序相結(jié)合的方法,對存儲器進行了全方位完備的測試。首先通過March SOF算法對固定故障、轉(zhuǎn)換故障、耦合故障、地址譯碼故障、讀破壞故障、錯誤寫通故障、數(shù)據(jù)保持故障達到100%覆蓋率,之后通過故障注入的EDAC專用測試程序進行EDAC功能驗證。實踐證明,這種測試法能快速檢查出存儲單元固定0/1故障、轉(zhuǎn)換故障、鄰近單元讀寫干擾故障(耦合故障)、譯碼選擇故障和數(shù)據(jù)保持故障等典型故障,最終通過較快速與完備的手段完成該器件的測試,保證了測試質(zhì)量與效率。
參考文獻:
[1] 林博. 存儲芯片糾檢錯電路設(shè)計與FPGA實現(xiàn)[D]. 哈爾濱:哈爾濱工業(yè)大學(xué),2007.
[2] Rob Dekker. A realistic fault model and test algorithm for static random access memories [J]. IEEE Transactions on Computer-Aided Design, 1990, 9(6): 567-572.
[3] Van de Goor AD J. Using March Tests to Test SRAMs [J]. IEEE Design and Test of Computers, 1993, 10, 8-14.
[4] Sultan M Al-Harbi. An efficient methodology for generating optimal and uniform march tests [A]. VLSI Test Symposium 2001 Proceedings [C], 2001. 231-237.
[5] Van de Goor AD J. March LR, a test for realistic linked faults [A]. 14th IEEE VLSI Test Symposium [C]. Princeton, 1996. 272-280.
[6] Van de Goor AD J.March tests for word-oriented memories [A]. Design Automation and Test in Europe Proceedings [C], 1998. 501-508.
肖愛斌(1982—),男,湖南邵陽人,碩士,畢業(yè)于中國空間技術(shù)研究院計算機應(yīng)用技術(shù)專業(yè),目前在中國空間技術(shù)研究院從事航天器用電子元器件質(zhì)量保證工作。
本文介紹了最大壓力約0.1 MPa下的壓力傳感器封裝中的波紋膜片的結(jié)構(gòu)優(yōu)化設(shè)計。利用了有限元分析方法對不銹鋼波紋膜片的厚度、波紋深度和波紋數(shù)目進行了分析與對比。通過對封裝后的壓力傳感器樣品的測試,反映了不銹鋼波紋膜片各個參數(shù)值的不同對壓力傳感器輸出性能的影響,表明了較小的膜厚與波紋深度、較多的波紋數(shù)目有助于提高壓力傳感器的性能,從而驗證了對波紋膜片優(yōu)化設(shè)計的可靠性與可行性,為波紋膜片的設(shè)計提供了有價值的參考。
[1] 付興銘,譚六喜,姚媛,劉勝. 壓力傳感器封裝中波紋膜片的結(jié)構(gòu)優(yōu)化[J]. 傳感器與微系統(tǒng),2007, 07: 80-81, 84.
[2] 劉春香,劉喜平,苗淑杰,李榮智. 圓弧形波紋膜片的設(shè)計計算[J]. 機械工程師,2012, 12: 15-16.
[3] 郭長旭,龐士信,張治國. 波紋膜片性能分析[J]. 儀表技術(shù)與傳感器,2010, 04: 9-10, 55.
[4] 付興銘. 汽車用擴散硅壓力傳感器的設(shè)計與封裝研究[D]. 華中科技大學(xué),2007.
[5] 劉春香,王東勝,段成燕,王金玲,郭麗娟. 深度傳感器中波紋膜片的設(shè)計[J]. 黑龍江科技信息,2013, 29: 29, 256.
[6] 袁鴻. 波紋膜片非線性力學(xué)進展[J]. 暨南大學(xué)學(xué)報(自然科學(xué)版),2009, 30(05): 18-21.
[7] 劉元浩,趙立波,趙玉龍,蔣莊德,田邊,孟超. 基于壓力傳感器封裝的波紋膜片的結(jié)構(gòu)研究[J]. 傳感器世界,2008, 12: 12-15.
Research and Application of the Validation Method of Static Random Access Memory for Space Application
XIAO Aibin1, WANG Feiyao1, WANG Wenyan1, JUAN Yang2, ZHANG Leihao1, ZHANG Haoyuan1
(1. China Academy of Space Technology, Beijing 100094, China; 2. China Electronics Technology Group Corporation No.58 Research Institute, Wuxi 214035, China)
Abstract:On the basis of research on the failure model and normal function validation method of SRAM, the article presents EDAC test program based on March SOF with failure injection for validation of EDAC SRAM for space application. This method expands March SOF algorithm to 32-bit directional algorithm, and also adds data-hold failure and EDAC function tests, which completes the SRAM function validation. The validation result shows the feasibility and efficiency of this method with real circuits on board.
Key words:SRAM; error detection and correction; function validation; March algorithm
中圖分類號:TN402, V446
文獻標識碼:A
文章編號:1681-1070(2015)05-0014-07
收稿日期:2015-04-27
作者簡介:
王俊杰(1989—),男,浙江寧波人,碩士研究生,主要研究方向為傳感器封裝技術(shù);
秦會斌(1961—),男,山東人,教授,博士,主要研究方向為新型材料與器件、現(xiàn)代傳感器設(shè)計及應(yīng)用。