第一章:向量生成流程——从RTL设计到ATE向量的全链路

各位工程师朋友,大家好。我是老张,在ATE测试这行摸爬滚打了十几年。今天咱们开始聊《量产测试向量生成与优化技巧》的第一章。说实话,每次带新人,我最头疼的就是他们搞不清向量到底是怎么从设计图纸变成ATE能跑的东西。嗯,今天我就把这个流程掰开了讲清楚。

1.1 从RTL到ATE:一条完整的向量生产线

你想想看,一颗芯片从设计到量产,测试向量是怎么来的?说白了,它就像一条流水线。RTL代码是原材料,ATE向量是最终产品。中间经过的每一步,都有专门的工具在干活。

我个人习惯把这条链路分成四个阶段:

  • RTL设计阶段:设计师写代码,做功能仿真。这时候的测试叫功能测试,但量产时基本不用——太慢了,覆盖率也低。
  • 综合与DFT插入阶段:把RTL变成门级网表,同时插上扫描链、BIST这些可测试性设计结构。这一步很关键,决定了后面能不能生成高质量的向量。
  • ATPG阶段:用EDA工具自动生成测试向量。这是咱们今天的重点。
  • ATE适配阶段:把ATPG生成的向量格式转换成ATE机台能识别的格式,比如STIL、WGL或者泰瑞达的格式。

我在项目中遇到过好几次,设计团队觉得ATPG是测试工程师的事,结果流片回来发现覆盖率只有60%。为什么?因为DFT没插好,ATPG工具再牛也白搭。所以记住,向量生成不是测试一个部门的事,设计、DFT、测试必须从一开始就坐在一起。

1.2 EDA工具生成向量的原理

市面上主流的ATPG工具有三款:Synopsys的TetraMAX、Mentor(现西门子)的FastScan和TestKompress。它们虽然来自不同厂家,但核心原理大同小异。

工具名称 厂商 核心特点 我个人的使用感受
TetraMAX Synopsys 速度快,支持大规模设计 我最早用的就是它,上手快,文档全
FastScan Mentor 算法成熟,调试方便 调试故障时特别好用,能一步步看
TestKompress Mentor 内建压缩,向量量少 量产时我首选它,能省不少测试时间

这些工具怎么工作的?我简单说一下。它们读入三个东西:门级网表、库文件(包含每个标准单元的故障模型)、以及测试协议(比如扫描链的定义)。然后工具会做三件事:

  1. 故障建模:把电路中所有可能的物理缺陷映射成逻辑故障。最常见的是 stuck-at 故障模型,就是假设某个节点永远 stuck at 0 或 stuck at 1。
  2. 故障仿真:模拟每个故障在施加测试向量后的表现,看看能不能被检测到。
  3. 向量生成:对还没被覆盖的故障,用ATPG算法生成新的向量。

这里有个坑,我曾经踩过。有一次用TetraMAX跑一个200万门的芯片,默认设置下跑了三天三夜没出结果。后来发现是故障列表太大了,没做故障压缩。其实工具默认会做故障等价合并,但有些设计需要手动调参数。嗯,这个后面会细讲。

1.3 ATPG算法的三大基石

ATPG算法听起来高大上,其实核心就三个:D算法、PODEM、FAN。我当年学的时候也觉得头大,后来做多了发现,理解它们的关键就一句话——怎么在巨大的逻辑电路中找到一条路径,能把故障效应传到输出端

1.3.1 D算法:老祖宗级别的算法

D算法是1966年提出的,现在看确实老了,但思想很经典。它用D和D̅两个符号表示故障值。D表示正常是1、故障是0;D̅表示正常是0、故障是1。

算法分三步走:

  • 故障激活:在故障点设置相反的逻辑值,让故障效应显现出来。
  • 故障传播:沿着逻辑路径,把D或D̅一路传到某个输出引脚。
  • 线值确认:给其他所有输入赋值,保证前面两步能成立。

说白了,D算法就是穷举所有可能的路径。电路小的时候还行,大了就慢得离谱。我记得刚入行时用D算法跑一个几千门的电路,等结果出来都能喝杯咖啡了。

1.3.2 PODEM算法:聪明一点的搜索

PODEM是1981年提出的,它改进了D算法的盲目性。PODEM只对芯片的原始输入(PI)做赋值,然后看能不能激活并传播故障。如果不行,就回溯重新选。

你可以把PODEM想象成走迷宫:D算法是每条路都走一遍,PODEM是走不通就退回来换条路。效率高了不少。

我在项目中遇到过这样的情况:用D算法跑一个模块要2小时,换成PODEM只要15分钟。当然,具体效果跟电路结构有关,不是绝对的。

1.3.3 FAN算法:更进一步的优化

FAN算法在PODEM基础上做了两个重要改进:

  • 多路回溯:一次可以回溯多个赋值点,而不是一个一个来。
  • 唯一敏化:提前识别出那些必须赋特定值的线,减少搜索空间。

说白了,FAN就是更聪明地剪枝。现在主流的ATPG工具,底层核心算法基本都是FAN的变种。你想想看,一个几百万门的芯片,如果还用D算法那种穷举法,估计芯片都量产完了向量还没生成完。

核心要点:三种算法的本质区别在于搜索策略。D算法是广度优先,PODEM是深度优先加回溯,FAN是带启发式的深度优先。实际工具中,会根据电路特点动态选择算法,甚至混合使用。

1.4 向量生成的全流程SVG图

下面这张图是我自己画的,把整个流程串起来了。你看一遍应该就能记住。

从RTL到ATE向量的全流程 RTL设计 功能仿真验证 综合 + DFT插入 扫描链/BIST/边界扫描 ATPG向量生成 TetraMAX/FastScan/TestKompress ATE适配与转换 STIL/WGL/ATE格式 格式转换 ATPG内部流程 读入网表 + 库 + 协议 故障建模与压缩 ATPG算法生成向量 ATPG算法选择 • D算法:穷举,小电路 • PODEM:回溯,中等规模 • FAN:启发式,大规模 输出:测试向量文件 .stil / .wgl / .vcd

个人小贴士:刚开始学ATPG时,别急着上手跑大芯片。找个几千门的小模块,用三种算法各跑一遍,对比一下向量数量和运行时间。我当年就是这么干的,效果比看十遍理论都好。

1.5 实际项目中的避坑指南

最后,我分享几个实战中容易踩的坑:

坑一:我曾经遇到过,ATPG跑出来的向量在ATE上死活过不了。查了两天才发现,是测试协议里扫描链的时钟定义反了。工具不会报错,但向量就是错的。所以,一定要先做DRC检查,确认协议文件没问题。

坑二:有次用TestKompress做压缩,压缩比设得太高,结果覆盖率掉了5个点。后来才知道,压缩比不是越高越好,要跟芯片的测试时间、ATE通道数一起权衡。一般建议先设10:1,再慢慢调。

坑三:很多新手拿到网表就直接跑ATPG,结果跑出来一堆X态传播的问题。其实应该在综合阶段就处理好X态,比如插入X态屏蔽逻辑。否则ATPG生成的向量会包含很多无效的X态,覆盖率虚高,实际测不出来。

好了,第一章就聊到这儿。向量生成这个流程,说白了就是设计、DFT、测试三个团队协作的结果。工具只是工具,关键是人要懂原理、会避坑。下一章咱们聊聊怎么优化向量质量,让覆盖率又高、向量量又少。


公众号:蓝海资料掘金营,微信deep3321