可测试性因设计而异,一些特征和设计风格使设计难以测试,而一些其他的特征和设计风格增强设计的可测试性。
下面的子节讨论了这些设计特性以及描述了这些特性在设计的可测试性上的影响。
Synchronous Circuitry
使用同步设计实践,能够保证设计的可测试和可制造性。在过去,设计人员使用异步设计技术,但是当前,设计人员不再使用这些技术,因为大多数门阵列和FPGAs的组织需要在设计中使用同步逻辑。
同步电路从静态DC到最大时钟速率在所有操作模式下都可以正常并且可预测地工作。电路的输入不会导致电路的假定状态,并且无论时钟和输入信号之间的关系如何,该电路都避免了不恰当的操作。
真正的同步设计本质上是可测试的设计,如果使用同步设计技术,可以实现许多扫描策略并运行ATPG流程,从而获得更大的成功。此外,可以按照实践创建大多数设计,而不会损失速度或功能。
设计的同步level取决于以下技术:
- 系统具有最少数量的时钟——最好只有一个。
- register所有的设计输入并考虑亚稳态,应该把亚稳态时间当作路径上的另一个延迟,如果传播延迟加上亚稳态时间小于时钟周期,则系统是同步的,如果大于或等于时钟周期,则需要额外增加一个触发器(打拍?),以确保正确的数据进入电路。
- 非组合逻辑驱动寄存器的set、reset或者时钟输入。
- 寄存器的set或reset无异步信号。
- buffers或者其他延迟元素不会延迟时钟信号。
- 不适用逻辑来延迟信号。
- 不要假定逻辑延迟比routing延迟长。
如果遵守这些设计规则,生产的设计很大可能是可制造和可测试的,能够在广泛的温度,电压和其他电路参数范围内正常操作。
Asynchronous Circuitry
由于系统的本质,设计的少量百分比需要一些异步电路,因为异步电路通常难以测试,应该将设计中的异步部分放入一个block中,从电路的其他部分进行隔离,在这个方式下,仍然可以在设计的同步部分使用DFT技术。
Scannability Checking
Tessent Scan在设计的时序元素上执行扫描性检查过程。为了工具在设计中插入扫描电路,必须使用等价的扫描元素取代现存的时序元素。在开始替换之前,设计中原始的时序元素必须通过扫描性检查,也就是说,工具在确定不改变其他电路时是否转换时序元素为scan elements。
可扫描性时序元素通过以下检查:
- 当所有的时钟关闭时,所有时序元素的时钟输入(包括set和reset inputs)必须是无效状态,为了防止PI的test pattern应用之前scan chain数据被干扰。如果时序元素不能通过该检查,当测试工具应用PI值时它的扫描值变得不稳定,该检查对应了C1规则。
- 时序元素的每个时钟输入必须能够捕获数据,当所有其他时钟无效而一个时钟PI有效时,这个规则确保这个特殊的存储袁术能够捕获系统数据(系统数据是功能电路中的数据?)如果时序元素不能满足这个规则,将会导致损耗一些测试覆盖率。该检查对应C7规则。
当一个时序元素通过可扫描性检查,它将会变为一个scan candidate,意味着Tessent Scan能够插入它的等价scan elements进入扫描链中。但是即使元素没有通过上述两个规则之一,仍然可能被转换为scan elements。在很多情况下,可以添加额外的逻辑到设计中,称为测试逻辑(插入测试逻辑可提高可测试性)。