一、DFT基础概念:什么是DFT、为什么需要DFT、DFT在芯片设计流程中的位置

大家好,我是你们的DFT讲师。今天咱们聊聊DFT最基础的东西。嗯,别小看这些概念,我见过不少工程师干了三五年,对DFT的理解还停留在「就是插几个扫描链」的层面。这不行。

1.1 什么是DFT?

DFT,全称是Design for Test,中文叫「可测试性设计」。说白了,就是在芯片设计阶段,提前把测试用的「后门」给留好。

你想想看,芯片造出来以后,成千上万个晶体管封装在一个小黑盒子里。你怎么知道它有没有坏?靠肉眼?不可能。靠万用表去量?也量不过来。所以,我们必须在设计阶段就植入一些特殊的电路结构,让测试设备能「钻进」芯片内部,去检查每个逻辑单元是否工作正常。

我个人习惯把DFT比作「给芯片装一套体检系统」。你平时体检,医生不会把你的肚子切开来看,而是用CT、B超这些设备从外部扫描。DFT也是这个道理——通过外部测试设备,利用芯片内部植入的测试结构,完成对芯片健康状况的全面检查。

核心要点:DFT不是测试本身,而是为了让测试变得可行、高效而做的设计工作。

1.2 为什么需要DFT?

这个问题我经常被问到。有些刚入行的朋友觉得:「我设计功能都验证好了,为什么还要额外加一堆测试电路?这不是浪费面积吗?」

嗯,这个问题问得好。我来给你算一笔账。

第一,制造缺陷是客观存在的。 晶圆制造过程中,哪怕工艺再先进,也免不了会有杂质、光刻偏差、金属桥接等问题。我在项目中遇到过一颗芯片,功能仿真全过了,流片回来却发现某个寄存器的输出始终为0。查了半天,原来是制造过程中一根金属线断了。没有DFT,这种问题根本定位不到。

第二,测试成本决定了芯片的利润。 一颗芯片的测试时间每增加1秒,在大规模量产时可能就是几十万甚至上百万的成本。DFT做得好,测试时间可以大幅缩短。

第三,良率分析需要数据支撑。 没有DFT,你只能知道芯片「好」还是「坏」。有了DFT,你能知道芯片「哪里坏了」,这对工艺改进至关重要。

对比项 有DFT 无DFT
缺陷检测能力 可覆盖95%以上内部节点 只能测IO引脚
故障定位 精确到单个逻辑门 基本无法定位
测试时间 秒级(自动化测试) 分钟级(人工逐项测)
量产可行性 高 极低

避坑指南:我曾经见过一个团队,为了节省面积把DFT电路全部砍掉,结果流片回来良率只有30%,而且完全不知道问题出在哪。最后只能一片一片手动测试,成本直接爆炸。记住:省DFT的面积,就是省测试的命。

1.3 DFT在芯片设计流程中的位置

DFT不是设计完成后再「加上去」的东西。它必须贯穿整个设计流程。我习惯把DFT的介入点分成三个阶段:

  • 架构阶段:确定测试策略,比如用哪种扫描方式、需要多少测试引脚、是否要加BIST(内建自测试)等。
  • 实现阶段:在RTL代码中插入测试逻辑,进行综合时保留测试结构,完成ATPG(自动测试向量生成)。
  • 验证阶段:对测试向量进行仿真验证,确保测试覆盖率达标,同时不影响功能时序。

下面这张图可以帮你更直观地理解DFT在整个芯片设计流程中的位置:

芯片设计流程与DFT介入位置 规格定义 架构设计 DFT策略制定 RTL设计 插入测试逻辑 逻辑综合 ATPG生成 布局布线 功能验证 测试向量验证 流片 芯片测试 ATE测试执行 DFT介入节点

从这张图你可以看到,DFT不是某个时间点「做一下」就完事的。它从架构阶段就开始介入,一直持续到芯片测试完成。我个人的经验是,DFT工程师越早介入项目,后期出问题的概率就越低。

小技巧:如果你在项目初期就被拉去开DFT策略会议,恭喜你,这个团队是靠谱的。如果项目都快综合了你才被通知「需要加DFT」,那你就要小心了——大概率是来填坑的。

1.4 DFT的核心技术概览

聊完了基础概念,我简单给你梳理一下DFT涉及的核心技术。这些后面都会详细讲,今天先混个脸熟:

  • 扫描链(Scan Chain): 最基础的DFT技术,把普通寄存器串成链,实现测试数据的串行输入/输出。
  • 边界扫描(Boundary Scan): 主要用于芯片级互联测试,JTAG接口就是基于这个技术。
  • 内建自测试(BIST): 让芯片自己测试自己,常用于存储器测试。
  • 压缩技术(Test Compression): 减少测试数据量,缩短测试时间。

嗯,今天就先到这里。这些概念你消化一下,下一章我们开始动手——我会带你写第一个扫描链的测试用例。到时候你就知道,理论归理论,真正写起代码来,坑还多着呢。

可可精品资料库