SET_LEVELN 你可以把它理解成:给芯片引脚写一份"电平配方" 。
这份配方规定了:输入低/高电平是多少、输出低/高电平是多少、带多大负载电流、比较参考电压是多少。
写好后,还要用 LEVELS 把这个配方真正加载到测试机硬件上,才会生效。
一、格式长什么样
c
SET_LEVELN(lvl_no, pin_name, vil, vih, vol, voh, iol, ioh, vref [, cll, clh ] [, vppmu, ippmu, i_range ]);
最常用的前 9 个参数:
c
SET_LEVELN(配方编号, 引脚名, 输入低, 输入高, 输出低, 输出高, 灌电流, 拉电流, 参考电压);
二、每个参数通俗解释
| 参数 | 通俗说法 | 常见值 | 范围/单位 |
|---|---|---|---|
lvl_no |
配方编号,相当于给这组电平起个号 | 1~249 | 整数,0 和 250~255 系统占用 |
pin_name |
给哪些引脚设置 | IO_ALLPINS、FUNC_PINS 等 |
单引脚或引脚组 |
vil |
输入低电平电压 | 0V | -2.0V ~ 5.9V |
vih |
输入高电平电压 | 3.3V | -1.9V ~ 6.0V |
vol |
输出低电平判断/驱动目标 | 0.4V | -2.0V ~ 6.0V |
voh |
输出高电平判断/驱动目标 | 2.9V(VDD-0.4V) | -2.0V ~ 6.0V |
iol |
灌电流,测试机从 DUT 吸电流 | 0uA 或 150uA | 0 ~ +12mA |
ioh |
拉电流,测试机向 DUT 供电流 | 0uA 或 -150uA | -12mA ~ 0 |
vref |
比较器参考电压 | 1.5V 或 VDD/2 | -1.75V ~ 5.75V |
cll |
低钳位电压,保护用 | -2V(默认) | -2.0V ~ 5V |
clh |
高钳位电压,保护用 | 6V(默认) | -2.0V ~ 6V,且 clh > cll + 300mV |
vppmu、ippmu、i_range |
PPMU 相关,一般不用 | 可省略 | 可选 |
三、再打个比方
vil/vih:测试机驱动输入时,低电平给 0V,高电平给 3.3V。vol/voh:测试机判断输出时,低于 0.4V 算低,高于 2.9V 算高;同时驱动输出也按这个目标走。iol/ioh:模拟输出负载。不需要负载就填 0。vref:比较器参考电压,有些比较方式会用到。cll/clh:电压钳位,防止意外高压打坏芯片,一般默认即可。
四、简单例子
1. 固定 3.3V 系统
c
SET_LEVELN(2, IO_ALLPINS, 0V, 3.3V, 0.4V, 2.9V, 0uA, 0uA, 1.5V);
LEVELS(2, 2mS); // 加载配方,真正生效
意思是:
- 配方编号 2;
- 所有 IO 引脚;
- 输入低 0V,输入高 3.3V;
- 输出低 0.4V,输出高 2.9V;
- 不带负载电流;
- 参考电压 1.5V。
五、重要注意事项
-
SET_LEVELN只是写配方,LEVELS才是真正加载。改完电平后,必须重新
SET_LEVELN,再LEVELS,硬件才会变。 -
lvl_no不要用 0 和 250~255,这些是系统保留的。 -
量程不能超 ,比如
voh超过 +6V 会报错。 -
clh必须比cll至少高 300mV。 -
CONT 模式下不能改电平,高速连续测试时要注意。
-
不需要负载电流时,
iol和ioh都填 0,最省事。
一句话总结:
SET_LEVELN 就是给引脚写一份"电压标准 + 负载电流"的配方,LEVELS 把它加载到硬件。配方里最常改的是 vih、voh、vol,通常按 VDD 和 VDD-0.4V 来设。