Trim 初见
1. Trim 的核心定义
|
类型 | 原理 | 典型应用场景 |
激光修调 | 用激光切割熔丝(Fuse)或调整电阻值 | 模拟芯片(如Bandgap电压基准) |
电子熔丝(eFuse) | 通过电流烧写熔丝,改变电路连接 | 微处理器、存储器的配置修调 |
Flash/NVM修调 | 将修调值写入非易失性存储器(NVM) | 现代SoC、传感器校准(如温度补偿) |
DAC修调 | 通过数字信号动态调整模拟电路参数 | 电源管理芯片(PMIC)的输出电压微调 |
3. Trim 在ATE测试中的关键流程
▶测试发现偏差
例如:测得某DAC的输出电压为1.18V(目标值1.20V±1%)
▶计算修调值
通过算法确定需写入的Trim Code(如二进制1101对应+2%调整)
▶执行修调
通过测试机(ATE)将Trim Code写入芯片的NVM/eFuse
▶验证结果
重新测试参数,确认修调后值进入合格范围
4. 为什么需要防止二次Trim?
· 可靠性风险:重复烧写eFuse/NVM可能损伤存储单元
· 参数失控:叠加修调可能导致过度补偿(如第一次+2%,第二次再+2% → 超差)
· 测试效率:避免无意义的重复操作(修调通常耗时较长,增加测试成本)
▶ 解决方案:
在ATE测试程序中加入防重复修调机制(如首次Trim失败后直接分档到固定HBin,禁止复测)。
5. 实际案例
问题现象:某电源管理芯片(PMIC)的输出电压初始测试值为2.48V(规格要求2.50V±1%)。
Trim操作:
1. ATE计算需增加0.8%的修正量
2. 将Trim Code 0x1A 写入NVM的修调寄存器
3. 复测电压变为2.502V → 合格
若二次误Trim:
可能写入0x1B导致电压升至2.518V → 超出规格上限(2.525V),造成潜在可靠性问题。
Trim技术直接影响芯片的良率和性能,是高端模拟芯片和精密SoC测试中的核心环节。
Trim 又见
1. 编码核心原则:严格遵循设计编码规范
· 必须按照芯片设计文档(如TRM、Datasheet)定义的Trim编码格式处理,包括:o 二进制/格雷码/补码(2’s Complement)编码方式
o 是否需进行XOR掩码解码
o 有效Trim Code范围(避免非法编码导致功能异常)
2. 全编码扫描(Sweep All Trim Codes)
目的:建立Trim Code与输出参数的完整映射关系。
操作步骤:
1. 开发扫描程序:遍历所有有效Trim Code,记录对应输出(如频率、电压、电流等)。
2. 注意异常情况:
o 某些Trim Code可能导致通信失败(如振荡器频率超出通信协议范围)。
o 极端偏置电流可能引发其他功能异常。
3. 早期验证:在ATE开发阶段,选择3~5颗样品执行全编码扫描。
数据管理:
· 将扫描结果保存至Excel文件
· 文件存储路径:
o 本地测试程序目录
o 上传至团队共享文档(便于跨部门协作)
3. 新产品修调方法(Preliminary Trim Method)
推荐策略:线性扫描(Linear Sweep)· 适用场景:新产品导入(NPI)阶段,优先确保修调精度,而非测试时间优化。
· 数据记录要求:
o 记录每个Trim Code对应的测量值(通过ATE Datalog或日志文件)。
o 必须包含以下关键数据:
字段 | 说明 |
Trim Target | 目标值(如1.20V),作为首个记录项 |
Initial Trim | 初始Trim Code的测量值(SAR法为中心码,Sweep法为起始码) |
Best Trim Code | 最佳编码(需解码后记录,如XOR或补码转换后的值,便于分布分析) |
Best Trim Result | 最佳编码对应的实测值 |
Best Trim Delta | 偏差值 = (Best Trim Result) - (Trim Target) |
4. 量产修调优化(High Volume Trim Methods)
适用条件:确认产品进入量产后,可优化测试时间。验证流程:
1. 并行对比:在测试流中同时运行新旧修调方法(如原始SAR/Sweep vs 新算法)。
2. 一致性验证:确保两种方法对大批量样品(>100颗)选择的Trim Code一致。
3. 优化方法示例:
o 二分搜索(Binary Search):快速逼近目标值
o 预测算法:基于历史数据预测最优Trim Code范围
5. 关键注意事项
· 非法编码处理:o 在测试程序中加入Trim Code有效性检查,跳过无效编码(如全0/全1)。
· 通信异常防护:
o 若修调影响DUT通信(如时钟频率变化),需在扫描前启用备份通信模式。
· 数据可追溯性:
o 在测试报告中记录修调版本号、算法类型(如Trim_v1.2_SAR)。
▌ 实战案例(振荡器频率修调)
目标:将内部振荡器频率修调到32.768kHz ±100ppm。步骤:
1. 全编码扫描:
o 遍历256个Trim Code(8位),记录每个Code对应的频率(示波器捕获)。
o 发现Code=0x80~0x8F时通信异常(频率超出UART波特率容限)。
2. 最佳编码选择:
o 从有效Code中选取最接近目标的编码(如Code=0x73 → 32.770kHz)。
3. 量产优化:
o 改用二分搜索法,将修调时间从50ms缩短至10ms。
通过系统化的Trim管理,可显著提升芯片性能一致性和测试效率。
Trim 洞见
Trim编码规范与验证指南
1. 铁律:永远使用设计端编码格式
o 核心原则:Trim值的记录、分析和处理必须严格遵循芯片设计定义的编码格式,包括:· 二进制原码(Unsigned Linear)
· 补码(2's Complement)
· 原码/符号幅度码(Sign Magnitude)
· 格雷码(Gray Code)
o 错误示例:
若设计为4位符号幅度码(-7~7),但测试程序按无符号数(0~15)处理 → 导致修调失效和良率误判。
2. 编码验证方法论
2.1 全编码扫描+图形化分析
步骤:1. 以无符号数格式写入所有可能的Trim Code(如4位码遍历0~15)
2. 测量每个Code对应的输出参数(电压/频率等)
3. 绘制 Code vs. Result 曲线,通过图形特征判断编码类型:
编码类型 | 图形特征 | 示例图示 |
无符号线性 | 单调递增/递减的连续直线 |
![]() |
补码(2'sC) | 中间存在跳变点(如4位补码在7→8时突变) |
![]() |
符号幅度码 | 呈现两段极性相反的线性区域(如负码区斜率相反) |
![]() |
2.2 软件解码示例(供参考)
·
·
·
·
·
·
·
·
·
·
·
·
// 补码转有符号整数
int TwosComplementDecode(uint8_t raw_code, int bits) {
if (raw_code & (1 << (bits-1)))
return -(1 << bits) + raw_code;
else
return raw_code;
}
// 符号幅度码转有符号整数
int SignMagnitudeDecode(uint8_t raw_code, int bits) {
int sign = (raw_code & (1 << (bits-1))) ? -1 : 1;
return sign * (raw_code & ((1 << (bits-1)) - 1));
}
3. 编码错误导致的分布异常
3.1 补码被误读为无符号数
o 正确分布(补码解析):
→ 呈高斯分布,峰值在0附近(设计良好的修调)
错误分布(无符号解析):

→ 出现0和15的异常值(实际是补码的0和-1)
3.2 根本原因
补码的-1(二进制1111)被误认为无符号的15o 导致后果:
· 良率报告出现"虚假异常点"
· 误触发工艺问题调查(实际是数据解析错误)
4. 工程实践规范
4.1 设计沟通清单
在测试开发前,必须向设计工程师(DE)确认以下信息:o Trim的编码格式(补码/符号幅度码/其他)
o 有效范围(如4位补码有效值为-8~7,但设计可能限制为-5~6)
o 非法码处理(是否需跳过全0/全1等特殊编码)
4.2 测试程序开发要求
o 数据记录(供参考):# 示例:补码修调数据记录
def log_trim_result(target, raw_code, bits=8):
decoded = TwosComplementDecode(raw_code, bits)
measured = measure_parameter()
datalog.save({
'Target': target,
'RawCode': raw_code,
'DecodedCode': decoded,
'Measured': measured,
'Delta': measured - target
})
o 自动化校验:
在测试流中插入编码验证步骤(如写入0x80后读取补码值应为-128)
4.3 量产监控
o SPC规则:监控解析后最佳Trim值的分布,发现以下情况需报警:· 分布中心偏移(工艺漂移)
· 双峰分布(可能混入不同编码格式的芯片)
5. 终极排查流程图

通过严格遵循此规范,可避免因Trim编码误解导致的量产灾难(如误判良率损失或漏测参数超差)。