ICT 数字测试原理 10 - -VCL 向量如何执行之数字单元
ICT 数字测试原理 10 - -VCL 向量如何执行之数字单元
文章目录
- ICT 数字测试原理 10 - -VCL 向量如何执行之数字单元
- 向量执行
- 数字单元
- 向量如何执行
- 单元与拓扑冲突
向量执行
测试的向量执行部分可以包含两种类型的程序结构:向量执行块(称为数字单元)和数字子程序。如果有任何子程序,它们必须在所有单元之前。测试中必须至少有一个单元,除非测试仅为设置测试。
数字单元
下面展示了一个单元的示例,该单元可用于执行示例2-11中定义的三个示例向量的测试中。
注意,该单元有一个名称。为单元命名是可选的。然而,名称在编辑或调试测试时有助于识别。由于名称是一个字符串常量,你可以在名称中使用任何描述性的词语。
向量名称是标签,是必需的。注意,向量可以按任何顺序执行,并且可以执行任意次数。
unit "Preset device"execute Changeexecute Mixedexecute Changeexecute Mixedexecute All_onesend unit
单元包含了执行测试中向量定义部分所定义向量的语句。单元以 unit 语句开始,以 end unit 语句结束。单元可以包含向量执行语句、PCF向量、对数字子程序的调用、重复循环和自归环路。
此外,还有两个单元被指定用于特殊目的。unit disable method 用于需要多向量预调的设备的库测试中——参见预调节(禁用和调节)。unit disable test 用于验证设备上的禁用输入是否真的禁用了设备——参见单元禁用测试。
向量如何执行
向量执行语句可以排列成以任意顺序执行已定义的向量;此外,任何一个向量都可以执行任意次数。有三种语句可以执行向量:
- execute
- count
- preset counter
如果向量不包含计数器,则通过 execute 语句执行。包含计数器的向量必须通过 preset counter 和 count 语句执行(参见带计数器的向量)。这些语句与一组选项相关联。选项使你能够执行诸如压缩(生成CRC)和在混合测试中触发模拟测量等功能。
由于 VPU(向量处理单元)的架构,在运行设备测试时,测试以压缩格式加载到内存中。基本上,它由两组指令组成:一组指示如何生成每个向量,另一组指示何时生成每个向量。由于每个向量依赖于前一个向量的状态,在许多情况下,同一组指令可以用于生成许多不同的向量。由于只需保存唯一的指令,许多向量可以有效地存储在相对较小的内存中。
需要注意的是,向量加载时不是作为一系列绝对状态加载,而是作为一系列表示这些状态的保持和切换加载。参见保持和切换。
单元与拓扑冲突
如果你正在编写一个库测试,需要注意单元的结构会影响数字程序生成器在测试的可执行版本中解决拓扑冲突的方式。如果设备连接到电路板的方式与库测试中预期的连接不同,就会发生拓扑冲突。例如,一个复位引脚在电路板上连接到地,而在测试中没有连接。(参见解决拓扑冲突。)
在顺序设备的测试中,数字程序生成器会丢弃(注释掉)所有包含执行与拓扑冲突的向量语句的数字单元。
在组合设备的测试中,数字程序生成器只丢弃具有冲突的个别执行语句;在这种情况下,单元的结构并不重要。然而,在组合设备的测试中,如果包含绑定语句的单元存在冲突,数字程序生成器会丢弃该单元。这是数字程序生成器在组合测试中丢弃整个单元的唯一情况。
由于数字程序生成器可以从库测试中拒绝单元,因此每个单元都应独立于测试中的其他单元。
为避免单元之间的依赖关系,数字单元中执行的第一个向量应复位设备;或者,如有必要,通过一个归位循环将其还原到某个已知状态。将归位循环或复位设备所需的向量执行语句置于数字子程序中是个不错的主意。这样每个数字单元都可以调用该子程序来归位或复位设备。
如果一个关键向量(即,其他向量依赖其保持和切换状态的向量)被丢弃,可能会导致后续向量执行时出现一些意想不到的状态。
通过仅定义绝对向量(即,所有已知状态——1、0、Z或X)来解决这个问题。在顺序设备的测试中,确保每个单元中的至少第一个向量是绝对向量。此外,每个单元的第一个向量应将设备预置到某个已知状态——子程序中的归位循环通常可以用于此目的。这样,一个单元中的向量完全独立于其他单元执行的向量。
一种可能有用的编程技巧是同时编写向量定义和向量执行部分。从向量执行语句开始,每次需要新的向量时定义向量。这可能比尝试首先定义所有向量,然后编写所有向量执行语句更容易。
失败向量的消息
message 语句使你能够向报告打印机输出用户定义的消息。参见示例2-13。
示例2-13
message "This failure may be related to a faulty clock."
所有在输出消息后执行的失败向量都会输出该消息。一旦执行,message 语句将一直有效,直到被后续执行的 message 替换,或者测试结束为止。
如果有两个或多个连续的 message 语句,它们的消息会被连接成一个消息。这使你能够输出任意长度的消息。参见示例2-14。
示例2-14
消息连接
message "This failure can be caused by test timing;"
message "check U18 pin 6 first."
! 输出: This failure can be caused by test timing;
! check U18 pin 6 first.