【芯片测试】:3. DUT Board Description 与 Measurement Specification 详解

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 名称(如 CLKDATA0VCC),而不是物理管脚编号。

这样的好处是:更换 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 APIDevice 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 建议的协作开发模式:

  1. 按职责分文件:timing 工程师维护 timing spec,电路工程师维护 level spec,各自独立不冲突
  2. 用引用而非复制:共享文件放一处,其他地方用 import 引用
  3. 配合版本控制:所有 SmarTest 配置文件都是纯文本,天然适合 Git/SVN
  4. Testbed Project 模式:为每个 IP 核建立独立 testbed 项目,开发成熟后引用到产品级项目
  5. 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 如何用时序参数控制数字信号的精确时序------这是数字测试工程师最需要掌握的核心知识。


相关推荐
Meraki.Zhang1 天前
【芯片测试】:SmarTest 开发环境入门
芯片测试
Meraki.Zhang1 天前
【芯片测试】:Driver、Comparator、PMU 与 Active Load
芯片测试
Meraki.Zhang2 天前
【芯片测试】:什么是 VCDSTIL?
芯片测试
Meraki.Zhang2 天前
【芯片测试】:基于时钟的时序提取
芯片测试
黑猫学长呀6 天前
存储宝典第6篇:测试机台的PE板和PPB板有什么区别?
测试工具·fpga开发·ssd·芯片测试·ate·存储芯片·测试机台
Meraki.Zhang7 天前
【芯片测试】:SmarTest 8 Software Overview
芯片测试
Meraki.Zhang7 天前
【芯片测试】:SmarTest 8 Hardware Overview
芯片测试
Meraki.Zhang14 天前
【芯片测试】:斜坡直方图测试
芯片测试
Meraki.Zhang2 个月前
【芯片测试】:SmarTest 8:Usage of Test Tables 运行机制总结
芯片测试·93k