ICT 数字测试原理 5 - -VCL 简介
ICT 数字测试原理 5 - -VCL 简介
文章目录
- ICT 数字测试原理 5 - -VCL 简介
- VCL 简介
- 编写和编辑 VCL 测试
- 关于VCL的一般规则
- 库测试和可执行测试
- 库测试的要求
- 可执行测试的要求
VCL 简介
矢量控制语言 (Vector Control Language ) 是一种易于使用、结构良好且功能多样的语言,旨在简化测试开发者的工作。VCL 测试可以编写为在线测试单个设备或测试一组设备;后者也称为节点库测试。
在您继续阅读本章之前,我们建议您查看本章末尾的示例。这将使您对语句及 VCL 测试的结构有一些熟悉。
VCL 测试将一系列向量应用于被测设备,并将设备的实际响应与预期响应进行比较。根据响应,测试将结果返回给testplan,然后testplan声明设备通过或未通过该测试。
VCL 测试的目标是:
- 通过列出测试所需的输入、输出和电压水平来描述被测设备。
- 描述发送到设备和从设备接收信号的时序要求。
- 定义驱动设备的向量以及预期设备响应的比特模式。
- 提供一系列向量执行语句,以所需顺序应用测试向量。
编写和编辑 VCL 测试
要编写和编辑 VCL 测试,请按照以下步骤进行:
- 开启 VCL 语法检查。
您可以在 BT-Basic 窗口中通过以下方法之一启用 VCL 语法检查:
a. 简单地将已经保存的 VCL 测试加载到 BT-Basic 工作区中。
b. 如果文件以前没有保存为“数字”文件,则可以在加载时强制进行语法检查,如以下 BT-Basic 命令行中的命令所示:
load digital "my_lib/74wb99"
re-save
load digital
命令将在 BT-Basic 中启用数字模式,并强制对指定文件中的所有行进行完整的数字语法检查。re-save
命令将以数字格式重新保存已加载的文件。
c. 在 BT-Basic 命令行中输入 digital
命令。这将把 BT-Basic 模式设置为“数字”模式。
- 编写测试。
a. 执行 digital
语句选择数字 (VCL) 模式。
b. 如果您正在编写库测试,请参见库测试的要求以获取更多信息。
c. 如果您正在编写可执行测试,请参见可执行测试的要求。
- 编辑现有测试。
使用 get
或 load
命令获取包含 VCL 源代码的文件。
该模式会自动从文件中读取,并将工作区设置为数字模式。
- 保存源代码。
如果测试是针对电路板上的设备,则它是个可执行测试,必须保存在电路板测试目录下的文件中。
a. 使用 msi
语句更改到电路板目录。
b. 使用 save
语句保存源代码。例如:
save "digital/u32"
save "my_lib/74wb99"
如果文件已存在,则必须使用 re-save
(重新存储)命令来保存文件。
- 编译测试。
VCL 源代码必须编译以生成目标代码。
a. 使用 compile
语句。例如:
compile "digital/u32"
b. 如果要将测试保存在库中,请使用库选项进行编译。例如:
compile "my_lib/74wb99"; library
编译器创建对象文件。编译器将对象文件放置在与源文件相同的目录下。它将每个对象文件命名为与源文件相同的名称,但使用 .o
扩展名。如果指定了列表选项,编译器会生成一个包含源文件列表及任何编译器消息的文件。该列表文件的名称与源文件相同,但扩展名为 .l
。
对于库测试,仅生成 <test name>.o
文件;列表 (.l
) 文件是可选的。
对于可执行测试,可能会生成多个文件。它们被放置在在线设备测试的 digital
目录下。文件描述如表 2-1 所示。
- 退出数字模式。
执行 basic
语句或选择其他模式。
表 2-1
VCL 测试文件
文件 | 描述 |
---|---|
<test name>.o | 包含系统软件运行测试所需信息的对象文件。 |
<test name>.r | 临时对象文件,包含关于引脚分配所需系统资源的信息。当生成 .o 文件时,该文件被解除链接。 |
<test name>.l | 可选列表文件,包含测试清单和编译器生成的消息。如果指定了编译器的列表参数,则会生成此文件。 |
<test name>.d | 可选文件,按执行顺序与测试中定义的顺序关联向量。此文件仅供调试软件使用。要获取此文件,请指定编译器的调试选项或在 VCL 测试中使用 generate debug 语句。(包含此文件将导致生产运行时间更长。为防止运行时间延长,在发布到生产之前,重新编译时不使用调试选项。) |
关于VCL的一般规则
- 除了使用数据捕获功能外,VCL语句不能引用变量;任何数字或字符串参数必须是常量。
- 如果参数需要整数,则您必须提供整数;VCL不能对非整数值进行四舍五入。
- VCL测试每行只能有一个语句。
库测试和可执行测试
根据测试的目的,VCL测试可以放置在库中或被测电路板的测试程序文件中。最初,VCL测试必须放在库中,以便数字程序生成器可以在为PC板生成测试时读取它们。生成器从库测试中创建可执行测试。
大多数库中的电路内设备测试是针脚导向的测试,旨在测试设备类型。库测试最初假设设备连接在所有针脚自由的配置中,但大多数库测试也包含额外的矢量集,使设备能够以其他常见配置进行测试:例如,在PC板上设备的两个输入引脚绑在一起是很常见的,复位引脚通常连接到地。由于有额外的矢量集,数字程序生成器可以通过丢弃不需要的矢量集,调整可执行测试以适应板上的设备。
实际上,矢量并没有被丢弃——执行这些矢量的语句被转换为注释。如果需要,您可以恢复其中任何一个语句。
节点库测试也是数字程序生成器用来创建可执行测试的模板。然而,节点库测试更可能是面向节点的测试,为板上的某个特定电路编写,而不是作为通用测试。当然,如果您确实有一个用于多个板的电路,那么可以编写一个针脚导向的节点库测试并重复使用该测试,就像重复使用电路内设备测试一样。
可执行测试的源文件是ASCII文件,您可以在数字模式下编辑,并重新编译。您可以对这些测试做出任何更改。然而,如果您所做的更改需要对板的拓扑进行更改或修正,那么您必须将该测试保存为库测试并编译。然后重新运行程序生成软件。在您对板数据做出必要的更改后,软件会自动重新生成新的可执行测试,并重新分配固定器引脚以适应这些更改。
库测试的要求
以下是在库测试中需要注意的特殊事项。
- assign to 语句必须使用引脚或节点格式来分配引脚到组中;不能使用设备 <设计符> 和继电器格式。
- 不能使用默认设备语句。
- 需要 family 和 power 语句。
- combinatorial、sequential、flash、flash isp、pld isp、andtree、nandtree、nortree、xnortree 和 xortree 语句是可选的——默认是 sequential。
- outputs limited to 语句是可选的。该语句为 SAFEGUARD 安全分析程序提供更精确的信息,这可能允许放宽特定测试的限制条件。
- nondigital 语句是可选的。该语句允许指定所有设备引脚,以便在编译电路板数据时,编译器不会生成不必要的警告信息。
- 如果设备可以预处理,必须包括 disable with 和 condition with 语句,以便数字程序生成器可以安排在测试其他设备时禁用或处理该设备。如果设备需要多向量预处理,将一个 unit disable method 添加到测试中。
- 不能使用标识符 Disablegroup 和 Disablevector,因为数字程序生成器使用它们来禁用其他设备。
- 可以在矢量执行部分的单元中使用 tied 语句,以表明通常未连接的引脚被假定为在该单元中相互连接。这使得可执行测试能够测试非标准配置。
- 组合库测试不应包含归位循环。
- 仅设置的测试只需测试的声明部分。
可执行测试的要求
以下是在可执行测试中需要注意的特殊事项。通常,你不会编写完整的可执行测试,但有时可能需要编辑其中一个。
-
assign to 语句可以使用任何类型的引脚标识。如果使用 pins <引脚列表> 格式,则必须在 assign to 或默认设备语句中指定设备设计符。
-
以下语句不适用于可执行测试:
combinatorial when
condition with andtree
disable with nandtree
outputs limited to nortree
sequential xnortree
trace to xortree -
如果使用 tied 语句,编译时会检查引用的矢量,以确保其不会尝试将连接的引脚设置为不同的状态。
-
如果在测试该部分时需要禁用或调整其他部分的状态,那么禁用或调整其他部分状态的引脚应被分配到一个带有标识符 Disablegroup 的组,并为这些引脚提供正确的默认设置。当测试被编译时,禁用向量 DisableVector 会自动生成。Disablegroup 不能出现在测试的矢量定义部分。
-
当编译一个可执行测试时,如果它不包含矢量定义或矢量执行部分,会生成警告且不产生对象。这防止你尝试用仅设置的测试来测试设备。然而,系统资源仍会为此测试分配。