3、DFT基本概念:可观测性、可控性、测试访问机制,以及DFT对芯片成本和良率的影响

在数字IC设计中,可测试性设计(Design for Test, DFT)并非一项“可选项”,而是确保芯片在量产阶段能够被高效、低成本地验证其功能与可靠性的必要工程手段。随着工艺节点不断微缩,芯片集成度与复杂度呈指数级增长,一颗SoC可能包含数亿个逻辑门、数百个时钟域以及大量模拟与数字混合接口。若不在设计阶段就植入测试结构,流片后的故障定位将如同大海捞针,甚至导致整个项目失败。本章将深入剖析DFT的三大核心支柱——可观测性(Observability)、可控性(Controllability)与测试访问机制(Test Access Mechanism, TAM),并系统阐述DFT结构对芯片制造成本与最终良率(Yield)的深远影响。理解这些基本概念,是后续学习扫描链插入、内建自测试(BIST)以及JTAG边界扫描等具体技术的前提。

DFT 核心概念与影响链路图 核心逻辑 (Core Logic) 组合逻辑 + 时序单元 可控性 (Controllability) 设置内部节点为特定值 可观测性 (Observability) 捕获内部节点状态 激励注入 响应捕获 测试访问机制 (TAM) JTAG TAP · 扫描链移位 · 测试模式选择 测试时钟/控制 ATE 测试机 向量生成/比对 芯片成本影响 · 面积开销 (扫描单元/逻辑) · 引脚开销 (测试模式/时钟) · 测试时间 (向量深度/频率) 良率与质量影响 · 故障覆盖率提升 · 缺陷定位精度 · 早期失效率 (DPPM) 降低 DFT 设计权衡 (Trade-off) 更高的可测试性 → 增加面积与设计复杂度 更高的故障覆盖率 → 降低DPPM,提升品牌可靠性

上图清晰地展示了DFT三大基本概念在芯片测试中的核心位置及其相互作用关系。可控性决定了测试激励能否有效地施加到内部节点,可观测性决定了内部响应能否被捕获并传输到芯片外部,而测试访问机制则是连接芯片内部测试结构与外部测试设备(ATE)的“桥梁”。这三者共同决定了测试向量生成的难易程度、测试时间的长短以及最终故障覆盖率的高低。接下来,我们将逐一展开详细论述。

3.1 可控性:将测试激励“注入”芯片内部的能力

核心原理

可控性(Controllability)是指通过芯片的原始输入(Primary Inputs, PI)或已插入的测试端口,将特定逻辑值(0或1)设置到芯片内部任意节点的能力。在纯组合逻辑电路中,可控性相对容易实现,只需在输入端施加相应的向量即可。然而,在时序逻辑电路中,内部寄存器的状态由时钟沿触发,且状态转移依赖于前一个状态。若没有额外的测试结构,要控制一个深层次的状态寄存器将需要极长的向量序列,这在工程上几乎不可行。

因此,DFT中最核心的可控性提升手段是扫描链(Scan Chain)技术。其基本原理是将设计中所有的时序单元(触发器)替换为带有扫描功能的扫描触发器(Scan Flip-Flop, SFF)。这些SFF在测试模式下被连接成一条或多条移位寄存器链,通过一个专用的扫描输入引脚(Scan In)和扫描时钟,可以在几个时钟周期内将任意测试向量“移入”所有触发器,从而实现对内部状态的完全控制。

判断方法与操作流程

在工程实践中,评估一个节点的可控性通常使用Sandia可控性度量(SCOAP)。该度量将可控性分为组合可控性(CC0/CC1)和时序可控性(SC0/SC1)。CC0表示将节点设置为0所需的组合逻辑赋值数量,CC1表示设置为1所需的赋值数量。数值越小,可控性越好。设计工程师通常使用EDA工具(如Synopsys TetraMax、Cadence Modus)在综合后运行DFT规则检查(DRC),报告所有节点的可控性指标。若发现某些节点可控性差(例如CC值大于100),则需要考虑插入测试点(Test Point),即增加额外的逻辑门来强制该节点为0或1。

// 伪代码示例:扫描链插入后的测试控制流程
// 1. 进入测试模式 (Test Mode = 1)
// 2. 加载扫描使能 (Scan Enable = 1)
// 3. 施加移位时钟 (Shift Clock) N次,将测试向量移入扫描链
// 4. 设置扫描使能 (Scan Enable = 0)
// 5. 施加捕获时钟 (Capture Clock) 1次,捕获组合逻辑响应
// 6. 设置扫描使能 (Scan Enable = 1)
// 7. 施加移位时钟 (Shift Clock) N次,将响应移出扫描链并比对

案例拆解:深时序路径的可控性优化

在某AI加速芯片项目中,设计包含一个128级的深度FIFO(先入先出队列)。在初始DFT审查时,发现FIFO内部读指针的某个状态位可控性极差(CC0=150, CC1=160)。这意味着测试该状态位需要超过150个时钟周期的向量序列,不仅增加了测试时间,还导致自动测试向量生成(ATPG)工具无法为该节点生成有效测试。解决方案是在FIFO的读指针逻辑上插入一个“测试点”:一个与门和一个或门,分别用于强制清零和置位。插入后,该节点的CC0降至4,CC1降至5,ATPG工具成功为该节点生成了测试向量,故障覆盖率从82%提升至97.5%。代价是增加了约0.2%的面积开销,但换来了测试时间的显著缩短(从原本预计的200万周期降至15万周期)。

经验提醒:可控性设计并非越多测试点越好。每插入一个测试点都会增加面积和布线拥塞。建议优先优化那些在ATPG报告中显示为“未检测故障(Undetected)”且CC值大于100的节点。同时,测试点应尽量选择在逻辑锥的扇出点,以最大化影响范围。

3.2 可观测性:将内部响应“传输”到芯片外部的能力

核心原理

可观测性(Observability)是指通过芯片的原始输出(Primary Outputs, PO)或测试端口,观察芯片内部任意节点逻辑值的能力。与可控性类似,纯组合逻辑的观测相对容易,但时序逻辑内部状态无法直接通过外部引脚观察。扫描链技术同样解决了这一问题:在捕获时钟沿,组合逻辑的响应被捕获到扫描触发器后,通过移位操作即可将这些响应逐一移出芯片,在ATE上与预期值进行比对。

除了扫描链,另一种重要的可观测性提升技术是内建自测试(BIST),特别是存储器BIST(Memory BIST)。对于芯片内嵌的SRAM,由于存储单元密度高、缺陷模式复杂,直接通过扫描链观测需要极大的向量深度。MBIST通过在存储器周边集成测试逻辑(如LFSR生成地址和激励,MISR压缩响应),可以在芯片内部自动完成测试向量的施加和响应的比对,仅需输出一个“通过/失败”信号,极大地降低了对ATE存储深度和带宽的要求。

判断方法与操作流程

可观测性的量化同样采用SCOAP度量,包括组合可观测性(CO)和时序可观测性(SO)。CO值表示从该节点到可观测输出所需穿越的组合逻辑级数。在DFT验证阶段,工程师通过仿真波形检查扫描链的移位和捕获过程是否正确。关键检查点包括:扫描链是否在移位时钟下正确传递数据、捕获时钟是否与系统时钟正确隔离(避免时钟竞争)、以及扫描输出引脚是否在指定时间窗口内输出有效数据。

观测手段 适用场景 面积开销 测试时间 故障覆盖率
扫描链输出 通用逻辑电路 中等 (约5-10%) 较长 (取决于链长) 高 (可达98%+)
存储器BIST 嵌入式SRAM/DRAM 低 (约1-2%) 短 (并行测试) 高 (针对存储单元)
逻辑BIST 大规模逻辑阵列 高 (约15-20%) 短 (片上生成) 中等 (约90-95%)
JTAG边界扫描 板级互连测试 低 (IO单元) 中等 针对引脚级

常见误区与总结复盘

一个常见的误区是认为只要扫描链能够正确移位,可观测性就得到了保证。实际上,扫描链本身也可能存在缺陷(如链断裂、保持时间违例)。因此,在芯片测试中,首先会执行扫描链测试(Scan Chain Test),即移入一个简单的“0101”模式,检查移出的数据是否一致。如果扫描链本身损坏,后续所有基于扫描链的测试都将失效。此外,对于多时钟域设计,跨时钟域路径的观测需要特别处理,通常使用同步器或专门的跨域测试逻辑,否则在捕获阶段容易产生亚稳态,导致测试结果不稳定。

风险提示:在低功耗设计中,常使用电源门控(Power Gating)技术。当某个模块被断电时,其内部扫描触发器的状态会丢失。若在测试模式下未正确管理隔离单元(Isolation Cell)和保持寄存器(Retention Register),将导致可观测性数据错误。务必在DFT规则检查中验证电源关断域与常开域之间的测试路径。

3.3 测试访问机制:连接内部测试结构与外部测试设备的桥梁

核心原理

测试访问机制(TAM)定义了测试数据(激励和响应)如何从芯片外部传输到内部测试结构,以及测试控制信号(如测试模式、扫描使能、时钟)如何被管理和分配。最广泛使用的TAM标准是IEEE 1149.1(JTAG)。JTAG定义了5个标准引脚:TCK(测试时钟)、TMS(测试模式选择)、TDI(测试数据输入)、TDO(测试数据输出)和TRST(可选复位)。通过TAP(测试访问端口)控制器状态机,可以访问芯片内部的边界扫描寄存器、指令寄存器以及用户自定义的数据寄存器(如扫描链)。

在复杂的SoC中,通常存在多个测试域(如不同的时钟域、电压域)。TAM的设计需要确保测试时钟能够正确地在各个域之间分配,并且测试数据路径不会产生竞争。此外,为了降低ATE的通道成本,现代芯片广泛采用测试压缩(Test Compression)技术,如Synopsys DFTMAX和Cadence OCC。压缩技术通过在扫描链的输入端增加解压缩器(Decompressor),在输出端增加压缩器(Compactor),使得ATE只需传输少量压缩数据即可控制内部大量的扫描链,从而显著减少测试数据量和测试时间。

操作流程与工程实践

在芯片DFT实现阶段,TAM的搭建通常遵循以下步骤:

  1. 定义测试架构:确定是采用单条全局扫描链还是多条并行短链。短链可以缩短移位时间,但需要更多的测试引脚。
  2. 插入JTAG TAP控制器:集成第三方或自研的TAP IP,并连接所有需要测试访问的模块。
  3. 实现测试压缩逻辑:在TDI和扫描链之间插入解压缩器,在扫描链和TDO之间插入压缩器。需要配置压缩比例(如100倍)。
  4. 生成测试协议:使用STIL(Standard Test Interface Language)或WGL(Waveform Generation Language)格式描述测试时序,供ATE使用。
// STIL 测试协议片段示例
STIL 1.0 {
  Signals {
    TCK In; TMS In; TDI In; TDO Out; ScanEn In;
  }
  Timing {
    WaveformTable wft1 {
      Period '100ns';
      Waveforms {
        TCK { P { '0ns' '0'; '50ns' '1'; } }
        TMS { P { '0ns' '0'; } }
        TDI { P { '0ns' '0'; } }
        TDO { P { '0ns' 'Z'; '90ns' 'X'; } }
      }
    }
  }
  PatternBurst {
    PatternList { "scan_test_1" "scan_test_2" }
  }
}

案例拆解:多核处理器的TAM设计权衡

某款车规级多核处理器(4个Cortex-A78核心)在DFT规划初期面临一个关键决策:是采用传统的“每核独立扫描链”还是“全芯片统一扫描链”。独立扫描链的优点是每个核心可以独立测试,便于故障隔离,但需要更多的测试引脚(每个核心需要独立的ScanIn/ScanOut)。统一扫描链的优点是引脚开销小,但测试向量生成复杂度高,且一旦某条链失败,难以定位是哪个核心的问题。最终,团队选择了折中方案:每个核心内部使用独立的压缩扫描链(压缩比64:1),通过JTAG TAP控制器进行访问。在ATE上,通过TAP指令寄存器选择不同的数据寄存器来测试不同的核心。该方案使得测试引脚仅增加了6个(JTAG 5针 + 1个额外扫描使能),而测试时间相比无压缩方案缩短了约70%。

复盘要点:TAM的设计不仅仅是引脚连接,更关乎测试策略。在项目早期,DFT工程师必须与封装工程师、测试工程师(ATE程序开发)紧密协作,确认封装引脚分配是否满足测试带宽需求。对于高速接口(如PCIe、DDR),还需要考虑在测试模式下是否启用环回(Loopback)模式,以降低对ATE高速通道的依赖。

3.4 DFT对芯片成本和良率的影响:硬币的两面

核心原理与成本构成

DFT结构并非免费午餐,它直接增加了芯片的物理成本。主要成本体现在:面积开销(扫描触发器比普通触发器大约10-15%的面积,测试点逻辑、BIST控制器、TAP控制器均占用面积)、引脚开销(专用测试引脚占用封装资源)、设计周期开销(DFT插入和验证需要额外的工程时间)。然而,这些成本换来的是测试成本的显著降低。测试成本包括ATE机台使用时间(按秒计费)、测试程序开发维护成本、以及因故障漏检导致的返修或现场失效成本。

对良率的影响则更为微妙。良率(Yield)是指通过测试的芯片数量占生产总数量的比例。DFT本身并不提高工艺制造良率,但它通过提高故障覆盖率,能够更准确地筛选出有缺陷的芯片,从而降低“坏品率”(DPPM, Defective Parts Per Million)。更重要的是,DFT提供的可诊断性(Diagnosis)能力,可以帮助工艺工程师快速定位良率损失的根源(如特定金属层短路、特定单元驱动能力不足),从而加速工艺改进,间接提升良率。

量化分析与决策矩阵

DFT方案 面积开销 测试时间开销 故障覆盖率 对良率影响 适用产品
仅边界扫描 (JTAG) <1% 极短 低 (仅IO) 间接 (板级) 简单逻辑芯片
全扫描链 (无压缩) 5-8% 长 高 (95-98%) 直接提升筛选率 中低端SoC
扫描链 + 测试压缩 8-12% 短 高 (95-98%) 直接提升筛选率 高端SoC/手机芯片
全扫描 + MBIST + LBIST 15-20% 极短 极高 (98%+) 显著降低DPPM 车规/工规芯片

实战场景:汽车电子芯片的DFT成本-良率平衡

在开发一款用于自动驾驶域控制器的芯片(符合ISO 26262 ASIL-D等级)时,安全目标要求故障覆盖率必须达到99%以上,且DPPM低于100。为了满足这一严苛要求,设计团队采用了激进的DFT策略:全扫描链(压缩比200:1)+ 所有SRAM的MBIST + 逻辑BIST(LBIST)用于上电自检。该策略使得芯片总面积增加了18%,单颗芯片的制造成本增加了约0.8美元。然而,在量产测试中,由于测试时间从传统的3秒缩短至0.8秒(得益于压缩和并行BIST),每颗芯片的测试成本降低了1.2美元。综合计算,虽然面积成本增加,但总体制造成本反而降低了0.4美元/颗。更重要的是,高覆盖率确保了出货芯片的极低缺陷率,避免了因单个故障导致整车召回的巨大风险。

风险提示:DFT面积开销并非越大越好。当面积开销超过20%时,往往意味着设计过于复杂,可能引入新的布线拥塞和时序收敛问题,反而导致芯片频率下降或制造良率下降。务必在项目规划阶段设定DFT面积开销预算(通常控制在10-15%以内),并定期审查。

总结复盘

DFT的本质是一种“以面积换时间、以设计复杂度换测试可靠性”的工程经济学。可观测性和可控性决定了测试的深度与广度,测试访问机制决定了测试的效率和可行性。一个优秀的DFT架构,应当在面积开销、测试时间、故障覆盖率以及诊断能力之间找到最佳平衡点。对于数字IC设计工程师而言,理解这些基本概念,意味着能够在RTL设计阶段就具备“可测试性思维”,避免在物理实现阶段才发现测试瓶颈,从而缩短项目周期,提升产品竞争力。