張 銅,成本茂,張小鋒
(南昌航空大學(xué)信息與工程學(xué)院,江西 南昌 330063)
隨著現(xiàn)代武器向電子化、自動(dòng)化、智能化方向發(fā)展,F(xiàn)PGA(Field-Programmable Gate Array,現(xiàn)場(chǎng)可編程門(mén)陣列)由于具有高密度、低功耗、高可靠性以及開(kāi)發(fā)周期短、開(kāi)發(fā)軟件投入少、芯片價(jià)格低等優(yōu)點(diǎn),被廣泛應(yīng)用于現(xiàn)代武器。現(xiàn)代武器系統(tǒng)功能越來(lái)越強(qiáng)大,提高其可靠性和故障檢測(cè)的問(wèn)題就顯得愈發(fā)重要。
FPGA主要有2大類(lèi):一類(lèi)是反熔絲型的,另一類(lèi)是SRAM型的[1]。SRAM型可以無(wú)限次地被重新編程[2],因此應(yīng)用得非常廣泛。在故障檢測(cè)中對(duì)SRAM的檢測(cè)是必不可少的。如今的檢測(cè)大多都是用ATE(Auto-Test-Equipment,自動(dòng)測(cè)試儀器)來(lái)進(jìn)行的,而隨著科技的發(fā)展,內(nèi)建自測(cè)試方法正在被人們所掌握。
內(nèi)建自測(cè)試 BIST(Built-In-Self-Test)[3-6]是通過(guò)設(shè)計(jì)時(shí),在電路內(nèi)部放置測(cè)試部件來(lái)實(shí)現(xiàn)內(nèi)部的自我測(cè)試。它在芯片內(nèi)掃描電路的基礎(chǔ)上增加產(chǎn)生激勵(lì)和進(jìn)行特征分析的電路,使芯片不但能完成邏輯功能,還能在外部測(cè)試命令下進(jìn)行自我測(cè)試分析并輸出結(jié)果[7]。BIST的基本思想是由電路自己生成測(cè)試向量,而不是要求外部施加測(cè)試向量,依靠自身邏輯來(lái)判斷所得到的測(cè)試結(jié)果是否正確。BIST完全擺脫傳統(tǒng)的ATE設(shè)備的測(cè)試方法,其主要測(cè)試功能全部在芯片內(nèi)部實(shí)現(xiàn)。
一般的BIST方法由BIST控制單元、測(cè)試向量生成器(TPG)和輸出響應(yīng)分析器(ORA)組成[8-12]。
BIST方法的最大優(yōu)點(diǎn)是不需要專(zhuān)用測(cè)試儀器,只要用簡(jiǎn)單的儀器觀察測(cè)試響應(yīng),校驗(yàn)輸出結(jié)果,而且測(cè)試電路能夠在電路的正常時(shí)鐘頻率下運(yùn)行。另外,一個(gè)自測(cè)芯片即使集成到系統(tǒng)之后也能進(jìn)行自測(cè)。
MARCH算法是由有限的操作序列組成[13]。在進(jìn)行下個(gè)單元測(cè)試之前,施加MARCH測(cè)試矢量到存儲(chǔ)器的每個(gè)單元。這意味著,如果施加特殊矢量到一個(gè)單元,則必須將它施加到所有單元。本文所用的MARCH算法如下所示:
該算法中所用到的基本符號(hào)所表示的含義如下:
本文采用BIST對(duì)一個(gè)SRAM進(jìn)行測(cè)試。為此,運(yùn)用Verilog語(yǔ)言在QautusⅡ 9.0環(huán)境下實(shí)現(xiàn)BIST,并且進(jìn)行仿真,實(shí)現(xiàn)對(duì)一個(gè)32個(gè)存儲(chǔ)單元的SRAM進(jìn)行檢測(cè)。
這個(gè)BIST要有一個(gè)start狀態(tài)輸入,一個(gè)時(shí)鐘頻率輸入,一個(gè)結(jié)果輸出。為此,定義RUN_BIST為start狀態(tài)輸入名,clk為時(shí)鐘輸入名,error為結(jié)果輸出名。
為實(shí)現(xiàn)BIST,就要實(shí)現(xiàn)一個(gè)BIST控制FSM(Finite State Machine)[14],這里采用 MARCH 算法。首先,BIST控制FSM一直處于空閑狀態(tài),當(dāng)給控制BIST的RUN_BIST輸入一有效信號(hào)時(shí)(RUN_BIST為高電平時(shí)是有效信號(hào)),開(kāi)始往所有的單元里依順序做write0操作;然后依順序做read0操作,并且比較是否為0。如果結(jié)果正確,開(kāi)始write1進(jìn)相應(yīng)的單元里,否則進(jìn)入中止?fàn)顟B(tài),再?gòu)闹兄範(fàn)顟B(tài)回到初始空閑狀態(tài);然后進(jìn)行read1操作,并且比較是否為1。結(jié)果一致進(jìn)入下一個(gè)地址,否則進(jìn)入中止?fàn)顟B(tài)。以下列出對(duì)0讀寫(xiě)與比較的Verilog描述語(yǔ)句:
運(yùn)用Verilog描述在QautusⅡ9.0環(huán)境下編譯得到的元件圖與原理圖如圖1和圖2所示。
圖1 編譯后得到的BIST_FSM元件圖
圖2 編譯后得到的SRAM元件圖
為了驗(yàn)證是否能夠真實(shí)地反映所期望的仿真結(jié)果,因此在仿真過(guò)程中對(duì)一個(gè)存在故障的SRAM模型和一個(gè)沒(méi)有故障的SRAM模型分別進(jìn)行仿真,并且對(duì)仿真結(jié)果進(jìn)行比較。
運(yùn)用Verilog語(yǔ)言描述得到兩個(gè)SRAM模型,SRAM模型是設(shè)定為一個(gè)32單元的SRAM,每個(gè)單元為8比特大小。其中一個(gè)沒(méi)有故障,另一個(gè)存在故障。仿真得到SRAM模型元件圖(如圖2所示),然后根據(jù)原理圖(如圖3所示)進(jìn)行仿真得到結(jié)果如圖4和圖5所示。
圖3 編譯后得到BIST原理圖
由圖4和圖5可以知,在有故障的SRAM模型仿真結(jié)果中,error輸出得到一個(gè)高電平,表示存在故障;在沒(méi)有故障的SRAM模型中,error輸出的結(jié)果始終為低電平,表示沒(méi)有故障。仿真結(jié)果達(dá)到了測(cè)試要求。
圖4 沒(méi)有故障的SRAM仿真結(jié)果
圖5 有故障的SRAM仿真結(jié)果
在測(cè)試領(lǐng)域中,由于集成電路的快速發(fā)展,對(duì)測(cè)試的要求也在不斷提高,ATE在未來(lái)將難以滿(mǎn)足對(duì)FPGA的測(cè)試,而內(nèi)建自測(cè)試BIST將在測(cè)試領(lǐng)域會(huì)應(yīng)用的更廣泛。本文對(duì)一個(gè)32單元的SRAM進(jìn)行了測(cè)試,該測(cè)試能夠正確、快速地測(cè)試出故障的存在,對(duì)于芯片SRAM模塊的內(nèi)建自測(cè)試有一定的指導(dǎo)作用。
[1]孫立波,雷加.基于SRAM型FPGA測(cè)試技術(shù)的研究[J].國(guó)外電子測(cè)量技術(shù),2011,30(5):36-40,73.
[2]劉倩,吳丹,章婷,等.FPGA可配置資源測(cè)試方法研究[J].宇航計(jì)測(cè)技術(shù),2012,32(1):65-68.
[3]Benso A,Carlo S D,Natale G D,et al.A programmable BIST architecture for clusters of multiple-port SRAMs[C]//Proceedings of the 2000 IEEE International Test Conference.2000:557-566.
[4]Hamdioui S,Van de Goor A J.Consequence of port restrictions on testing two-port memories[C]//Proceedings of the 1998 IEEE International Test Conference.1998:63-72.
[5]IEEE Std 1149.12-1990,IEEE Standard Test Access Port and Boundary Scan Architecture[S].
[6]須自明,蘇彥鵬,于宗光.基于MARCH C-算法的SRAM BIST電路的設(shè)計(jì)[J].半導(dǎo)體技術(shù),2007,32(3):245-247.
[7]胡湘娟,何怡剛,游望星,等.基于FPGA的內(nèi)建自測(cè)試的實(shí)現(xiàn)研究[J].計(jì)算機(jī)測(cè)量與控制,2009,17(12):2355-2357.
[8]Smith J,Xia T,Stroud C.An automated BIST architecture for testing and diagnosing FPGA interconnect faults[J].Journal of Electronic Testing,2006,22(3):239-253.
[9]Ehsan Atoofian,Zainalabedin Navabi.A test approach for look-up table based FPGAs[J].Journal of Computer Science and Technology,2006,21(1):141-146.
[10]張志超,侯立剛,吳武臣.基于 MARCH C+算法的SRAM BIST設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(10):149-151.
[11]牛風(fēng)舉.MBIST:用于嵌入式存儲(chǔ)器的可測(cè)試設(shè)計(jì)技術(shù)[EB/OL].http://bbs.ednchina.com/BLOG_ARTICLE_130605.HTM,2008-07-03.
[12]Wang Chih-Wea,Wu Chi-Feng,Li Jin-Fu,et al.A builtin self-test and self-diagnosis scheme for embedded SRAM[C]//Proceedings of the Ninth Asian Test Symposium.2000:45-50.
[13]Breuer M,F(xiàn)riedman A.Diagnosis and Reliable Design of Digital Systems[M].Woodland Hills:CA,USA:Computer Science Press.1976.
[14]Ivanyuk A A,Yarmolik V N.A new approach to the design of built-in internal memory self-testing devices[J].Automatic Control and Computer Sciences,2008,42(4):169-174.