您的当前位置:首页正文

SOC中的MBIST设计

2023-12-13 来源:九壹网
SOC中的MBIST设计

桂江华;钱黎明;申柏泉;周毅

【摘 要】随着超大规模集成电路的发展,设计的集成度越来越高,基于IP的SOC设计正在成为IC设计的主流.为了确保SOC的功能正确,可测性设计(Design for Test,简称DFT)显得尤为关键.DFT设计包括扫描设计、JTAG设计和BIST设计.另外,当前SOC芯片中集成了大量的存储器,为了确保存储器没有故障,基于存储器的内建自测试显得很有必要.文章主要阐述如何用ARM JTAG来控制MBIST,这样既能节约硬件开销又能达到DFT设计的目的.

【期刊名称】《电子与封装》

【年(卷),期】2011(011)001

【总页数】4页(P26-28,36)

【关键词】SOC;JTAG;内建自测试

【作 者】桂江华;钱黎明;申柏泉;周毅

【作者单位】中国电子科技集团公司第58研究所,江苏,无锡,214035;中国电子科技集团公司第58研究所,江苏,无锡,214035;中国电子科技集团公司第58研究所,江苏,无

锡,214035;中国电子科技集团公司第58研究所,江苏,无锡,214035

【正文语种】中 文

【中图分类】TN402

1 引言

随着深亚微米集成电路的出现,单芯片的集成度得到了很大的提高,为了缩短设计周期,加快上市时间,基于IP的SOC设计正在成为IC设计的主流[1]。由于ARM核的方便、易用和易扩展性,目前采用ARM核的SOC产品遍布汽车、消费电子、工业控制、海量存储、网络和无线等各类产品市场,可以说ARM技术无处不在。同时为了降低SOC芯片的测试成本和难度,提高芯片的质量和成品率,需要对芯片进行可测性设计,简称DFT[2]。其中SOC集成了大量的存储器,为了确保这些存储器的好坏,只靠功能验证码要花费很大的人力资源,而内建自测试(BIST)可以很方便地完成存储器的测试。然而残酷的竞争对成本提出了更加苛刻的要求,因此本文采用A R M核所集成的TA P控制器来控制MBIST,既能完成存储器的自测试又不会因BIST带来额外的PAD数量,降低芯片制造和封装的成本。

2 MBIST设计

由于工艺的不断进步,存储器芯片的集成度不断提高,使得每个存储器的面积和价格都按指数下降,同时存储器在制造和使用过程中都易受到干扰[3],故障也越来越复杂。根据故障的成因以及所影响的大小,可将存储器的故障分成以下几种[4]:Address Faults

(AF)、Address Decoder Open Faults(ADOF)、Coupling Faults(CF)、Data Retention Faults(DRF)、Stuck-at Faults(SAF)、Stuck Open Faults(SOF)和Transition Faults(TF)。为了合理地测试这些故障,主要的测试算法大致有:M a r c h C、CheckerBoard和Rom。本文主要讨论SRAM的BIST设计,采用MarchC-(march1)算法,该算法大致的测试步骤如下:

地址(0)→地址(最高位):Write(55)

地址(0)→地址(最高位):Read(55)-Write(AA)

地址(0)→地址(最高位):Read(AA)-Write(55)

地址(最高位)→地址(0):Read(55)-Write(AA)

地址(最高位)→地址(0):Read(AA)-Write(55)

地址(最高位)→地址(0):Read(55)

其中选择55和AA的原因是因为它们的二进制代码是互补的,而且01交互,有利于全面覆盖故障。

常用的MBIST结构如图1所示,它包括MBIST控制器和比较器。其中控制器由状态机控制MBIST的运转顺序;在MBIST测试时控制器还可以产生Memory的地址、数据和读写控制信号。Memory的输出结果输入到比较器中,由比较器判断结果正确与否。

图1 MBIST结构图

3 ARM JTAG介绍

JTAG是Joint Test Action Group的简称。IEEE1149.1标准就是由JTAG这个组织最初提出的,最终由IEEE批准并且标准化。JTAG最初的目的是测试IC之间或PCB之间的连接是否存在故障。后来随着JTAG的普及和实用性,它的功能不断得到扩展。目前JTAG还用来调试,因此JTAG成为数字系统可测性设计的重要组成部分。ARM公司也将JTAG内嵌到ARM核中,并且做了扩展,充分发挥了JTAG的作用[5]。

通常来说JTAG主要由边界扫描寄存器和TAP控制器构成,ARM JTAG包括以下五个端口:

(1)Test Clock Input(TCK)

TCK为TAP操作提供了一个独立的时钟端口,TAP的所有操作都是基于该时钟的。

(2)Test Mode Selection Input(TMS)

TMS用来控制TAP状态机的转换,TMS信号在TCK的上升沿有效。

(3)Test Data Input(TDI)

TDI是数据输入端,所有的输入数据都是通过TDI一位一位的串行输入到特定的寄存

器中。

(4)Test Data Output(TDO)

TDO是数据输出端,所有特定寄存器的输出数据都是通过TDO接口一位一位的串行输出的。

(5)Test Reset Input(TRST)

TRST可以对TAP控制器进行异步复位。

实际上,通过TAP接口,对特定的数据寄存器进行访问的一般过程如下:

(1)通过指令寄存器(IR)选定一个需要访问的数据寄存器(DR);

(2)控制TAP把特定DR连接到TDI和TDO之间;

(3)由TCK驱动,把需要输入的数据扫入到DR中,同时DR中的数据通过TDO扫出。

另外,ARM7提供了4条扫描链:扫描链0、扫描链1、扫描链2和扫描链3。为了MBIST的设计,本文对扫描链进行了扩展,增加了扫描链4和扫描链5。

下面先来看看ARM7 JTAG中常用到的几条指令。

(1)IDCODE:指令二进制代码是1110。该指令是通过32个TCK周期读出ARM的ID。

(2)SCAN_N:指令代码是0010。该指令是将4位扫描链所选择的寄存器连接到TDI和TDO之间。

(3)BYPASS:指令的二进制代码是1111。该指令将1-Bit长的BYPASS寄存器连接到TDI和TDO之间。

(4)INTEST:指令的二进制代码是1100。该指令将通过SCAN_N选定的扫描链置于内部测试模式。

(5)EXTEST:指令的二进制代码是0000。指令将通过SCAN_N选定的扫描链置于外部测试模式。

4 ARM SOC中的MBIST实现

在当今的大规模SOC中,JTAG和MBIST被广泛采用,如何有效地将两者结合起来,提高系统的利用率和降低硬件资源的开销是很关键的问题。在SOC芯片中本文采用了图2所示的结构。

图2 SOC结构图

关于图2,可以从以下几点阐述:

(1)一个MBIST Engine控制多个SRAM,MBIST产生地址和数据的位宽以最大的SRAM为基准。

(2)MBIST测试SRAM的算法不是固定的,可以通过DFF1配置合适的算法,例如MARCHC。

(3)MBIST的启动由DFF2控制。

(4)MBIST的结果保存在DFF3中。

(5)DFF1、DFF2和DFF3分别串成一条链,与ARM相关的端口连在一起。

(6)在ARM Wrap中增加扫描链5和MBIST指令,以便完成MBIST的测试。

因此,在MBIST测试时,先选择扫描链5,让MBIST中的DFF1、DFF2和DFF3串行连在TDI和TDO之间。通过TDI端口串行扫入MBIST的配置信息,然后再启动MBIST指令,等待MBIST工作完毕,扫出DFF3中所保存的MBIST结果。

5 仿真结果及分析

通过上述分析,完成相应的代码设计。为了验证功能的正确性,编写测试激励,且为了书写方便,在测试激励文件中定义了一些T A S K,例如Load_Inst、Shiftin_DR、Shiftin_DR_Custom、Shiftout_DR等等[6]。测试激励中的关键部分如下:

Load_Inst(Scan_N);

Shiftin_DR(4,scan_path5);

Load_Inst(Extest);

Shiftin_DR_Custom(20,num);Load_Inst(MBIST);

……//wait MBIST Finish

Load_Inst(Extest);

Shiftout_DR(20);

图3 启动MBIST

图4 MBIST运行

图5 扫出MBIST结果

对图3~5做如下说明:

(1)在图3中,通过TDI配置MBIST,可以看到MBIST算法(alg_no[3:0]信号)变成MarchC(用2表示);mbrun和bist_mode置高(有效)。

(2)在图4中,MBIST正在运行,可以看出Memory的地址、数据和控制信号都在按MarchC算法定义的规律变化。

(3)在图5中,等MBIST完成后,通过TDO扫出20位的结果,可以发现判断SRAM出错的位一直保持为1(0:有故障,1:没有故障)。

6 结论

总之,随着大规模集成电路的发展,SOC成为主流。目前在SOC设计中,ARM是经常被采用的核;另外SOC中大量用到存储器。如何保证存储器的功能正确,MBIST显得很有必要。本文通过ARM JTAG来控制MBIST,既达到DFT设计的目的,又降低了普通MBIST所带来的硬件开销。

参考文献:

[1]王新安,吉利久.SOC测试中的BIST的若干思考[J].微电子学与计算机,2003.

[2]虞希清. 专用集成电路设计实用教程[M].杭州:浙江大学出版社,2007.

[3]王新安,蒋安平,宋春殚. 数字系统测试[M].北京:电子工业出版社,2007.

[4]MBIST Architect Process Guide[M].Mentor Graphics,2008.

[5]许琼.基于JTAG的ARM7TDMI调试系统[J].计算机工程,2008.

[6]Writing JTAG Sequences for ARM9 Processors[P]. ARM corp. 2008.

因篇幅问题不能全部显示,请点此查看更多更全内容