一、DFT测试基础:什么是DFT、DFT在芯片设计中的角色、常见的DFT技术

大家好,我是你们的DFT讲师。今天咱们聊聊DFT最基础的东西。说实话,我刚入行那会儿,觉得DFT就是个“加测试点”的活儿,后来被现实狠狠教育了一回——有一次芯片流片回来,功能全对,但就是测不出来,良率直接崩了。从那以后,我才真正理解了DFT的分量。

1.1 什么是DFT?

DFT,全称Design for Test,中文叫“可测试性设计”。说白了,就是在芯片设计阶段,提前把测试功能考虑进去。你想想看,一颗芯片几亿个晶体管,要是等造出来才发现有问题,那损失可就大了。

我个人习惯把DFT理解成“给芯片装体检设备”。就像人需要定期体检,芯片也需要测试。但芯片内部结构太复杂,你得提前给它设计好“抽血口”、“心电图贴片”,这就是DFT干的事。

核心观点:DFT不是事后补救,而是设计阶段就植入的测试基因。没有DFT的芯片,就像没有仪表盘的汽车——能开,但你不知道它什么时候会出问题。

1.2 DFT在芯片设计中的角色

DFT工程师在芯片团队里,位置其实挺特殊的。我经常跟新人说,我们是“质量守门员”。前端设计把功能做出来,后端把版图画出来,我们负责确保这些都能被有效测试。

具体来说,DFT承担这几个角色:

  • 测试架构师:决定用什么测试策略,扫描链怎么插,BIST放哪里
  • 良率分析师:通过测试数据定位失效原因,帮工艺改进
  • 成本控制者:测试时间每多一秒,量产成本就多一分,我们得在覆盖率和时间之间找平衡

我记得有个项目,客户要求测试覆盖率必须达到99%以上。前端设计说“功能没问题”,后端说“面积紧张”,最后我们DFT团队硬是挤出了3%的面积放测试逻辑。嗯,这就是我们的日常——在夹缝中求生存。

小提示:DFT不是独立存在的。它跟前端设计、后端实现、ATE测试都有强关联。我建议新人先理解整个芯片设计流程,再深入DFT细节。

1.3 常见的DFT技术

DFT技术其实就三大类:扫描链、BIST、边界扫描。咱们一个一个说。

1.3.1 扫描链(Scan Chain)

扫描链是DFT的“老大哥”,也是最基础的技术。它的原理很简单:把普通的触发器(Flip-Flop)换成带扫描功能的触发器(Scan FF),然后串成一条链。

为什么要这么做?因为芯片内部的状态节点太多,你没法直接访问。但通过扫描链,你可以把测试数据“灌”进去,再把结果“扫”出来。就像给芯片装了个“数据管道”。

// 一个简单的扫描链结构示例
// 正常模式:D -> Q
// 测试模式:SI -> Q
module scan_ff (
  input  D,    // 正常数据输入
  input  SI,   // 扫描输入
  input  SE,   // 扫描使能
  input  CLK,  // 时钟
  output Q     // 输出
);
  always @(posedge CLK) begin
    if (SE) Q <= SI;  // 测试模式
    else    Q <= D;   // 正常模式
  end
endmodule

我在项目中遇到过一个问题:扫描链插好了,但时序分析总报错。后来发现是扫描使能信号(SE)的扇出太大,导致时钟偏移。解决办法是给SE信号加缓冲树。嗯,这种坑踩过一次就记住了。

注意:扫描链不是越多越好。链太多,测试时间短但面积大;链太少,面积小但测试时间长。一般根据芯片规模和ATE通道数来定,我习惯控制在每链500-1000个触发器。

1.3.2 内建自测试(BIST)

BIST,全称Built-In Self Test。这玩意儿厉害的地方在于——它让芯片自己测自己。不需要外部ATE设备,芯片上电后自己跑测试,自己判断好坏。

BIST最常用在存储器测试上。为什么?因为存储器(SRAM、DRAM)结构规整,容易生成测试向量。而且存储器占芯片面积大,出问题的概率也高。

常见的BIST架构包括:

  • 测试向量生成器:通常用LFSR(线性反馈移位寄存器)生成伪随机向量
  • 响应分析器:用MISR(多输入特征寄存器)压缩测试结果
  • 控制器:协调测试流程,判断通过/失败

我曾经在一个AI芯片项目里,用BIST测试了128个SRAM宏单元。结果发现有个宏单元在高温下老是报错。一开始以为是BIST逻辑有问题,后来定位到是电源噪声引起的。你看,BIST不仅能测存储器,还能帮你发现电源问题。

关键点:BIST的优点是测试速度快、不需要ATE。缺点是面积开销大(约5-10%),而且只能测固定类型的故障。所以它通常跟扫描链配合使用。

1.3.3 边界扫描(Boundary Scan)

边界扫描,标准叫IEEE 1149.1,俗称JTAG。这技术最早是为了解决PCB板级测试问题,后来被用到芯片级。

它的原理是在每个I/O引脚旁边加一个边界扫描单元(BSC),这些单元串成一条链。通过TAP控制器(Test Access Port)来控制。你可以通过JTAG接口,直接控制芯片的每个引脚,或者读取引脚状态。

边界扫描的典型应用场景:

  1. 板级互连测试:检查芯片之间的连线有没有短路、断路
  2. 芯片内部测试:通过边界扫描链访问内部逻辑
  3. 在线编程:比如FPGA的配置、Flash的烧写

我记得有一次,客户说他们的板子有20%的良率问题。我们用边界扫描一测,发现是BGA焊球虚焊。你想想看,要是没有边界扫描,这种问题得用X光机才能查出来,成本高多了。

实用技巧:边界扫描的TAP控制器有5个信号:TCK(时钟)、TMS(模式选择)、TDI(数据输入)、TDO(数据输出)、TRST(复位,可选)。我建议在设计时把TRST加上,方便调试。

知识体系总览

下面这张图,是我自己整理的DFT测试基础的知识结构。你可以把它当成一个“地图”,方便后续学习时定位。

DFT测试基础 - 知识体系 DFT可测试性设计 扫描链 (Scan Chain) 原理:触发器串成链 作用:测试内部逻辑 关键:SE信号时序 内建自测试 (BIST) 原理:芯片自测自判 作用:存储器测试为主 关键:LFSR+MISR 边界扫描 (JTAG) 原理:I/O引脚串链 作用:板级互连测试 关键:TAP控制器 三者关系与选择建议 • 扫描链:最通用,适合逻辑测试,覆盖率最高 • BIST:适合存储器、模拟IP,测试速度快 • 边界扫描:适合I/O测试、板级调试,接口标准化 • 实际项目:三者组合使用,根据芯片类型和成本权衡

好了,以上就是DFT测试基础的核心内容。我个人觉得,理解这三项技术的关键不在于背概念,而在于想清楚“为什么要这么做”。你想想看,扫描链为什么用触发器串链?因为触发器是芯片里最多的时序单元。BIST为什么用LFSR?因为伪随机序列够用且面积小。边界扫描为什么标准化?因为不同厂商的芯片要能互联测试。

这些技术背后都有很实际的工程考量。我在做项目时,经常跟新人说:别光看文档,多想想“如果我来设计,我会怎么做”。这样学起来,才能真正吃透。

可可精品资料库