3、测试数据压缩原理:测试向量冗余来源、压缩比定义、无损与有损压缩分类

在超大规模集成电路(VLSI)测试中,测试数据量随设计复杂度呈指数级增长。以一款典型的3亿门级SoC为例,其全扫描链测试向量可能超过500 Mb,若采用多站点并行测试,单颗芯片的测试数据量将直接转化为测试时间与ATE(自动测试设备)存储开销。测试数据压缩的核心思想,并非改变故障模型或测试生成算法,而是利用测试向量中固有的冗余信息,在不降低故障覆盖率(或可接受范围内)的前提下,用更少的存储位表示原始测试集。本章将深入剖析冗余的来源、压缩比的量化定义,以及无损/有损压缩的分类边界与工程取舍。

测试数据压缩原理总览 原始测试向量 TD (ATE存储) 含大量X态/固定位 冗余来源 • 无关位(X态)占比高 • 确定性位稀疏分布 • 扫描链间相关性 • 测试向量间重复模式 • 位流内部自相似性 压缩分类 无损 vs 有损 (基于X态处理策略) 无损压缩 X态保留 精确恢复 例: 字典编码 有损压缩 X态填充 近似恢复 例: 广播式 压缩比定义 CR = TD / TE TD: 原始数据量 TE: 编码后数据量 片上解压器 DECOMPRESSOR 位于扫描链前端 扫描链阵列 内部扫描链 (接收展开后向量) 编码 解码展开 核心权衡: 压缩比 vs 硬件开销 vs 测试时间 vs 故障覆盖率

上图展示了测试数据压缩的完整逻辑链路:原始测试向量经编码器(通常由ATE或离线脚本完成)生成压缩后的数据流,该数据流被存储在ATE存储器中;测试时,压缩数据经芯片上的解压器(Decompressor)展开,送入内部扫描链。压缩比的提升直接减少了ATE存储需求与测试通道带宽占用,但代价是芯片面积增加与设计复杂度上升。理解这一平衡,是掌握压缩技术的关键。

3.1 测试向量冗余来源:从数据特征到工程本质

核心原理:测试向量冗余并非偶然,而是由ATPG(自动测试模式生成)算法的内在特性决定的。现代ATPG工具(如Tessent、Modus)在生成测试向量时,仅针对目标故障的敏化与传播条件设置确定位(Care Bits),其余位均为无关位(Don't Care,即X态)。研究表明,典型工业设计中的测试向量,X态占比通常高达70%~95%。这些X态在测试时可以被填充为0或1,而不会影响故障覆盖率,这正是压缩算法的“富矿”。

冗余来源可归纳为以下四个层面:

  • 位级冗余(X态主导):单个测试向量中,确定位稀疏分布。例如,针对一个64位扫描链的故障,可能仅需5个确定位即可完成测试,其余59位均为X态。
  • 向量间冗余(重复模式):不同测试向量之间,尤其是针对同一逻辑锥的多个故障,其确定位存在大量重叠。例如,两个相邻故障的敏化路径相同,仅传播终点不同,导致向量间相似度极高。
  • 结构冗余(扫描链相关性):扫描链的移位寄存器结构决定了相邻扫描单元的值存在时间相关性。若两条扫描链的输入来自同一压缩器输出,则它们之间的数据存在空间相关性。
  • 算法冗余(ATPG约束):ATPG工具为保证故障覆盖率,会生成大量“冗余向量”用于处理多故障同时激活的情况,这些向量中往往包含大量可合并的位模式。

工程量化示例:某28nm工艺GPU芯片,逻辑门数约2.1亿,扫描链总数4200条,每条链长度320位。ATPG生成测试向量集共12,500个向量,原始数据量计算如下:

原始数据量 T_D = 12,500 × 4200 × 320 = 16.8 Gb = 2.1 GB

经统计,该向量集的X态占比为86.3%。若采用简单的X态填充(全部填0),则有效信息量仅为13.7%,即约287 MB。这意味着,理论上存在至少7.3倍的压缩空间(16.8/2.3)。实际工程中,通过字典编码与广播式压缩的组合,可实现约40~60倍的压缩比,远高于理论下限,原因在于同时利用了向量间冗余与结构冗余。

3.2 压缩比定义:量化指标与计算陷阱

判断方法:压缩比(Compression Ratio, CR)是衡量压缩效率的核心指标,其定义必须明确分子与分母的物理含义。标准定义如下:

符号 含义 计算方式 典型范围
TD 原始测试数据量 向量数 × 扫描链数 × 扫描链长度 数百Mb ~ 数十Gb
TE 压缩后数据量 实际存储于ATE的编码数据量 数Mb ~ 数百Mb
CR 压缩比 TD / TE 10× ~ 100×
η 压缩效率 (1 - TE/TD) × 100% 90% ~ 99%

工程中常见的计算陷阱包括:

  1. 混淆测试时间与数据量:压缩比仅衡量数据量,而测试时间还受限于ATE通道带宽与解压器吞吐率。高压缩比不一定意味着短测试时间。
  2. 忽略X态填充策略:有损压缩中,X态被填充为特定值,但填充后的向量仍需满足故障覆盖要求。若填充不当导致确定位冲突,则需额外增加向量,实际压缩比会下降。
  3. 未计入解压器硬件开销:压缩比是纯数据指标,但解压器占用的芯片面积(通常为0.5%~2%)与设计时间成本需单独评估。

经验提醒:在项目立项阶段,建议同时定义有效压缩比(考虑解压器面积后的等效压缩比)与测试时间压缩比(考虑ATE通道限制后的时间节省率)。例如,某设计CR=50×,但解压器面积增加1.2%,且ATE通道数受限导致测试时间仅节省30%,则需重新评估方案价值。

3.3 无损与有损压缩分类:X态处理的哲学分歧

核心原理:无损压缩与有损压缩的本质区别在于对X态的处理方式。无损压缩要求解压后的向量与原始向量完全一致(包括X态位置),因此必须保留X态的位置信息;有损压缩则允许在解压时对X态进行任意填充(通常为0或1),只要填充后的向量仍能检测原目标故障即可。

两种分类的工程实现与适用场景如下:

维度 无损压缩 有损压缩
X态处理 保留X态位置,编码时记录 填充为0/1,不保留位置
典型算法 字典编码(LZ77/LZSS)、Huffman编码、Run-length编码 广播式压缩(Broadcast)、线性解压器(LFSR重播种)、嵌入式确定性测试(EDT)
压缩比上限 受限于X态占比,通常10×~30× 可突破X态限制,通常30×~100×
硬件复杂度 解压器简单(查找表+状态机) 解压器复杂(LFSR+相位器+映射逻辑)
故障覆盖率风险 无风险,完全等价 需验证填充后向量不丢失故障检测能力
适用场景 小规模设计、X态占比极高、ATE存储极度受限 大规模SoC、扫描链数量多、追求极致压缩比

判断方法:选择无损还是有损压缩,需基于以下决策路径:

  1. 统计测试向量集的X态占比。若X态占比 > 90%,优先考虑有损压缩,因为无损压缩的字典编码效率会因X态位置信息而显著下降。
  2. 评估解压器面积预算。若芯片面积余量小于1%,应选择无损压缩或简单的有损方案(如广播式)。
  3. 检查ATPG工具是否支持“X态感知”的压缩流程。若工具无法在压缩后重新验证故障覆盖率,则只能采用无损压缩。

风险提示:有损压缩的“损”并非指丢失故障覆盖率,而是指丢失X态信息。但若填充策略不当(例如,将X态全部填0导致某个未被激活的故障被意外抑制),则可能产生覆盖盲区。因此,有损压缩必须配合压缩后故障仿真(Compressed Pattern Simulation)进行验证,确保所有目标故障仍被检测。

3.4 案例拆解:从X态统计到压缩方案选型

案例背景:某通信芯片(5nm工艺,约5亿门)完成ATPG后,生成测试向量集共8,000个向量,扫描链配置为2,048条×512位。原始数据量计算如下:

T_D = 8,000 × 2,048 × 512 = 8.39 Gb ≈ 1.05 GB

初步统计显示,X态占比为91.2%。ATE存储容量限制为256 MB,测试通道数为64条,每条通道速率1 Gbps。目标测试时间不超过2秒。

分析过程:

  • 方案A(无损压缩):采用字典编码,实测压缩比为18×,压缩后数据量约466 MB,超出ATE存储限制(256 MB),且解压器面积约0.8%。
  • 方案B(有损压缩-广播式):采用广播式压缩,将2,048条扫描链分为32组,每组64条链共享一个输入。压缩比为45×,压缩后数据量约187 MB,满足存储限制。解压器面积约1.5%,测试时间计算:187 MB × 8 / 64 Gbps ≈ 23.4 ms,远低于2秒目标。
  • 方案C(有损压缩-EDT):采用LFSR重播种的EDT方案,压缩比可达80×,压缩后数据量约105 MB,但解压器面积增至2.3%,且需要额外的ATE同步协议。

决策与结果:综合评估面积、存储与时间约束,选择方案B。实施过程中,通过压缩后故障仿真发现,广播式压缩导致3个随机缺陷未被检测(覆盖率下降0.02%)。通过调整扫描链分组方式(将高相关性链分入同组),并增加2个额外向量,最终覆盖率恢复至原水平,实际压缩比调整为43×。

复盘经验:

  • X态占比是压缩比的第一决定因素,但并非唯一因素。扫描链间的相关性同样重要,可通过计算链间汉明距离来量化。
  • 有损压缩的覆盖率验证不可省略,且应在早期(RTL阶段)就建立压缩后仿真流程,避免后端迭代时才发现问题。
  • 压缩方案的选择需与ATE能力协同。例如,若ATE支持多端口并行加载,则广播式压缩的收益会进一步放大。

3.5 常见误区与总结复盘

误区一:压缩比越高越好。高压缩比往往伴随解压器面积增加、设计时间延长和验证复杂度上升。当压缩比超过50×后,每提升10×,解压器面积可能增加0.5%~1%,且时序收敛难度显著增大。

误区二:无损压缩一定优于有损压缩。无损压缩虽然无覆盖率风险,但其压缩比受限于X态占比。当X态占比超过95%时,无损压缩的字典编码效率极低,甚至可能因X态位置信息过多而导致压缩比低于5×。

误区三:忽略压缩对测试功耗的影响。有损压缩中,X态被填充为固定值,可能导致扫描移位时翻转率(Toggle Rate)升高,从而增加动态功耗。若芯片在测试模式下功耗超标,可能引发电压降(IR Drop)问题,导致测试误判。

总结复盘:测试数据压缩的本质是信息论在DFT领域的应用。冗余来源决定了压缩的理论上限,压缩比定义提供了量化标尺,无损/有损分类则反映了工程权衡的哲学。在实际项目中,建议遵循以下流程:

  1. 早期统计X态占比与向量间相似度,建立冗余基线。
  2. 根据ATE存储、通道数、测试时间与面积预算,初选压缩方案。
  3. 实施压缩后,立即进行故障覆盖率验证与功耗仿真。
  4. 若覆盖率或功耗不达标,优先调整扫描链分组或X态填充策略,而非更换压缩算法。

最终,压缩方案的成功标准并非单一的压缩比数值,而是在面积、时间、功耗、覆盖率四维约束下的综合最优解。