芯片测试圈里聊到量产测试程序,SmarTest 8 和 Binning 这两个词基本绕不开。尤其是用 Advantest V93000 系列的团队,每天跟测试程序打交道,最核心的诉求就一个:把每一颗芯片准确分到它该去的Bin里,让良率报表、失效分析、出货等级都清清楚楚。我最早接触 SmarTest 8 的 Binning 机制时,以为不过是“测试挂了就给个Fail Bin”,真去改测试程序、调 Bin Table 才发现里面门道不少。这篇文章就把我对 SmarTest 8 Binning 运行机制的总结写下来,从概念到实操,再带上一些现场踩坑的记录,给正在写测试程序或者维护量产程序的工程师做个参考。
Binning 这件事在芯片测试里属于“看似简单、实则影响交付”的关键环节。简单说,它就是把每颗芯片按测试结果归类:合格的放成几个不同性能等级,不合格的按失效模式分成不同类别。这个归类不只是为了出货,更是为了给良率分析和工艺改进提供数据。SmarTest 8 作为 V93000 的测试程序开发和执行平台,Binning 机制贯穿了测试项评级、Bin Table 映射、数据记录和 Handler/Prober 物理分拣的完整链路。想把它用明白,不能只会在界面上点选,得理解它背后怎么一步步把“测试结果”变成“芯片分类”的。
这篇文章适合刚接手 V93000 测试程序开发的工程师,也适合要排查误 Bin、Bin 计数异常、良率数据对不上的老手。我会把 SmarTest 8 的 Binning 机制拆成几个块:先讲设计思路,再讲核心机制,然后给一套可落地的配置步骤,最后是常见问题排查。中间会穿插我实际调试中遇到的细节。
1. 先搞懂Binning到底在解决什么问题
1.1 一颗芯片从晶圆到成品,Binning卡在哪一步
芯片从晶圆制造到下线的流程大致是:晶圆代工做完前道工艺,晶圆测试(CP,Circuit Probe)先用探针台测每颗 Die,把坏的、性能不达标的提前筛掉;然后封装,再做成品测试(FT,Final Test),确认封装后的芯片功能、性能、可靠性指标满足规格。不管是 CP 还是 FT,最后都要面对同一个问题:测完一大堆项目,怎么告诉后端设备“这颗芯片应该丢进哪个料盒”?
Binning 就是干这个的。它把每个测试项的结果做汇总,结合预先定义好的分类规则,给每颗芯片分配一个 Bin 编号。这个编号不仅代表“Pass”和“Fail”,还承载了更多信息:是哪一项测试不过导致 Fail?性能落在哪个区间?是否可以降级出货?对芯片厂来说,一颗在 1.1V 下跑不过、但在 1.0V 下能跑的芯片,直接报废很可惜,往低频档或者低压档的 Bin 里放,既保住了良率,又满足了不同客户需求。所以 Binning 本质上是一种“分级 + 筛选 + 数据压缩”的机制。
1.2 硬分Bin和软分Bin的区别
行业内经常听到 Hard Bin 和 Soft Bin,这两者在概念上容易混,但在 SmarTest 8 里是两条并行的链路。
Hard Bin 是给 Handler 或 Prober 用的物理分类编号,它最终决定芯片被分到哪个料盒、哪个管装轨道。通常一个 Hard Bin 对应一个物理动作,Handler 根据 Hard Bin 编号把芯片推入对应分类槽。Hard Bin 一旦定了,芯片的物理去向就定了,它是“面向设备”的分类。
Soft Bin 则是测试数据记录用的软件分类编号,主要给工程师和良率系统看。它会更详细,比如同一颗 Fail 芯片,Hard Bin 只给了 Bin 3,但 Soft Bin 可以区分出是开路 Fail、短路 Fail 还是输出电压精度 Fail。Soft Bin 不直接决定物理分拣,但它是失效分析、良率追溯的主要依据。
SmarTest 8 的好处是支持同时维护这两套映射关系。在 Bin Table 里配置一个测试项对应到哪个 Soft Bin、再关联到哪个 Hard Bin,测试执行时两者一起更新,数据记录文件里既有 Soft Bin 也有 Hard Bin。实际写程序时,我会把 Hard Bin 数量控制得尽量少,避免 Handler 料盒不够用,Soft Bin 则尽量细化,方便后期分析。这个设计思路很多新工程师容易忽略,一上来就把 Hard Bin 拆得特别细,等到产线上发现 Handler 只有 16 个料盒时就傻眼了。
1.3 SmarTest 8在Binning链条中的角色
SmarTest 8 是 V93000 测试系统的软件平台,支持测试程序开发、调试、执行和数据记录。它在 Binning 链条里起到“判定中枢”的作用:测试项通过 Test Method 执行,得到测量值和 Pass/Fail 状态;然后由测试流程里的评级规则判定该项是否通过;最后通过 Bin Table 将评级结果转换为 Soft Bin/Hard Bin。
理解这个链路的关键是:Binning 不是一个孤立的“打分动作”,而是从“测试项执行结果”到“Bin Table 映射”再到“设备物理分拣”的完整流水线。SmarTest 8 把每个环节拆开,分别提供配置入口,比如测试项的 Bin 属性、Bin Table 编辑器、流程控制语句等。熟练之后你会发现,绝大多数 Bin 相关的调整都不需要改测试方法代码,只要在测试流程和 Bin Table 层面做配置。
2. SmarTest 8 Binning的核心运行机制
2.1 测试项结果到Bin的映射逻辑
SmarTest 8 里,一个测试项(Test Instance)执行完,会得到一个状态,这个状态通常用差数(差量)表示,比如“实测电压 - 规格上下限”的差值。评级(Test Rating)机制会判断这个差数是否落在允许范围内,最终得到 Pass 或 Fail。
这个“评级结果”并不会自动变成一个 Bin 编号。它要先经过一层映射:测试项本身绑定一个 Bin Id,当测试 Fail 时,SmarTest 8 就按测试项上配置的 Bin Id 去更新当前芯片的最终 Bin。换句话说,芯片的最终 Bin 不是所有测试项 Bin 的集合,而是由测试执行过程中“最后一次更新的 Fail Bin”或者“全部通过时对应的 Pass Bin”来决定的。
这里有个关键机制叫“Bin 更新策略”。SmarTest 8 的测试流程是一步步执行的,每一步都可能触发 Bin 更新。比如先测开短路,如果 Fail,直接给 Bin 5;如果 Pass,继续测功能,再 Fail 就给 Bin 8。这样最终 Bin 就是测试流程里“最先触发 Fail 的那个逻辑分支”对应的 Bin。写流程时就要刻意设计测试顺序,把最容易 Fail 且最能区分失效模式的测试放在前面,既节省测试时间,又能尽早锁定 Bin。
2.2 Bin Table的设计与加载
Bin Table 在 SmarTest 8 里是一张映射表,定义 Soft Bin Id、Hard Bin Id、Bin 描述、计数使能等属性。它看起来简单,但加载时机和文件格式都有讲究。SmarTest 8 的程序文件里会引用 Bin Table 定义,启动测试时加载到内存中。如果测试程序里改了 Bin Table,但没有正确重新加载,量产执行时用的还是旧表,很容易出现“程序里明明改了 Bin,产线上计数却是旧的”。
Bin Table 的配置粒度有两个层面:一是全局定义,二是测试项引用。全局定义确定“有哪些 Bin 编号及含义”,测试项引用确定“这个测试 Fail 时跳哪个 Bin”。这两者必须匹配,否则测试执行时会出现 Bin Id 未定义的报错,或者更隐蔽的问题——Bin Id 定义了你以为的编号,但实际映射到了错误的分级档位。
2.3 Test Rating与Bin判定的顺序
很多工程师会把 Test Rating 和 Binning 混成一个概念。其实 Test Rating 是评级规则,比如“绝对值比较”“相对值比较”“多点限制判断”等;Binning 是在评级完成后,根据评级结果做分类。两者有先后关系:先由 Test Method 做测量,再由 Test Rating 判定 Pass/Fail,最后由 Bin Table 和测试项的 Bin 配置决定当前芯片的 Bin 更新。
这个顺序在实际调试中非常重要。我遇到过一种情况:测试项明明已经 Fail 了,但最终良率没有变化,查了很久发现是 Test Rating 配置成了“不参与结果判定”,导致后面 Binning 逻辑根本拿不到 Fail 状态。说白了,就是测试项失效没有被“上报”,Binning 自然无从谈起。所以检查 Binning 问题之前,先确认 Test Rating 配置是否正确,这个优先级往往比查 Bin Table 更高。
3. 实操:如何配置一套可用的Binning方案
3.1 建立Bin Table的步骤
在 SmarTest 8 里建立 Bin Table,通常可以通过测试程序的 Bin Table 编辑器完成。我习惯的步骤是先在 Excel 里把 Bin 规划好,再导入到 SmarTest 8,这样便于多人评审和版本管理。规划时注意几点:
- Bin Id 要全局唯一,且建议按逻辑分组,比如 10~19 归为功能 Pass 等级,20~29 归为参数 Fail,30~39 归为开短路 Fail。
- Hard Bin Id 要跟 Handler 的料盒通道对齐,别超过设备支持的最大槽位。
- Soft Bin 可以比 Hard Bin 更细,但每个 Soft Bin 必须能关联到一个 Hard Bin。
- 描述信息尽量写完整,包括失效率类别、对应测试项、可出货等级,方便后续追溯。
我建 Bin Table 时还会特意加一列“超规方向”,比如高电流 Fail 和低电流 Fail 要分开编号。两个失效模式如果挤在同一个 Bin 里,后面做良率分析时很难定位工艺具体偏在哪。拆开之后,切片分析、失效定位都方便得多。
3.2 在测试流程中分配Bin
Bin Table 建好,接下来就是在测试流程里给每个测试项分配 Bin。SmarTest 8 的测试流程通常由 Test Suite 组成,每个 Test Instance 有自己的属性设置,其中就包含 Fail Bin 和 Pass Bin。这一段我强调几个容易踩的细节:
- Pass Bin 不是每个测试项都必须配。多数情况下只有流程结束或特定“汇总测试项”才配置 Pass Bin,避免中途某个测试项 Pass 就把最终 Bin 覆盖掉。
- Fail Bin 的更新逻辑要注意“只更新一次”还是“总是更新”。如果开局短路测试 Fail 给了 Bin 20,后续功能测试又 Fail,你会希望保留哪个 Fail Bin?这取决于你的良率分析需求。我倾向保留第一个 Fail Bin,因为导致首次失效的测试往往代表最原始的缺陷模式。
- 有条件跳转的流程里,Bin 分配要覆盖所有分支。我见过一个奇葩问题:某个流程分支里漏配了 Fail Bin,结果芯片测 Fail 后保留的还是上一个测试项的 Bin,最终被当成 Pass 出货,这就是配置检查不严导致的批量事故。
3.3 批量执行与结果回读
配置完 Bin Table 和测试项 Bin,可以在调试模式下用几颗已知好坏的芯片跑一遍,核对测试日志里的 Bin 变化。SmarTest 8 的日志系统会记录每个测试项执行后的 Soft Bin 和 Hard Bin,回读之后跟预期比对,确认每个分支都正确。
量产批量执行时,要关注两点:一是 Bin 计数是否实时上传到良率管理系统,二是数据文件里最后的 Soft Bin 是否与待测设备(DUT)一一对应。我通常会在产线跑首件时额外做一次“已知样本验证”,用几颗校样片确认 Handler 接到 Hard Bin 后确实把芯片放到了正确的料盒。这一步看起来笨,但却是杜绝物理误分的最有效手段。毕竟软件 Bin 对了、Handler 没动对,照样是重大质量事故。
4. 常见问题与排查技巧实录
4.1 芯片误分Bin的典型原因
误分 Bin 在现场最让人头疼,因为它不直接报错,而是等出货后才发现等级不对。按我经验,误分 Bin 的典型原因有三类:
第一类是测试项评级配置错误。比如某个测试项应该用“窗口比较”,实际配成了“上限比较”,导致超出上限才 Fail,低于下限反而 Pass,芯片自然被分到高等级 Bin。
第二类是 Bin Table 里 Soft Bin 与 Hard Bin 映射搞错了。常见于多人维护同一份 Bin Table,后来的人把行插错,导致 Soft Bin 20 关联到了 Hard Bin 3,而 Hard Bin 3 对应的是另一个等级。
第三类是测试流程分支覆盖不完整。前面说的漏配 Fail Bin 就是典型场景,某个分支 Fail 后没更新 Bin,芯片保留了一个 Pass 的 Bin,最终被误分到合格档。
排查这类问题时,我会先看测试日志里每个测试项的评级结果,再核对最后的 Bin 更新顺序。SmarTest 8 的日志足够详细,只要耐心拉出每个测试项执行后的 Bin 状态,基本能定位到是哪一个测试项导致最终 Bin 错误。
4.2 Bin计数对不上的排查思路
产线上 Bin 计数和良率系统不一致,是另一个高频问题。这里有个很容易忽略的点:SmarTest 8 记录 Bin 的时机是“测试结束”还是“流程中途”。如果配置了在中途就把 Bin 上传给 Handler,但后来测试项又把 Bin 改掉了,Handler 已经按旧 Bin 分了芯片,两边的计数就对不上。
排查这类问题,我会按三步走:
先确认 SmarTest 8 数据记录文件的 Bin 分布是否与产线系统一致。如果不一致,说明是上传链路问题。
如果两份数据一致,但跟实际料盒里的芯片不一致,那就是 Handler 通信或物理分拣的问题。
如果数据本身就不合理,比如 Pass Bin 计数远高于良率系统显示,要检查是否有多余的 Bin 更新动作,比如重复执行的测试项把 Fail Bin 覆盖成了 Pass Bin。
4.3 芯片带有PA匹配电路的S参数测试
再补充一个和 Binning 关联紧密的场景:射频芯片测试中,芯片带有 PA(功率放大器)匹配电路时,如何测 S 参数并分 Bin。这个问题在射频前端芯片的量产测试里非常典型。PA 的匹配电路会直接影响 S 参数(反射系数、增益、隔离度),而 S 参数又是判断射频性能是否达标的关键依据。
带匹配电路的芯片在做 S 参数测试时,匹配网络已经集成在芯片内部,测试机实际测量到的 S 参数反映的是“芯片整体 + 匹配电路”的复合特性。这就导致一个问题:匹配电路本身有工艺偏差,S 参数的良率窗口会变窄。Binning 在这个场景里的作用,不只是判断 Pass/Fail,还要考虑把 S 参数落在不同区域的芯片分成不同等级。比如某些频段的输入回损比较好、增益平坦度优的芯片,可以分到更高性能档位,用于高端产品;性能稍差但达标的,分到标准档位,用于大众市场。
实操层面,SmarTest 8 上用 VNA(矢量网络分析仪)或射频测试选件测量 S 参数后,把测量结果跟规格判据做比较。判据可以是多点的 S11 上限、S21 下限、隔离度上限等。每个判据对应一个或几个测试评级,再映射到 Bin。这个映射的关键是“多点一致”:S 参数是全频段的曲线,只在某个频点测到 Pass 不代表整个频段达标,评级时要么使用全频段扫描后的最小值、最大值、均值,要么使用多点判据,避免单点误导。
我做过一个射频前端项目,PA 匹配电路偏了感值,导致高频段增益掉了 2dB,但在规范定义的几个抽样频点上恰好都是 Pass。因为当时 Binning 只配了抽样频点,没有做全频段扫描,结果一大批芯片误分到高端 Bin,流到客户那里后指标不达标。后来我们把 S 参数测试改成全频段扫描,再对关键频段的最差值做评级和 Binning,误分的问题才解决。这里我再强调一次:S 参数相关的 Binning 判据,一定要覆盖器件实际工作频段,而不是只看几个规范上写的点。
4.4 调试期快速验证Bin逻辑的小技巧
调试测试程序时,每次跑完整流程验证 Binning 比较费时。我习惯在 SmarTest 8 里做一套“快速 Binning 验证测试”,把每个 Bin 分支都强制触发一遍。做法是单独建一个调试用的 Test Suite,里面每个测试项手动设置 Pass 或 Fail,不跑真实测量,直接走评级和 Binning 逻辑,然后检查最终 Bin。
这套流程跑一遍只要几秒钟,却能覆盖所有 Bin 更新分支,比用真实芯片反复试快得多。我建议把验证结果对应的日志单独保存,以后每次改 Bin Table 或者改测试项 Bin 配置,先跑这个快速验证,确保硬分 Bin 和软分 Bin 的映射没有异常,再上产线跑真实芯片。这样做最大的价值就是提前暴露分支遗漏和映射错误,不让问题流到量产阶段。
5. 写在最后的几点心得
接触 SmarTest 8 Binning 机制这几年,我最大的体会是:Binning 配置看起来只是填几个表格、设几个属性,但它的质量直接决定量产数据的可信度、出货芯片的等级准确性、失效分析的效率。一套设计良好的 Binning 方案,应该做到“物理分拣和软件分类分离,软硬 Bin 映射清晰,测试项覆盖所有分支,S 参数等模拟量判据覆盖全工作条件”。
最后再分享一个小技巧:Bin Table 的版本管理一定要纳入代码审查流程。很多团队把测试程序管得很好,但 Bin Table 却用 Excel 乱放,回复邮件传来传去,最后谁改了哪一行都查不到。我的做法是把 Bin Table 跟测试程序一起入库,每次改动都有 diff 记录,评审通过后再发布。这样即使出了质量问题,也能快速定位到是哪个版本、哪个字段、哪次改动引入的,追溯链路才完整。