一、可测性设计与工具
1 测试和验证的区别
虽然测试和验证的过程都是对于电路进行矢量输入,并观察输出,但是两者的检测目的和测试矢量的生成原理截然不同,
- 验证的目的是用来检查电路的功能是否正确,对设计负责。
- 测试的目的则主要是检查芯片制造过程中的缺陷,对器件的质量负责。
就矢量生成的原理而言,验证基于事件或时钟驱动,而测试则是基于故障模型的。测试工具的目的就是以最少的测试矢量来覆盖最多的电路和板级系统的故障,通常的测试矢量集有穷举矢量集、功能矢量集和基于故障模型的测试矢量集。故障模型的概念会在后续详细描述。
2 常用的可测性设计
电路的可测性涉及两个最基本的概念,即可控制性和可观察性。
- 可控制性表示通过电路初始化输入端控制电路内部节点逻辑状态的难易程度,如果电路内部节点可被驱动为任何值,则称该节点是可控的。
- 可观察性表示通过控制输入变量,将电路内部节点的故障传播到输出端以便对其进行观察的难易程度。如果电路内部节点的取值可以传播到电路的输出端,且其值是预知的,则称该节点是可观察的。
1.内部扫描测试设计
内部扫描设计的主要任务就是要增加内部状态的可控制性和可观察性。
对于集成电路而言,其做法是将内部时序存储逻辑单元连接成移位寄存器形式,从而可将输入信号通过移位输入内部存储逻辑单元以满足可控制性要求。