叢紅艷,閆 華,胡 凱,張艷飛
(無錫中微億芯有限公司,江蘇無錫214072)
?
一種基于Scanchain的Block RAM的MBIST設(shè)計(jì)方法
叢紅艷,閆華,胡凱,張艷飛
(無錫中微億芯有限公司,江蘇無錫214072)
摘要:基于March C+算法,設(shè)計(jì)了一種基于Scan chain的Block RAM為測(cè)試對(duì)象的串/并行BIST電路。在電路內(nèi)部自身生成測(cè)試向量,不需要外部施加激勵(lì),并依靠自身決定得到測(cè)試結(jié)果是否正確。該電路既可以有效對(duì)Block RAM進(jìn)行準(zhǔn)確校驗(yàn)和故障定位,又不會(huì)因BIST測(cè)試增加PAD的數(shù)量。最后,對(duì)設(shè)計(jì)方法結(jié)果進(jìn)行了仿真驗(yàn)證。
關(guān)鍵字:MarchC+算法;BIST電路;故障定位
FPGA電路測(cè)試中,測(cè)試激勵(lì)的多種測(cè)試方法都有一定局限性,不能找出所有的故障,而且隨著設(shè)計(jì)規(guī)模和設(shè)計(jì)難度的增加,F(xiàn)PGA電路中Block RAM (BRAM)模塊在其中所占面積的比例也越來越大,使得FPGA可以存儲(chǔ)越來越復(fù)雜的程序和數(shù)據(jù),這種趨勢(shì)不但增加軟硬件協(xié)同設(shè)計(jì)的難度,在芯片的成品率控制和故障檢測(cè)方面也引發(fā)了新的技術(shù)難題。因此,本文采用了一種基于Scan chain的內(nèi)建自測(cè)試Memory bist測(cè)試方法,完成對(duì)BRAM模塊故障的檢測(cè)和定位。雖然Memory bist電路會(huì)占用芯片面積,但是可以有效縮短測(cè)試時(shí)間,在BRAM模塊測(cè)試中起著很大的作用。
目前,MBIST算法主要有5種,分別是MATS算法、MATS+算法、March B算法、March C算法、March C+算法。一般來說,沒有一種算法是限于一種特定結(jié)構(gòu)的,然而不同的算法卻限定了不同的故障類型[1]。一方面,面向圖形敏感故障而進(jìn)行的周圍數(shù)據(jù)擾亂和API測(cè)試,這些算法對(duì)實(shí)際故障覆蓋率較低,而且測(cè)試時(shí)間很長。另一方面,面向耦合故障的算法可以提供出色的物理缺陷和實(shí)際故障覆蓋率且耗時(shí)短,因此耦合故障是一種很好的故障模型。選擇好故障模型,究竟采取哪種測(cè)試算法最能有效地檢測(cè)出Block RAM中的故障,需要對(duì)上述5種算法的故障覆蓋率做一個(gè)分析研究,如圖1所示。
圖1 各種算法的故障覆蓋率
從圖1可以看出,March C+算法故障覆蓋率最高,是一種很好的存儲(chǔ)器測(cè)試算法,因此根據(jù)Block RAM結(jié)構(gòu)的故障類型來確定采用March C+算法。
采用基于March C+算法把整個(gè)測(cè)試分成6個(gè)階段[2]:
(1)按照存儲(chǔ)器地址升序?qū)Υ鎯?chǔ)器每個(gè)地址位的存儲(chǔ)空間寫0操作;
(2)按照存儲(chǔ)器地址升序?qū)Υ鎯?chǔ)器每個(gè)地址位的存儲(chǔ)空間讀0寫1讀1操作;
(3)按照存儲(chǔ)地址升序?qū)Υ鎯?chǔ)器每個(gè)地址位的存儲(chǔ)空間讀1寫0讀0操作;
(4)按照存儲(chǔ)器地址降序?qū)Υ鎯?chǔ)器每個(gè)地址位的存儲(chǔ)空間讀0寫1讀1操作;
(5)按照存儲(chǔ)器地址降序?qū)Υ鎯?chǔ)器每個(gè)地址位的存儲(chǔ)空間讀1寫0讀0操作;
(6)按照存儲(chǔ)器地址降序?qū)Υ鎯?chǔ)器每個(gè)地址位的存儲(chǔ)空間讀0操作。
即可表示為:
(1)(寫0)↑;
(2)(讀0寫1讀1)↑;
(3)(讀1寫0讀0)↑;
(4)(讀0寫1讀1)↓;
(5)(讀1寫0讀0)↓;
(6)(讀0)↓。
由此可見,March C+算法是改進(jìn)的March C算法,是對(duì)存儲(chǔ)器單元按照地址升序或降序逐個(gè)向存儲(chǔ)單元寫入測(cè)試向量,同時(shí)將響應(yīng)讀出,這個(gè)算法的故障覆蓋率高達(dá)95%,可以包括固定故障[3]、狀態(tài)轉(zhuǎn)換故障、尋址故障以及耦合故障[4]等。
18 kbit真雙口BRAM采用基于SMIC 40 nm工藝的Artisan Memory Compiler軟件編譯產(chǎn)生。由Artisan Memory Compiler產(chǎn)生的1 k×18 bit的Memory稱作BRAM18K,BRAM18K的Basic pins作為用戶實(shí)現(xiàn)BRAM邏輯功能的pins腳,BRAM18K的BIST Multiplexor pins與Mbist模塊連接關(guān)系如圖2所示。
圖2 Mbist模塊與BRAM 1k×18模塊端口對(duì)應(yīng)關(guān)系
在整個(gè)Mbist模塊電路中有4個(gè)外部輸入信號(hào)。分別是b_te,b_rst_n,b_clk,ram_read_out[17:0]信號(hào),其中b_te為Mbist測(cè)試使能信號(hào),高電平有效,表示電路進(jìn)入測(cè)試模式。b_rst_n為Mbist復(fù)位信號(hào),低電平有效。輸出信號(hào)為b_done,b_fail,b_done=1,表示測(cè)試已經(jīng)完畢,b_fail=1表示發(fā)現(xiàn)數(shù)據(jù)錯(cuò)誤,整個(gè)電路停止工作,b_fail=0表示芯片測(cè)試無錯(cuò)誤。
本設(shè)計(jì)中BRAM以36 kb為基本單元共用一個(gè)bist,144 kb串/并行測(cè)試,Bram1k×36支持A port bist功能,其簡(jiǎn)化關(guān)系如圖3所示。
圖3 Mbist模塊與BRAM 1k×36模塊簡(jiǎn)化對(duì)應(yīng)關(guān)系
其中MBIST模塊的test_ctrl_in信號(hào)來自Scan chain信號(hào),各個(gè)Scan chain信號(hào)既可以串聯(lián)成一個(gè)Scan chain,也可以并聯(lián)起來,其串或并行測(cè)試的機(jī)理圖如圖4所示。
圖4 Scan chain控制MBIST結(jié)構(gòu)圖
首先在Bbist_shift信號(hào)有效、Bbist_scanclk上升沿的條件下,數(shù)據(jù)由Bbist_tdi輸入到Mbist使能模塊中,產(chǎn)生Mbist測(cè)試使能信號(hào)Mbist_en,Mbist復(fù)位信號(hào)Mbist_rst,Mbist時(shí)鐘信號(hào)Mbist_clk,控制一部分的Mbist工作,測(cè)試完成后結(jié)果由Bbist_tdo輸出。本設(shè)計(jì)中BRAM以36 kb為基本單元共用一個(gè)bist,u0模塊的輸出信號(hào)bbist_tdo連接到u1模塊的輸入信號(hào)bbist_tdi,u1模塊的輸出信號(hào)bbist_tdo連接到u2模塊的輸入信號(hào)bbist_tdi,u3模塊的輸出信號(hào)bbist_tdo作為測(cè)試完成后的輸出結(jié)果,最終可實(shí)現(xiàn)4個(gè)36 kb BRAM同時(shí)并行或串行測(cè)試。測(cè)試過程中,等待bist_done_u(0,1,2,3)=1信號(hào)時(shí),bbist_shift信號(hào)拉低,如果bist_fail_u(0,1,2,3)=0,輸出Test_pass_u(0,1,2,3)表示芯片測(cè)試無錯(cuò)誤;否則,Test_fail_u(0,1,2,3)表示芯片測(cè)試發(fā)現(xiàn)數(shù)據(jù)錯(cuò)誤。整個(gè)Memory BIST結(jié)構(gòu)簡(jiǎn)單清楚,使用方便。
采用基于verilog行為級(jí)描述的RTL代碼Bist_dp_Bram_1kX36.v,建立整個(gè)仿真驗(yàn)證環(huán)境,利用Cadence公司仿真工具NC進(jìn)行設(shè)計(jì)仿真驗(yàn)證。其中圖5為March C+算法,圖6為Block RAM的MBIST設(shè)計(jì)結(jié)果。
從圖5的仿真結(jié)果可以看出,March C+算法根據(jù)存儲(chǔ)器的故障類型來確定算法,data_test [35:0]、ram_read_out[35:0]交替進(jìn)行寫0、寫1、讀0、讀1操作。
圖5 March C+算法
從圖6的仿真結(jié)果可以看出,測(cè)試信號(hào)b_done=1表示測(cè)試結(jié)束,b_fail=0表示BRAM沒有故障存在,整個(gè)設(shè)計(jì)是正確的。
圖6 Block RAM的MBIST設(shè)計(jì)結(jié)果
本文采用March C+算法應(yīng)用于MBIST可以對(duì)雙端口BRAM進(jìn)行串或并行測(cè)試,且檢測(cè)的速度很快,該BIST結(jié)構(gòu)簡(jiǎn)單易用,不需要外部施加激勵(lì),并向系統(tǒng)返回測(cè)試結(jié)果,增加了整個(gè)測(cè)試的靈活性,能夠滿足大規(guī)模FPGA電路BRAM的測(cè)試需要,實(shí)現(xiàn)對(duì)BRAM的準(zhǔn)確檢測(cè)和故障定位,并且DC綜合面積是36 kB BRAM面積的1%,并不影響整個(gè)芯片的面積,從而達(dá)到了預(yù)想的結(jié)果。
參考文獻(xiàn):
[1]申志飛,梅春雷.基于March C+改進(jìn)算法的Mbist設(shè)計(jì)[D].合肥工業(yè)大學(xué),2011.
[2]殷景華.基于March C+算法的存儲(chǔ)器內(nèi)建自測(cè)設(shè)計(jì)與仿真[D].哈爾濱理工大學(xué),2009.
[3] PRINCE B. Semiconductor memories [M]. New York: John Wilry,1991.
[4] VAND G. Using march test to test SRAM [J]. IEEE Design &Test ,1993,10(1):8-14.
叢紅艷(1983—),女,山東威海人,碩士,工程師,研究方向?yàn)榍f門級(jí)FPGA設(shè)計(jì)與驗(yàn)證。
A Design of MBIST Based on Scan Chain Block RAM
CONG Hongyan, YAN Hua, HU Kai, ZHANG Yanfei
(East Technologies, Inc, Wuxi 214072, China)
Abstract:In the paper, the algorithm based on March C+ designing a serial/parallel BIST of Based onScan chain dual port Block RAM. The cirtuit generate the test vector, not require an external stimulus, and rely on their own decisions and get the test result is correct, the circuit notonly can be effective for BRAM accurately check and fault location, but also cannot increase the number of PAD. Finally, the paper show the system simulation.
Keywords:the algorithm based on March C+; BIST cirtuit; fault local
作者簡(jiǎn)介:
收稿日期:2016-1-28
中圖分類號(hào):TN402
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1681-1070(2016)04-0021-03