SoC设计方法与实现
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.4 可测性设计与工具

3.4.1 测试和验证的区别

虽然测试和验证的过程都是对于电路进行矢量输入,并观察输出,但是两者的检测目的和测试矢量的生成原理截然不同,验证的目的是用来检查电路的功能是否正确,对设计负责。测试的目的则主要是检查芯片制造过程中的缺陷,对器件的质量负责。就矢量生成的原理而言,验证基于事件或时钟驱动,而测试则是基于故障模型的。

测试工具的目的就是以最少的测试矢量来覆盖最多的电路和板级系统的故障,通常的测试矢量集有穷举矢量集、功能矢量集和基于故障模型的测试矢量集。故障模型的概念会在第10章详细描述。

3.4.2 常用的可测性设计

电路的可测性涉及两个最基本的概念,即可控制性和可观察性。可控制性表示通过电路初始化输入端控制电路内部节点逻辑状态的难易程度,如果电路内部节点可被驱动为任何值,则称该节点是可控的。可观察性表示通过控制输入变量,将电路内部节点的故障传播到输出端以便对其进行观察的难易程度。如果电路内部节点的取值可以传播到电路的输出端,且其值是预知的,则称该节点是可观察的。

1.内部扫描测试设计

内部扫描设计的主要任务就是要增加内部状态的可控制性和可观察性。对于集成电路而言,其做法是将内部时序存储逻辑单元连接成移位寄存器形式,从而可将输入信号通过移位输入内部存储逻辑单元以满足可控制性要求。同样,以移位方式将内部状态输出以满足可观察性要求。采用扫描路径设计的芯片在测试方式下工作时,内部构成一个长的移位寄存器。

如图3-6所示,扫描测试工具首先把普通的触发器变成了带扫描使能端和扫描输入的触发器,然后把这些触发器串联在一起。当scan_enable无效时,电路可以正常工作,当scan_enable有效时,各触发器的值将可以从来自片外的scan_in信号串行输入。这样就可以对各片内寄存器赋值,也可以通过scan_out得到它们的值。支持扫描测试设计的工具有Synopsys公司的DFT Compiler及Mentor的DFT Advisor。

图3-6 扫描测试电路

2.自动测试矢量生成(ATPG,Automation Test Pattern Generation)

ATPG采用故障模型,通过分析芯片的结构生成测试向量,进行结构测试,筛选出不合格的芯片。通常ATPG工具和扫描测试工具配合使用,可以同时完成测试矢量的生成和故障仿真。

首先是故障类型的选择。ATPG可以处理的故障类型不仅是阻塞型故障,还有延时故障和路径延时故障等,一旦所有需要检测的故障类型被列举,ATPG将对这些故障进行合理的排序,可能是按字母顺序、按层次结构或者随机排序。

在确定了故障类型后,ATPG将决定如何对这类故障进行检测,并且需要考虑施加激励向量测试点,需要计算所有会影响目标节点的可控制点。此类算法包括D算法等。

最后是寻找传输路径,可以说这是向量生成中最困难的,需要花很多时间去寻找故障的观测点的传播。因为通常一个故障拥有很多的可观测点,一些工具一般会找到最近的那一个。不同目标节点的传输路径可能会造成重叠和冲突,当然这在扫描结构中是不会出现的。

支持产生ATPG的工具有Mentor的Fastscan和Synopsys的TetraMAX。

3.存储器内建自测试(Memory Built-in-self-test)

内建自测试是当前广泛应用的存储器可测性设计方法,它的基本思想是电路自己生成测试向量,而不是要求外部施加测试向量,它依靠自身来决定所得到的测试结果是否正确。因此,内建自测必须附加额外的电路,包括向量生成器、BIST控制器和响应分析器,如图3-7所示。BIST的方法可以用于RAM、ROM和Flash等存储设备,主要用于RAM中。大量关于存储器的测试算法都是基于故障模型的。常用的算法有棋盘式图形算法和March算法。

图3-7 BIST的基本结构

支持BIST的工具有Mentor的mBISTArchitect和Synopsys的SoCBIST。

4.边界扫描测试(Boundary Scan)

边界扫描的原理是在核心逻辑电路的输入和输出端口都增加一个寄存器,通过将这些I/O上的寄存器连接起来,可以将数据串行输入被测单元,并且从相应端口串行读出。在这个过程中,可以实现芯片级、板级和系统级的测试。其中,最主要的功能是进行板级芯片的互连测试,如图3-8所示。

图3-8 利用边界扫描进行板级测试

边界扫描是欧美一些大公司联合成立的一个组织——联合测试行动小组(JTAG)为了解决印制电路板(PCB)上芯片与芯片之间互连测试而提出的一种解决方案。由于该方案的合理性,它于1990年被IEEE采纳而成为一个标准,即IEEE 1149.1。该标准规定了边界扫描的测试端口、测试结构和操作指令,其结构如图3-9所示。该结构主要包括TAP控制器和寄存器组。其中寄存器组包括边界扫描寄存器,旁路寄存器,标志寄存器和指令寄存器。主要端口为TCK、TMS、TDI、TDO,另外还有一个用户可选择的端口TRST。

支持边界扫描的自动设计工具有Mentor的BSD Architect和Synopsys的BSD Compiler。

图3-9 IEEE 1149.1结构