Test Pattern Formatting and Timing
本章介测试向量时序和过程文件,下图所示为定义测试向量时序的基本过程。
Test Pattern Timing Overview
测试过程文件包含扫描过程和非扫描过程。所有向量的所有时序信息,包括扫描和非扫描,都在此过程文件中定义。
虽然ATPG过程本身不需要测试程序文件包含真实的时序信息(real timing information),但自动测试设备(ATE)和一些仿真器需要这些信息。因此,您必须修改用于ATPG的测试过程文件,以包含真实时序信息。“General Timing Issues”讨论了如何将时序信息添加到现有的测试程序中。
在为测试过程创建了真实的时序之后,您就可以保存向量了。您可以使用适当格式的write_patterns
命令来创建一个包含时序信息的测试集。“Saving Timing Patterns”部分会详细介绍。
Timing Terminology
General Timing Issues
ATE需要基于周期的测试数据格式。应用于此类设备的向量必须指定每个测试周期的每个输入、输出或双向引脚的波形。
Generating a Procedure File
定义测试向量时序的基本过程。
- Use the
write_procfile -Full
command and switch to generate a complete procedure file. - Examine the procedure file, modify timeplates with new timing if necessary.
- Use the
read_procfile
command to load in the revised procedure file. - Issue the write_patterns command.
- There are three ways to load existing procedure file information into the tool:
- 在SETUP模式下,使
add_scan_groups <procedure_filename>
命令。如果没有加载其他时序信息或过程信息,则在发出write_patterns
时使用该过程文件中的全部时序信息。 - 使用
read_procfile
命令。这仅在不处于SETUP模式时有效。使用此命令加载一个新的过程文件,该文件覆盖或合并已加载的过程和时序数据。新的数据对后续所有的write_patterns
命令都有效。 - 如果在
write_patterns
命令行上指定新的过程文件,则该过程文件中的时序信息仅用于该命令,然后恢复以前的信息用于其他命令。
- 在SETUP模式下,使
Defining and Modifying Timeplates
概述了测试过程文件 timeplate 语法。
使用write_procfile -full
命令生成过程文件后,可以检查过程文件,如有必要,可以使用新的时序信息修改timeplates。可以对现有timeplate的时序进行更改,但是不能更改timeplate中用于扫描过程的事件的顺序。时序可以更改,但事件顺序必须保持不变。
以下示例显示了timeplate的内容,其中在时间20处发生两个时序边沿(timing edges),并且这两个边沿都被列为定时边沿4。这些可以是偏斜(skew)的,但它们不能跨越任何其他时序边缘。时序边缘必须按照注释中列出的顺序执行:
请记住,timeplate定义描述了一个测试单循环,并指定了所有事件边缘在该循环中的位置。在引用timeplate之前,必须先定义它们。过程文件必须至少有一个timeplate定义。所有时钟都必须在timeplate中进行定义。
Delaying Clock Pulses in Shift and Capture to Handle Slow Scan Enable Transitions
有各种技术可以处理慢速扫描使能转换。(SE切换速度慢,不能满足测试需求)
在扫描测试期间,移位和捕获时钟的频率可能不允许扫描使能(SE)在第一时钟脉冲出现之前有足够的时间改变状态。因为SE是一个全局信号,它不是为类似于时钟的快速操作而设定的,所以它可能没有足够的时间在一个测试周期内传播到所有扫描单元。尽管SE是这种信号最常见的情况,但任何其他高扇出信号都可能具有相同的时序问题。图11-2中的波形以红色突出显示了可能需要额外延迟的边沿转换。
该部分描述了创建过程文件中的各种技术,这些技术可以避免DRC违规并产生正确的仿真结果和向量。对于这里描述的所有技术,假设SE在dofile中被约束到其关闭状态。