ICT 数字测试原理 18 - -VCL如何对设备进行预处理
ICT 数字测试原理 18 - -VCL如何对设备进行预处理
文章目录
- ICT 数字测试原理 18 - -VCL如何对设备进行预处理
- 如何对设备进行预处理
- 如何设置预处理选项
- 单向量禁用(Disable)
如何对设备进行预处理
i3070在线测试软件通过对设备进行调节或禁用来对其进行预处理,具体方式取决于需要。然而,如果设备的调节和禁用功能都被开启,软件会首先尝试禁用设备。只有在禁用不成功的情况下,才会对设备进行调节。要预处理设备的VCL库测试中包含两条语句来提供预处理信息。VCL语句为:
- condition with
- disable with
如果需要单向量预处理,这些语句出现在测试的声明部分。如果需要多向量预处理,这些语句出现在测试的向量执行部分的单元禁用方法中。
除了为预处理设备生成的设置和向量执行语句外,数字程序生成器还会生成两个VCL语句并将其放入被测设备的可执行测试中。这些是:
- conditioned device
- disabled device
这些语句指示为该测试所预处理的设备。
本节中的以下小节解释了如何设置不同选项以及数字程序生成器如何实现它们。因为数字程序生成器对所有禁用和调节的处理方式基本相同,单向量禁用包含了理解预处理所需的大部分信息。其余的小节则补充了额外的信息。
如何设置预处理选项
在运行数字程序生成器之前,预处理必须作为电路板数据输入的一部分进行设置。表2-19描述了预处理选项。
有关由于这些数据输入而出现在电路板文件中的语句语法,请参见数据格式中的电路板文件章节。
单向量禁用(Disable)
除了一些稍后描述的电路板级禁用外,数字程序生成器所需的禁用设备的信息必须包含在该设备的VCL库测试中。否则,生成器无法禁用该设备。与禁用相关的有两条语句:
- disable with — 在库测试中使用
- disabled device — 在可执行测试中使用
一个或多个 disable with 语句出现在要禁用的设备的库测试的声明部分。这些语句包含禁用设备所需的信息。它们表明设备的哪些输出要被禁用,哪些输入引脚可以用于禁用,以及要驱动到这些输入上的状态。例如,
disable Data_Bus with Control to "11"
指示在组Control中的两个引脚都设置为1时,组Data_Bus中的引脚被禁用。
当数字程序生成器禁用该设备时,它会在当前被测设备的可执行测试版本中插入一个disabled device语句:
disabled device "U17" pins 9, 10, 11
由于这些引脚不受测试影响,SAFEGUARD例程忽略出现在disabled device语句中的引脚。注意,数字程序生成器指定了禁用引脚的名称,而不是它们的组名Data_Bus。在测试之间不能传递组名,因为这可能导致命名冲突。
在测试U58之前,必须禁用
作为一个示例,说明如何在测试一个设备时禁用另一个设备,假设正在为图2-11中显示的设备U58生成可执行测试。设备U17具有连接到U58双向引脚的双向引脚。因此,在U58被测试期间,必须禁用U17(U17的数据表指示设置两个控制线为1可以实现此目的)。
U17的库测试包含以下语句:
assign Data_Bus to pins 9, 10, 11assign Control to pins 4, 8. . .inputs Controlbidirectional Data_Busfamily TTL. . .disable Data_Bus with Control to "11"
每次生成可执行测试时,如果需要禁用,数字程序生成器会考虑所有围绕被测设备的设备,这取决于输入电路板数据时选择的选项。因此,由于它们干扰了多个设备测试,某些设备可能会在电路板测试期间多次被禁用。
对于每个需要禁用其他部件的可执行测试,数字程序生成器会将与该测试相关的所有周围设备的禁用引脚组合成一个组,如下一个示例所示。然后,数字程序生成器会创建用于禁用所有设备的向量和向量执行语句。
生成器编写禁用所需的设置语句,并将这些语句包含在可执行测试的声明部分中。首先,将每个引脚分配到一个 family 组,以便可以在驱动器上设置适当的电压水平。然后,将每个引脚分配到一个名为Disablegroup的单个组。例如,使用U17库测试(图2-11)中的语句,数字程序生成器可能会将示例2-30中的语句置于U58的可执行测试中。
示例2-30
数字程序生成器生成的禁用语句
assign DisableFamilyTTL to nodes "Enable1", "Enable2"family TTL on DisableFamilyTTLinputs DisableFamilyTTLassign DisableGroup to nodes "Enable1", "Enable2" default "11"inputs DisableGroup
注意,分配给每个引脚的默认状态与其disable with语句中指定的状态相同。这些状态被添加到禁用向量中,也是测试向量在整个测试期间维护的默认状态。
如果需要禁用多个设备,则将这些设备的引脚添加到组中。然而,每个引脚组需要有自己的familygroup。例如,使用任意设备和节点名称,这些语句可能与上述语句一起包含:
assign DisableFamilyCMOS to nodes "U32-6"family CMOS on DisableFamilyCMOSinputs DisableFamilyCMOS
假设要将0驱动到U32‑6,前面显示的DisableGroup的分配将如示例2-31所示更改:
示例2-31
带有附加节点的assign DisableGroup语句
assign DisableGroup to nodes "Enable1", "Enable2", "U32-6" default "110"
作为设置的最后一步,数字程序生成器会将一个或多个disabled device语句插入到可执行测试中,以指示哪些设备和哪些引脚已被禁用。这些语句有双重目的:通知你哪些设备已被禁用,并通知SAFEGUARD例程在进行安全分析时可以忽略这些引脚。使用前面的设置,这些语句将是:
disabled device "U17" pins 9, 10, 11disabled device "U32" pins 4, 9
生成器还在板测试的ipg/details文件中提供更详细的信息,指示哪些禁用被使用。
当测试被编译时,Disablegroup的所有默认状态被组合成一个向量,称为Disablevector。该向量禁用所有要禁用的设备。根据前面的语句,该向量将110驱动到Disablegroup中的引脚。同时,该向量将测试中的所有其他输入引脚驱动到其默认状态。
数字程序生成器还在正在生成的可执行测试的向量执行部分的子程序中创建一个execute DisableVector语句。运行该设备测试时,该执行语句首先执行以禁用周围设备,然后才开始对当前设备的实际测试。由于测试中的其他向量不引用Disablegroup,禁用引脚状态由测试中的所有其他向量默认保持。
有时,用于禁用目的的驱动引脚连接到也要用于测试目的的节点。这是一个潜在的冲突,因为它可能会暂时覆盖禁用。在这种情况下,数字程序生成器会检查测试以确定是否存在实际冲突。如果临时禁用覆盖不会干扰此时接收到的特定状态,则不存在冲突。如果禁用覆盖会干扰接收到的状态,则存在冲突,数字程序生成器不会使用需要冲突引脚的禁用方法。
Disablevector是一个伪向量,因为它实际上并不出现在可执行测试的源文件中。然而,它是测试的一部分。由于存在Disablevector,它可以在执行语句中被引用。此功能使你能够在测试过程中任何时候恢复预处理。例如,halt或delay for cooling语句将所有驱动器设置为高阻态,从而撤销预处理。在这两个语句后立即插入一个execute DisableVector语句在测试执行恢复之前重新建立预处理。
当为可以禁用的设备写入设置测试时,你可能并不总是知道禁用状态应该是什么。在这种情况下,在disable with语句中使用任何状态;只使用1,0或T,因为数字程序生成器会拒绝X或Z。然后,你可以在设备要禁用的可执行测试中添加正确的禁用向量。如果你没有为那些引脚包含disable with语句,则数字程序生成器不会为它们分配任何资源。在这种情况下,你将不得不在已编辑的可执行测试上重新运行数字程序生成器。如果使用此技术,请确保在设置测试中插入注释,表明禁用状态不正确。