DUT Board Description 与 Measurement Specification 详解
系列: Advantest V93000 SmarTest 8 核心概念解析|第 3 篇(共 8 篇)
适合读者: 已理解 SmarTest 整体架构,开始编写或调试测试配置文件的工程师
前言
上一篇讲完了 SmarTest 的整体层次结构,本篇深入两类最核心的配置文件:
- DUT Board Description(
.dbd):描述物理连接 - Measurement Specification(
.spec):描述仪器设置
这两类文件是所有测试的基础。一个测试程序可以替换 .spec 而不改 .dbd,也可以在不同 DUT board 上使用同一套 .spec------理解这种解耦设计,是真正用好 SmarTest 的关键。
一、Pin 与 Signal:物理与逻辑的分离
在深入文件格式之前,先理解 SmarTest 中两个经常混淆的概念:
Pin(管脚)
"管脚"在 SmarTest 中专指物理连接点,有两种:
- DUT pin:芯片(DUT)上的物理管脚
- Pogo pin:测试机 test head 卡通过 DUT board 接触 DUT pin 的弹性探针
DUT pin 和 pogo pin 在 SmarTest 中永远不直接使用------除了在 DUT board description 文件里定义映射关系时。
Signal(信号)
Signal 是逻辑抽象 ,代表一个有具体功能含义的引脚。测试程序里所有操作都基于 signal 名称(如 CLK、DATA0、VCC),而不是物理管脚编号。
这样的好处是:更换 DUT board 时,只需修改 .dbd 文件中 pogo pin 的映射,所有 .spec、Pattern、Operating Sequence 文件无需改动。
测试逻辑 逻辑层 物理层
───────── → CLK signal → pogo pin 11709 → DUT pin 3
对于复杂 DUT,一个物理 DUT pin 可以承载多路信号(时分复用),但同一时刻只有一个 signal 可以在该 pin 上激活。
二、DUT Board Description(.dbd)
2.1 它描述什么
DUT board description 文件记录了 DUT board 的完整物理布局:
- 配置了几个 site(测试站位)
- 每个 site 上,每个 DUT signal 对应哪个 pogo pin
- 信号的默认属性(default specification settings)
- Utility line 的控制路由
- DUT board 属性和 DUT 属性
2.2 文件格式示例
一个 2-site DUT board 的 .dbd 文件示例:
// DUT board:2 个 site,定义了两路信号
sites = 2;
signal CP {
site 1 { pogo=11709; }
site 2 { pogo=11809; }
}
signal IO0 {
site 1 { pogo=11703; }
site 2 { pogo=11803; }
}
signal VCC {
site 1 { pogo=20101; }
site 2 { pogo=20201; }
// 为这个信号设置默认的电压范围
defaults.level.vrange = 10V;
}
SmarTest 会根据这个文件,在运行时自动把 signal 名解析为对应 site 的 pogo pin 编号,进而找到对应的 test head 卡通道来执行测量。
2.3 与 Multisite 测试的关系
DUT board description 是 SmarTest 实现 multisite(多站位并行测试) 的核心依据。由于每个 signal 为每个 site 单独定义了 pogo pin,SmarTest 可以自动在所有 site 上并行发送激励、采集数据,而测试程序本身不需要任何改动。
如果要改变同时测试的 site 数量,只需修改 .dbd 文件中的 sites = 值,其余文件不受影响。
2.4 Default Specification Settings
.dbd 文件有一个强大但容易被忽视的功能:可以为某个 signal 设置默认仪器属性 ,这些默认值在所有用到该 signal 的测试中生效,除非在 .spec 文件、test table 或 test method 代码中显式覆盖。
设置方式:在 signal 定义中添加 defaults. 前缀的属性:
signal VCC {
site 1 { pogo=20101; }
defaults.level.vrange = 10V;
defaults.level.irange = 100mA;
defaults.safeConnect = on;
}
可设置的默认属性涵盖:
| 属性 | 说明 |
|---|---|
level.vrange |
电压量程 |
level.irange |
电流量程 |
level.settlingTime |
建立时间 |
connectMode / disconnectMode |
连接/断开模式 |
safeConnect |
安全连接开关 |
regulation.* |
电流/电压调节属性 |
protection.* |
过流过压保护属性 |
alarm.* |
告警相关设置 |
注意: Default 只支持字面值(literal),不支持表达式或变量 。需要使用派生单位(如 [A/s])时,须用方括号表示法。
2.5 使用限制与注意事项
- 一个测试程序只能使用一个 DUT board description 文件
- 多个测试程序可以共享同一个
.dbd文件 .dbd文件可以模块化(import 其他.dbd文件),但被 import 的文件只能包含 DUT board 属性,不能包含 site 数量或 signal 定义- 文件大小建议不超过 5,000 行
三、Measurement Specification(.spec)
3.1 它描述什么
Measurement specification 是最"全面"的配置文件,描述了一次测量所需的全部仪器参数,但不包含向量数据(Pattern)和时序编排(Operating Sequence)。
一个 .spec 文件涵盖:
- Signal groups / Aliases:信号分组与别名定义
- Instruments:使用哪些仪器(类型、连接的 signal)
- Timing sets:时序参数集
- Level sets:电平参数集
- Wavetables / Waveforms:波形表定义
- Actions:仪器可执行的动作定义
.spec 文件通过 Setup Editor 编写,使用 SmarTest Setup Format(SSF)语法。
3.2 Spec 与 DUT Board 的解耦
.spec 文件中不包含任何 site 或 pogo pin 的信息。它只使用 signal 名称来指定测量对象。因此:
- 更换 DUT board(修改
.dbd)→.spec无需改动 - 增减测试 site 数量 →
.spec无需改动 - 同一套
.spec可以被多个测试程序复用
3.3 模块化 Spec:import 机制
.spec 文件支持将内容拆分成多个文件,通过 import 语句组合:
// 主 spec 文件:MainSpec.spec
import myDevice.specs.SignalGroups; // 信号分组定义
import myDevice.specs.TimingSetup; // 时序设置
import myDevice.specs.LevelSetup; // 电平设置
import myDevice.specs.Wavetables; // 波形表
// 在此基础上追加或覆盖特定参数
instrument myDcVI {
...
}
这种结构支持:
- 多人协作:不同工程师分别维护 timing、level、wavetable 文件
- IP 核复用:为每个 IP core 定义独立的信号组 spec,import 到主文件
- 参数化配置:用一个文件定义变量,另一个文件赋值
3.4 可在运行时被覆盖
.spec 文件的所有设置都可以被 Test Method 代码在运行时通过 Device Setup API 或 Device Test API 覆盖。覆盖时机和优先级:
.spec 文件基础值
↓ 可被 setup() 方法中的 Device Setup API 覆盖
↓ 可被 update() 方法中的 Device Test API 覆盖(仅修改内存,不改文件)
↓ 可被 execute() 方法中动态调整
文件大小建议不超过 20,000 行。
四、仪器(Instrument):硬件抽象层
仪器是 SmarTest 最重要的抽象概念之一。它将测试程序与底层 test head 卡的具体型号解耦。
4.1 仪器的本质
在 SmarTest 里,你不需要关心"用的是哪块卡",只需要声明"我需要一个 dcVI 仪器"并配置参数。SmarTest 在 bind(绑定) 阶段,根据 DUT board description 中的 pogo pin 映射,自动找到对应的 test head 卡,并把你的参数翻译成该卡的硬件指令。
你写的代码:dcVI instrument,电压 1.2V,电流 100mA
↓ bind 时翻译
实际执行:PS1600 卡的通道 3,以卡特定格式编程
这意味着:只要测试参数在目标卡的规格范围内,同一套测试程序可以跑在不同配置的测试机上,无需修改。
4.2 SmarTest 内置的特殊仪器
除常规的数字/模拟/RF 仪器外,SmarTest 提供三种特殊内置仪器:
| 仪器类型 | 功能 |
|---|---|
| clock | 向 DUT 提供参考时钟信号 |
| loopback | 接收输出引脚的数据,回路到对应输入引脚,用于回路测试 |
| utility | 控制 utility line(辅助控制线) |
4.3 仪器的四个配置要素
每个仪器的配置都由四个元素组成:
① Properties(属性)
仪器的基本参数设置,在 .spec 文件或 Test Method 中指定。大部分属性在测量执行期间不可更改(例外:timing set 和 level set 可以在测量中切换)。
② Connections(连接)
指定仪器连接到哪些 DUT signal。通常有 pos(正极性)和 neg(负极性)两个连接端,支持单端(single-ended)和差分(differential)两种接法。
③ Sets(参数集)
把相关属性打包成一个"集",用于批量切换。最常用的是:
- Timing set:一组时序参数,可在测量中快速切换
- Level set:一组电平参数,可在测量中快速切换
④ Options(选项)
声明可选的硬件资源或特殊能力的使用。帮助 SmarTest 在 bind 时做硬件资源优化。
4.4 Derived Properties(派生属性)
部分仪器属性无法直接在程序中指定,而是 SmarTest 在 bind 时根据硬件情况计算出来的结果(例如:RF 分路器的实际衰减量)。
这些派生属性可以在 Test Method 的 execute() 方法中,通过 Device Test API 查询,用于精确的 pass/fail 判断或数据记录。
五、模块化设计:SmarTest 的工程哲学
DUT board description 和 Measurement specification 的模块化设计,体现了 SmarTest 一贯的工程哲学:每个信息点只存在于一处,需要时引用,不需要时不复制。
模块化的实际收益
| 场景 | 模块化的好处 |
|---|---|
| 更换 DUT board | 只改 .dbd,其余所有文件不动 |
| 调整测试 site 数量 | 只改 .dbd 中的 sites=,spec/pattern 不动 |
| 不同测试共享电平设置 | LevelSetup.spec 被多个主 spec import |
| 多人协作 | timing、level、wavetable 各自独立文件 |
| 版本控制 | 文件粒度细,diff 清晰 |
| 复用 IP 核测试 | IP spec 文件整体复用到新产品项目 |
Fully Qualified Names(全限定名)
SmarTest 中所有 Setup File 用**全限定名(Fully Qualified Name)**来引用,格式是从 source folder 开始的相对路径,以 . 分隔,省略扩展名:
# 文件路径
<project>/src/common/mainSpecs/DpsOn.spec
# 对应的全限定名
common.mainSpecs.DpsOn
# 在另一个 spec 文件中 import
import common.mainSpecs.DpsOn;
对于 testflow 中执行的组件(test suite、testflow):全限定名是调用链的层级路径:
# 主流调用 tf3,tf3 调用 tf1,tf1 包含 setupSuite
Main.tf3.tf1.setupSuite
六、Collaborative Development:团队协作的实践建议
Advantest 建议的协作开发模式:
- 按职责分文件:timing 工程师维护 timing spec,电路工程师维护 level spec,各自独立不冲突
- 用引用而非复制:共享文件放一处,其他地方用 import 引用
- 配合版本控制:所有 SmarTest 配置文件都是纯文本,天然适合 Git/SVN
- Testbed Project 模式:为每个 IP 核建立独立 testbed 项目,开发成熟后引用到产品级项目
- SmarTest Build Path:通过 "New SmarTest Project Link" 将 IP testbed 挂接到产品项目,不需要复制文件
总结
| 文件 | 关注点 | 不包含 | 可被覆盖 |
|---|---|---|---|
DUT board description (.dbd) |
物理连接(signal↔pogo pin)、site 数 | 仪器参数、向量 | 否(整个程序统一用一份) |
Measurement specification (.spec) |
仪器配置(参数、timing、level)、signal 分组 | 向量、Operating Sequence、DUT board 信息 | 是(可在运行时被 Test Method 覆盖) |
下一篇将深入 Timing 规格与 X-Mode,讲清楚 SmarTest 如何用时序参数控制数字信号的精确时序------这是数字测试工程师最需要掌握的核心知识。