ICT 数字测试原理 20 - -VCL中预处理的过程
ICT 数字测试原理 20 - -VCL中预处理的过程
文章目录
- ICT 数字测试原理 20 - -VCL中预处理的过程
- 库测试中的语句
- 可执行测试中的语句
- 分配系列和组
- 生成子程序
- 生成单元
- 单元禁用方法
库测试中的语句
图2-12显示了一个通过关闭引脚4(即将其设置到高阻状态)来禁用的ASIC设备示例。实现这一操作所需的状态序列如图所示。在输入Reset被置为有效时,先断言并释放输入Test。然后释放Reset。请注意,在这个序列之后,禁用状态只能通过将Reset保持在0并持续时钟拨动Clk来维持。
一个多向量禁用序列
以下语句出现在ASIC库测试的声明部分,用于设置禁用引脚并将其分配给一个PCF集合。
示例2-33
...assign Test to pins 1
assign Clk to pins 2
assign Reset to pins 3
assign Out to pins 4...inputs Clk, Test, Reset
outputs Out
family TTL...pcf order ASIC_Disable is Test, Clk, Reset
单元禁用方法位于库测试的向量执行部分。
示例2-34
unit disable method "Disable Out"disable Out with Reset hold "0"disable Out with Clk hold "T"disable Out with Testpcfuse pcf order ASIC_Disable"000""010""000""001""011""001""101""111""101""001""011""001""000"end pcfend unitunit "First test unit"...
此示例中的单元包含三个disable with语句和PCF向量用于实现禁用。对于单向量禁用,每个disable with语句是一个单独的禁用解决方案。但对于多向量禁用,同一单元中的所有disable with语句组合形成一个解决方案。在这个单元中,禁用Out需要三个引脚:Reset、Clk和Test。这些被称为“使用引脚”。在两个disable with语句中,hold参数指定了“保持引脚”:即,在测试期间必须保持在某个状态以维持设备禁用状态的引脚。在这种情况下,禁用后,Reset被保持在0,而Clk被时钟脉冲(拨动)以维持禁用。
示例单元中的PCF向量对应于图2-12中显示的状态。
可执行测试中的语句
当i3070电路测试软件生成一个需要禁用ASIC的可执行测试时,它使用单元禁用方法中的数据来执行实际的禁用操作。禁用语句在可执行测试中通过以下三个步骤进行:
-
在测试的声明部分为使用引脚分配适当的系列和组,并编写禁用设备(以及条件化设备)的语句。
-
生成一个包含PCF中的预处理向量的子程序(DisableSub),如果适用,还包括一个执行单向量预处理的Disablevector语句。
-
生成一个单元(DisableUnit)来执行预处理子程序。
下面对这些步骤进行详细说明。
分配系列和组
继续以图2-12中显示的ASIC示例为基础,以下语句假定ASIC是板上的U23,并且连接到U23的节点根据引脚编号命名(例如,U23-3)。示例2-35中的语句被放置在被测设备的可执行测试中。在第一步中,将所有属于同一类型和系列的禁用引脚分配给一个适当命名的系列组,以便指定系列。可以有任意数量的系列组;在本例中,引脚都是输入,引脚都属于TTL系列。
示例2-35
软件生成的初始禁用语句
...assign DisableFamilyInputsTTL to nodes "u23‑1", "u23‑2", "u23‑3"family TTL on DisableFamilyInputsTTLinputs DisableFamilyInputsTTL
由于引脚有三种类型——输入、输出和双向(bidirectional)——每个系列可以有三个系列组。例如,其他两个TTL系列组将被命名为DisableFamilyOutputsTTL和DisableFamilyBidirsTTL。
接下来,将所有引脚分配到一个输入组、一个输出组或一个双向(bidir)组。这些组被编号,因为每个设备需要单独的组。编号对应于设备被禁用的顺序。示例2-36中只有一个设备和仅有的输入引脚:
示例2-36
软件生成的附加禁用语句
assign DisableGroupInputs1 to nodes "u23‑1", "u23‑2", "u23‑3" default "XT0"inputs DisableGroupInputs1pcf order DisablePCFOrder1 is DisableGroupInputs1! IPG: Safeguard will ignore disabled outputsdisabled device "u23" pins 4
默认状态源自库测试中的disable with语句中指定的保持状态。U23-1(Test)的默认状态为X,因为该引脚没有保持参数。需要PCF组是因为向量始终在PCF中,无论禁用设备的库测试中使用了哪种类型的向量。
PCF组被编号是因为可能会有多个组。当有多个设备需要预处理时,设备是按顺序预处理的,而不是像单向量预处理那样全部一起预处理。在这种情况下,每个设备需要其自己的组,并且这些组根据例子中的说明进行编号,以作识别之用。
生成子程序
i3070电路测试软件生成一个包含预处理向量的子程序,以PCF表示。示例2-37展示了一个子程序的例子,其中包含了来自ASIC库测试中示例单元禁用方法的PCF向量。
为了简化例子,子程序中大部分向量已被省略,具体位置由注释标示。在实际测试中,软件会插入注释以标识各种向量——这些注释在例子中也被省略了。
示例2-37
由软件生成的DisableSub子程序
sub DisableSubpcfuse pcf order DisablePCFOrder1"000""010". . . ! rest of sequence from the ASIC library testend pcfexecute DisableVector
end sub
请注意,在需要时,子程序还会执行DisableVector,以进行单向量预处理。
生成单元
在第三步中,i3070电路测试软件创建一个调用禁用子程序的单元。这个单元被放置在所有测试被测设备的单元之前:
unit "DisableUnit"call DisableSubend unitunit "initialize device". . .
单元禁用方法
单元禁用方法只能包含"disable with"和"condition with"语句、PCF和执行语句。不能使用循环和计数器等结构,以及暂停和等待等控制语句。单元中的PCF向量和单元中执行语句引用的普通向量只能使用以下状态:
- 1
- 0
- Z
- X
在"disable/condition with"语句中,保持参数只能使用以下状态:
- 1
- 0
- K
- T
如果需要,您还可以在预处理向量中指定输出状态。这使您能够在预处理中检查设备是否已设置为所需状态。因为这些向量与测试向量相同,所以如果任何预处理向量失败,则被记录为测试失败。
单元禁用方法中的向量不能引用定时设置。如果预处理向量随后被放置在使用定时设置的可执行测试中,那么这些向量引用的是该测试中的默认定时设置。
单元禁用方法出现在包含该单元的库测试的可执行版本的源文件中,但编译器会忽略该单元。
禁用冲突
如果需要同时预处理多个设备,并且它们的禁用方法冲突,i3070电路测试软件将无法进行预处理。在这种情况下,您可能需要编辑可执行测试。图2-13显示了两台设备U10和U20,必须在测试设备U30时同时禁用。
在示例中,U10和U20有一个公共节点B,在每个设备的单元禁用方法中既是使用节点又是保持节点。假设U10先被禁用。那么节点B必须被保持以维持U10的禁用状态。这意味着U20不能被禁用而不撤销U10的禁用。i3070电路测试软件无法解决这一问题。但是,您可以通过编辑U30的可执行测试来解决这个问题,并将两台设备的禁用结合在一起。也就是说,同时驱动两台设备的输入,然后保持节点B。