基于MARCH算法的SRAM内建自测试设计

2013-08-23 10:46成本茂张小锋
计算机与现代化 2013年8期
关键词:原理图芯片电路

张 铜,成本茂,张小锋

(南昌航空大学信息与工程学院,江西 南昌 330063)

0 引言

随着现代武器向电子化、自动化、智能化方向发展,FPGA(Field-Programmable Gate Array,现场可编程门阵列)由于具有高密度、低功耗、高可靠性以及开发周期短、开发软件投入少、芯片价格低等优点,被广泛应用于现代武器。现代武器系统功能越来越强大,提高其可靠性和故障检测的问题就显得愈发重要。

FPGA主要有2大类:一类是反熔丝型的,另一类是SRAM型的[1]。SRAM型可以无限次地被重新编程[2],因此应用得非常广泛。在故障检测中对SRAM的检测是必不可少的。如今的检测大多都是用ATE(Auto-Test-Equipment,自动测试仪器)来进行的,而随着科技的发展,内建自测试方法正在被人们所掌握。

1 内建自测试

内建自测试 BIST(Built-In-Self-Test)[3-6]是通过设计时,在电路内部放置测试部件来实现内部的自我测试。它在芯片内扫描电路的基础上增加产生激励和进行特征分析的电路,使芯片不但能完成逻辑功能,还能在外部测试命令下进行自我测试分析并输出结果[7]。BIST的基本思想是由电路自己生成测试向量,而不是要求外部施加测试向量,依靠自身逻辑来判断所得到的测试结果是否正确。BIST完全摆脱传统的ATE设备的测试方法,其主要测试功能全部在芯片内部实现。

一般的BIST方法由BIST控制单元、测试向量生成器(TPG)和输出响应分析器(ORA)组成[8-12]。

BIST方法的最大优点是不需要专用测试仪器,只要用简单的仪器观察测试响应,校验输出结果,而且测试电路能够在电路的正常时钟频率下运行。另外,一个自测芯片即使集成到系统之后也能进行自测。

2MARCH算法

MARCH算法是由有限的操作序列组成[13]。在进行下个单元测试之前,施加MARCH测试矢量到存储器的每个单元。这意味着,如果施加特殊矢量到一个单元,则必须将它施加到所有单元。本文所用的MARCH算法如下所示:

该算法中所用到的基本符号所表示的含义如下:

3 BIST电路的实现

本文采用BIST对一个SRAM进行测试。为此,运用Verilog语言在QautusⅡ 9.0环境下实现BIST,并且进行仿真,实现对一个32个存储单元的SRAM进行检测。

这个BIST要有一个start状态输入,一个时钟频率输入,一个结果输出。为此,定义RUN_BIST为start状态输入名,clk为时钟输入名,error为结果输出名。

为实现BIST,就要实现一个BIST控制FSM(Finite State Machine)[14],这里采用 MARCH 算法。首先,BIST控制FSM一直处于空闲状态,当给控制BIST的RUN_BIST输入一有效信号时(RUN_BIST为高电平时是有效信号),开始往所有的单元里依顺序做write0操作;然后依顺序做read0操作,并且比较是否为0。如果结果正确,开始write1进相应的单元里,否则进入中止状态,再从中止状态回到初始空闲状态;然后进行read1操作,并且比较是否为1。结果一致进入下一个地址,否则进入中止状态。以下列出对0读写与比较的Verilog描述语句:

运用Verilog描述在QautusⅡ9.0环境下编译得到的元件图与原理图如图1和图2所示。

图1 编译后得到的BIST_FSM元件图

图2 编译后得到的SRAM元件图

4 电路仿真结果

为了验证是否能够真实地反映所期望的仿真结果,因此在仿真过程中对一个存在故障的SRAM模型和一个没有故障的SRAM模型分别进行仿真,并且对仿真结果进行比较。

运用Verilog语言描述得到两个SRAM模型,SRAM模型是设定为一个32单元的SRAM,每个单元为8比特大小。其中一个没有故障,另一个存在故障。仿真得到SRAM模型元件图(如图2所示),然后根据原理图(如图3所示)进行仿真得到结果如图4和图5所示。

图3 编译后得到BIST原理图

由图4和图5可以知,在有故障的SRAM模型仿真结果中,error输出得到一个高电平,表示存在故障;在没有故障的SRAM模型中,error输出的结果始终为低电平,表示没有故障。仿真结果达到了测试要求。

图4 没有故障的SRAM仿真结果

图5 有故障的SRAM仿真结果

5 结束语

在测试领域中,由于集成电路的快速发展,对测试的要求也在不断提高,ATE在未来将难以满足对FPGA的测试,而内建自测试BIST将在测试领域会应用的更广泛。本文对一个32单元的SRAM进行了测试,该测试能够正确、快速地测试出故障的存在,对于芯片SRAM模块的内建自测试有一定的指导作用。

[1]孙立波,雷加.基于SRAM型FPGA测试技术的研究[J].国外电子测量技术,2011,30(5):36-40,73.

[2]刘倩,吴丹,章婷,等.FPGA可配置资源测试方法研究[J].宇航计测技术,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电路的设计[J].半导体技术,2007,32(3):245-247.

[7]胡湘娟,何怡刚,游望星,等.基于FPGA的内建自测试的实现研究[J].计算机测量与控制,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设计[J].现代电子技术,2011,34(10):149-151.

[11]牛风举.MBIST:用于嵌入式存储器的可测试设计技术[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,Friedman 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.

猜你喜欢
原理图芯片电路
电路的保护
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
解读电路
基于Protel DXP 2004层次原理图的设计
巧用立创EDA软件和Altium Designer软件设计电路
基于MATLAB模拟混沌电路
芯片测试
多通道采样芯片ADS8556在光伏并网中的应用
关于EDA教学中Quartus II原理图输入法的探讨