|
Design of Built-in Self-Test for Flash Memory 摘要:内建自测试是一种有效的测试存储器的方法。分析了NOR型flash存储器的故障模型和测试存储器的测试算法,在此基础上,设计了flash存储器的内建自测试控制器。控制器采用了一种23位的指令,并且通过JATG接口来控制,结果通过扫描链输出。验证结果表明,设计的内建自测试结构对固定故障、转换故障、桥接故障、耦合故障、栅极干扰、漏极干扰、过渡擦除和读干扰均有100%的故障覆盖率。 关键字:flash存储器, 故障模型,内建自测试 Abstract:BIST(Built-in Self-Test)is an efficient method to test memory. This paper analyzes fault model of NOR type flash memory and test algorithm to test memory. On this base, a BIST controller for flash memory is designed. The controller adapts a 22-bits instruction and is controlled through JTAG interface. The result is transmitted by scan chain. transmitted by The results show that the BIST can get 100% fault courage for SAF、TF、AF、CF、GD、DD、OE and RD. Key words:flash memory, fault model, built-in self-test, 1 前言。 flash存储器具有成本低、密度大、掉电不丢失的特点,在存储器市场中所占的比例越来越大,已广泛地运用于各个领域。同时flash存储器的密度和复杂程度日益提高,可能存在的缺陷类型越来越多,给SOC芯片及其嵌入式存储器的测试带来了困难。研究flash存储器的测试方法具有重要的理论和实践意义。内建自测试(BIST,Built-in Self-Test)方法被广泛的用于嵌入式存储器测试,本文设计了针对嵌入式NOR型flash存储器的内建自测试。 2 Flash存储器故障模型和算法分析。 2.1故障模型[1][2]。 Flash存储器故障模型包括存储器固有故障和flash存储器的特有故障模型。固有故障有如下的故障:固定故障(SAF,Stuck-At-Fault)、转换故障(TF,Transmission Fault)、桥接故障(AF,Address decoded Fault)和耦合故障(CF,Coupling Fault)。存储器的特有故障如下: (1)栅极干扰(Gate Disturbance,GD)。GD是指对一个单元进行写操作的时候,引起同一字线上的另一个单元的误写或者是误擦。 (2)漏极干扰(Drain Disturbance,DD)。DD是指对一个单元进行写操作的时候,引起同一位线上的另一个单元的误写或者是误擦。 (3)过渡擦除(Over Eraser,OE):对一个存储单元的过渡擦除将会导致对该单元的下一次编程失效。 (4)读干扰(Read Disturbance,RD): 对一个存储单元的读操作引起该单元的误写操作。 2.2 算法分析。 在针对存储器测试的算法中, march算法有较高的故障覆盖率和较低的复杂度,被 

 3.1 控制器的设计。 控制器的结构如图1所示,控制信号端口定义如下:runbist是测试启动信号; clk是控制器时钟,频率为100MHz;flashb_end是测试结束信号,为1的时候表示测试结束。flashb_error是故障指示信号,为1的时候表示有故障,error_addr表示输出的故障地址。 在设计中,设计了一种22位的测试指令。将每一个March在元素编译成一个22位的测试指令。指令格式如表2、3所示。


在面向字内测试的指令格式中,对数据背景进行了编码。比如DB0被编码为“000”,以此类推,DB7被编码为“111”,数据背景选择位就是选择相应的数据背景。另外,在数据背景的选择中,“0”代表选择相应的数据背景的原码,“1”代表选择相应的数据背景的反码。 算法状态机采用有限状态机来控制March元素的执行进程。在完成一条测试指令也就是执行完一个March元素后,如无故障,算法状态机进行下一个March元素的测试,直至测试结束。如有故障,则停止测试,flashb_error信号输出为1,error_addr信号输出错误的地址。状态机状态转移图见图2。
 控制器具体的工作过程如下: (1)接收到测试指令后,算法控制模块将指令按编码规则进行翻译,从而控制其它模块的进行。 (2)地址生成模块生成升序或者降序地址。控制生成模块根据指令生成测试所需要的读、写和擦除控制信号。在控制器的设计中,设计了读写操作模块和擦除操作模块,这两个模块根据控制生成模块生成的控制信号分别执行相应的操作。 (3)BIST控制器每执行一个读或写操作,操作计数模块中的计数器就会加1。操作计数模块从测试指令得到March元素的操作个数。比如March元素 ,操作个数就是3。当操作计数模块的值达到测试所要求的操作个数时,操作计数器清零,开始下一轮操作计数。 (4)数据生成模块根据测试指令产生需要的数据背景或者是它的相反值,送入读写操作模块,并且将相同的数据送入数据比较模块作为期望的正确输出,数据比较模块将读出信号与期望的正确输出进行比较。如果结果有误,则算法控制模块将给算法状态机一个错误指示信号,停止测试,并且输出错误地址。 另外,MUX多路选择器是用来确定是flash存储器是与BIST控制器接口还是与系统接口。当处于测试状态下的时候,flash存储器与系统接口,处于非测试状态下的时候,flash存储器与控制器接口。 3.2 控制BIST的JTAG接口设计。 为了支持边界扫描,用FPGA实现了控制器与JTAG的接口,FPGA采用的是Spartan Ⅱ系列的XC2S100。JTAG的接口中,设计了runbist指令(指令为0001),用于启动BIST。首先进行指令扫描,输入runbist指令,启动测试。结束指令扫描。在测试结束后,进行数据扫描,将测试结果保存至寄存器,并且串行移位输出结果。
 4 验证。 在硬件验证中,为了实现对TAP控制器的控制,设计了一个基于串口通信的上层软件来发送相关的指令。存储器芯片采用spasion公司的S29AL004D90BAI020。具体的验证的结构如图3所示。 验证的仿真图如图4所示。所有的操作都是在时钟的上升沿进行。在测试到March元素为 测试指令为095000(16进制)和094000(16进制)时,测试到故障。flashb_end和flashb_error均变为1。停止测试,输出错误地址为0004(16进制)。 验证结果表明,设计flash存储器BIST各种故障的测试故障覆盖率都达到了100%。

创新点:在本文中,针对flash存储器,设计了23位的指令格式,可以在BIST控制器中兼容多种算法,March元素的测试进程采用有限状态机就来控制。控制器通过JATG接口来进行控制,接收测试结果。 参考文献 [1]Mohammand Gh. Mohammand, Laila Terlawi. Fault Collapsing for Flash Memory Disturb. Proceeding of the European Test Symposium. 2005. [2]Jen-Chieh, Chi-Feng Wu, Kuo-liang Cheng, Yung-Fa Chou, Chin-Tsun Huang and Cheng-Wen Wu, “Flash memory built-in self using March-like algorithms, ” Proc.IEEE International Workshop on Electronic Design, Test and Application, 29-31 Jan.2002,pp,137-141. [3]Buential M L, Agrawal V D. Essential of electronic testing for digital, memory and mixed –signal VLSI circuit[M]. Massachusetts:Kluwer Academic Publishers, 2000. [4]Donferenceekker R, Beenker F, Thijssen L. Fault modeling anf test algorithm development for static random access memories[A]. IEEE.International Test Conference[C].IEEE Conputer Society Press, 1988,343-351. [5] C.-F. Wu, C.-f. Huang, K.-L. Cheng, C.-W. Wu. Simulation-based Test Algorithm Generation for Random Access Memories. Proc. IEEE VLSI Test Symp. (VTS). Apr. 2000, pp. 291-296. [6]曹海源,孙世宇,张志红. 一种可编程的通用存储器仿真测试系统. 微计算机信息, 2005年第21卷第4期, 84-85页. 作者简介: 雷加:男,1962年,汉族,桂林电子科技大学教授,长期从事电子测量领域的科研、教学工作。 晏筱薇:女, 1982年,汉族,桂林电子科技大学电子工程系在读硕士研究生。研究方向为自动测试与控制。 联系方式: 邮箱:weiwei_zhy@126.com 信箱:广西壮族自治区桂林电子科技大学电子工程系CAT研究室 晏筱薇 (收) 邮编:541004
|