DFT,全称Design for Testability,是一种在硬件设计阶段考虑测试的方法,它的目标是在设计时就使得设备或系统能更容易地进行测试。以下是DFT设计的一些基本原则和方法:
测试点插入(Test Point Insertion):在硬件设计中,插入额外的测试点,例如观察点和控制点,可以帮助更容易地访问和控制硬件的内部状态。这种方法可以提高硬件的可观察性和可控制性,从而提高测试的效率和有效性。
扫描设计(Scan Chain Design ):扫描设计是一种常用的DFT方法,其中所有的触发器(flip-flops)都被连接成一个或多个长的移位寄存器,称为扫描链(scan chain)。通过扫描链,我们可以直接设置和读取硬件的内部状态,从而极大地提高了硬件的可测试性。
内置自测试(Built-In Self-Test,BIST):在BIST方法中,硬件被设计为能够执行自我测试。这种方法可以在硬件的运行过程中检测出潜在的故障,并且可以大大减少外部测试设备的需求。
测试压缩技术(Test Compression Techniques):测试压缩技术是一种降低测试数据量和测试时间的方法。例如,Xilinx公司的3D IC设计中使用了测试压缩技术,以降低测试成本。
故障模型(Fault Models):DFT设计也需要考虑故障模型。一个故障模型是一个假设,它描述了硬件可能出现的故障类型。故障模型的选择可以影响测试的覆盖率和效率。
测试策略和计划(Test Strategies and Plans):一个好的DFT设计也需要一个全面的测试策略和计划。这个策略应该详细描述如何,何时,以及在哪里进行测试,包括在制造过程中的测试和在硬件生命周期中的测试。
**扫描链(Scan Chain)的设计**
`在硬件设计中,将触发器 (flip-flops) 替换为可扫描的触发器并以链的形式连接在一起就形成了“扫描链”。`在测试模式下,这个扫描链就像是一个移位寄存器,可以通过改变扫描使能信号 (Scan Enable, SE) 的状态,来在正常操作模式和测试模式之间切换。在测试模式下,可以通过扫描输入端口 (Scan Input) 向扫描链中输入数据,然后通过扫描输出端口 (Scan Output) 从扫描链中读出数据。
扫描链,所有的触发器必须连接成一条链,单链或多链。 如果您在一端推送一些数据,而在另一端获得相同的数据,那么它在制造过程中没有错误。