资讯动态

3D-IC测试挑战与Tessent方案:从单芯片可测到堆叠体可测

发布时间:2026/10/5 5:57:14 来源:尧图企业网站定制
3D-IC进入量产爬坡阶段之后很多团队会发现一件事之前积累的DFT和测试经验几乎要推翻一大半。单个裸片的扫描链、BIST、ATPG跑得再顺一旦把几个die用TSV堆在一起测试访问路径、良率模型、故障模式全都变了。这也是为什么这几年Tessent这个工具系列在3D-IC测试领域频繁被提到——它不是多了一个新功能而是把整个测试方法论从单芯片可测升级到了堆叠体可测。这篇文章我会结合自己在3D-IC DFT项目里的实际体会把测试挑战和Tessent的应对思路拆开讲清楚希望能给正在做或准备做3D-IC的工程师一些参考。1. 3D-IC把测试逼到墙角可观测性、良率与TSV缺陷三座山1.1 单芯片时代的测试假设在堆叠体上全部失效传统2D芯片测试有一套非常成熟的闭环先插入扫描链再用ATE把测试向量灌进去观察输出响应然后判断pass/fail。这套闭环依赖一个基本前提——测试仪能直接触达芯片内部绝大部分节点。无论芯片规模多大只要引脚够用、扫描链设计合理测试仪总能通过有限数量的通道把数据送进去。但3D-IC把这个前提砸碎了。多个裸片垂直堆叠之后中间层的die被上下两层夹住它的内部节点、甚至它的I/O都被物理上埋起来了。顶层die的pad还能被探针或封装引脚触达底层die和中间层die几乎只能依赖TSV和微凸点作为唯一的对外窗口。而TSV本身又不是为测试设计的——它是一根垂直导通的金属柱信号通过它传输时存在寄生电容和电阻扫描时钟和测试数据经过几层TSV之后信号完整性已经和单芯片内部走线完全不是一个量级。更麻烦的是堆叠体一旦键合完成中间die的测试访问就只能通过可测试性设计DFT内置的旁路结构来实现。这要求每个die在物理设计阶段就把wrapper cell、测试访问端口TAP、旁路路径全部准备好。等于说测试工程师必须在芯片还没有真正堆叠之前就把堆叠之后怎么测它这个问题想清楚。这正是3D-IC测试和传统DFT最大的认知差异测试方案不是后补的而是和堆叠架构强耦合的。1.2 KGD策略和堆叠良率的乘法账3D-IC引入了一个在2D时代不太被强调的概念已知良好裸片Known Good DieKGD。在2D流程里晶圆测试之后切割、封装不合格的裸片在封装环节通过测试筛掉损失的只是那个单颗芯片的成本。但3D堆叠不一样——把两个良率都只有90%的裸片堆在一起如果事先不对中间die做完整测试最终堆叠体的良率理论上会接近81%损失的是两片好die加一次键合工艺的成本。所以3D-IC必须做裸片级预测试也就是在die还没有键合之前先用探针台对每个die做full-speed测试确保只有KGD才能进入下一道堆叠工序。听上去很简单实际做起来有两个坎第一die在晶圆上时TSV的背面还没有露出探针只能从正面接触TSV本身通不通是测不到的第二晶圆级测试的时间和成本本来就敏感让每颗die做了完整的MBIST和scan测试测试时间一拉长产能立刻成为瓶颈。这就是为什么3D-IC的DFT方案不能只考虑覆盖率还要考虑测试时间和测试成本的平衡。Tessent在这一层的价值主要体现在它的BIST架构设计——把大量测试逻辑从ATE搬到芯片内部让die在裸片阶段就能以较少的测试通道完成自测试而不是靠ATE硬灌海量向量。1.3 TSV与混合键合的缺陷模式和传统互连不是一回事TSV硅通孔是3D-IC最核心的结构也是最容易出问题的地方。TSV的工艺缺陷模式与传统互连截然不同常见的有铜填充空洞voidTSV内铜柱在电镀时出现微小孔洞导致电阻增大严重时会形成开路侧壁绝缘层缺陷TSV侧壁的SiO2绝缘层不均匀导致信号与衬底之间漏电微凸点桥接相邻微凸点间距极小受污染或回流工艺异常时容易短路混合键合界面污染晶圆键合界面的颗粒或氧化物残留会造成接触电阻异常甚至键合强度不足。这些缺陷有一个共同特点很多是隐性的。开路缺陷还好说通过连续性测试能抓到但电阻增大的TSV在常温低速测试下可能完全正常到了高速工作状态下才暴露出延迟或信号完整性问题。这就对测试向量提出了更高要求——不能只做DC判断还要做delay fault测试、甚至需要针对TSV路径做专门的时序测试。另一个麻烦是TSV数量极大。HBM这类堆叠方案里有成千上万个TSV逐一对它们做互连测试测试向量和测试时间都是天文数字。所以实际项目中TSV互连测试通常不追求全覆盖每个通道而是结合BIST架构做并行压缩测试、或采用March-like算法进行快速开路/短路检测。这又回到工具链的支撑能力Tessent的互连测试模块能自动生成针对TSV网络的测试向量并评估覆盖率人工手写是绝对不现实的。1.4 测试插入的次序直接决定成本上限一个3D-IC从晶圆到成品至少会经历三次测试插入点晶圆级KGD预测试、部分堆叠后的mid-bond测试、完整堆叠封装后的post-bond成品测试。每一次测试插入都意味着一笔实打实的成本——测试时间、探针卡或测试座损耗、测试设备的占用。在项目初期很多团队倾向于反正后面还有成品测试KGD测试做得简单点。这个想法在2D时代可行但在3D-IC上风险极大。前面算过那笔账一颗有缺陷的die被堆叠进去后它不仅仅毁掉自己还连带毁掉了其他好die和键合工艺成本。所以合理的策略是在成本允许的范围内把KGD测试做到尽量完整宁可让预测试贵一点也不能让坏die流入堆叠环节。而Tessent在这里提供的价值是通过标准化流程和可复用的测试插入逻辑让设计团队能针对不同测试阶段自动生成不同的测试配置而不是靠人工去切换维护三套测试方案。2. 从Pre-Bond到Post-BondTessent如何布设分层测试防线2.1 三个测试插入点分别要回答什么问题项目里最容易犯的错误是把pre-bond、mid-bond、post-bond三个阶段的测试目标混为一谈。实际上每个阶段要回答的问题完全不同。Pre-bond阶段的目标是这颗die到底好不好。这个阶段die还在晶圆上或者刚切割完还没来得及堆叠测试需要覆盖逻辑功能、存储器、模拟IP和TSV的电气连续性至少是可测的那部分。这个阶段最依赖MBIST和Scan测试的配合因为探针接触的通道数有限测试时间又不能太长。Mid-bond阶段出现在部分堆叠场景比如底部die已经键合到interposer上但顶部的die还没堆上去。这个阶段是2D和2.5D常用interposer方案特有的测试机会可以验证die与interposer之间的互连是否正确尤其是那些在pre-bond阶段触碰不到的微凸点和重布线层。Post-bond阶段是成品测试此时整个堆叠体已经被封装或准备封装。这一阶段的重点是验证完整的TSV链路、跨die的逻辑路径、以及所有die在真实工作条件下的协同表现。这个阶段最难的挑战是热管理和电源完整性——多个die叠加后散热变差测试pattern的toggle rate如果太高可能直接触发局部过热点导致测试过程中芯片损坏。所以post-bond测试pattern必须做功耗感知优化这也是Tessent在做测试调度时的一个重要考量点。用一张表来总结更直观测试阶段主要测试对象典型测试内容关键约束Pre-bond / KGD单die内部逻辑、存储器、IOScan、MBIST、Boundary Scan探针通道有限、测试时间预算紧张Mid-bonddie与interposer之间的互连微凸点、RDL开路/短路测试堆叠未完成部分TSV不可及Post-bond完整堆叠体跨die路径、TSV链路、全速测试热管理、电源完整性、测试访问受限2.2 Tessent Multi-Die与IEEE 1838wrapper不再是可选项3D-IC里每个die都必须具备一个能力当它被埋进堆叠体后外部依然能通过某种标准接口访问它的内部扫描链和BIST逻辑。这个能力的基础就是die-level wrapper。IEEE 1838标准正是为3D-IC测试访问架构而生的它规定了die wrapper cell的结构、串行和并行测试访问端口、以及测试控制信号的层级传递方式。Tessent Multi-Die这个解决方案本质上就是把IEEE 1838落地到真实项目中的一套设计插入和验证流程。它允许设计团队在每个die里插入符合1838标准的wrapper结构然后在堆叠体级别把这些wrapper级联起来形成一个统一的测试访问网络。换句话说哪怕顶层die只有有限的物理引脚测试工程师也可以通过这些引脚通过层级化的wrapper旁路机制访问到底部die的扫描链。这里有一个项目里常见的误区有人觉得既然Tessent支持自动插入wrapper那我只要在顶层跑一遍流程就行了。但实际项目中每个die通常是独立设计、独立验证的不同die可能来自不同团队、甚至不同公司比如存储die来自存储厂商逻辑die来自逻辑团队。关键问题在于每个die插入wrapper时的规范不一致——比如wrapper cell类型不同、测试时钟命名不同、旁路寄存器尺寸不同——在堆叠体集成阶段就会爆发大量接口不匹配的问题。所以从项目第一天起就必须以IEEE 1838和IEEE 1687为共同语言而不是等集成时再统一风格。2.3 内建自测试让裸片自己证明我是好的KGD预测试对测试时间和通道数量的敏感度决定了内建自测试BIST在3D-IC里不是可选加分项而是刚性需求。Tessent MBIST用于存储器测试Tessent LogicBIST用于逻辑自测试。两者的核心逻辑都是把向量生成器、响应分析器比较器、以及控制器全部集成到芯片内部ATE只扮演启动器和结果读取器的角色。以MBIST为例传统方案里ATE需要灌入大量存储器的March算法测试向量每个地址、每个数据位都要通过ATE通道传输。改用MBIST后内部BIST控制器自己去遍历地址空间、写入和读取测试图形ATE只需要发出开始测试和读取测试结果两条指令。这个转变在3D-IC里意义尤其重大因为pre-bond阶段die能接触的探针通道往往只有几十根但一颗die内部的SRAM可能成千上万没有BIST的话光存储测试就足以让测试时间爆炸。LogicBIST的价值则更多体现在post-bond阶段对跨die逻辑路径的覆盖。由于堆叠后内部节点难以用ATE直接访问LogicBIST可以在内部生成伪随机向量、在内部捕获响应然后用特征压缩技术把测试响应压缩成一个很小的签名值。ATEP读出签名值比对预期值即可判断整颗die是否正常。签名压缩的过程有一定混淆风险两个不同的错误响应理论上可能产生相同签名但实际工程中通过合理的特征多项式设计和测试长度控制可以把混淆概率压到极低。2.4 DefectSim在流片前就把覆盖率算明白覆盖率分析在3D-IC里不再是简单的Stuck-at coverage有多少个点。TSV缺陷的电阻性开路、微凸点的桥接、混合键合界面的接触退化这些不是经典的固定型故障模型能完整描述的。测试开发阶段如果没有缺陷级的仿真验证流片后才发现测试方案抓不住某类TSV缺陷改版成本极高。Tessent DefectSim就是用来做这件事的——它能在电路网表上以物理缺陷为基础注入故障比如在某个TSV节点注入一个额外的电阻、把相邻两条TSV短接、或者在金属互连中模拟一个开路间隙然后仿真当前的测试向量集能否检测到这些缺陷。用它跑一遍你会发现有些TSV缺陷虽然拥有很高的测试覆盖率比如基于netlist的Stuck-at覆盖率接近100%但实际缺陷覆盖率远低于预期因为它们导致的故障表现是延迟变化而非逻辑恒定值。我见过一个项目3D-IC的TSV互连测试使用了一个简单的每个TSV发送0/1翻转序列的测试方案逻辑覆盖率看起来不错但DefectSim跑完之后发现对电阻性缺陷的检测率低于80%。后来在测试向量里增加了沿检测逻辑并配合内部BIST的高速时钟域测试缺陷覆盖率才上升到可接受水平。这类问题在仿真阶段发现并解决远比流片后返工划算。3. Streaming Scan NetworkSSN破掉传统TAM的串行瓶颈3.1 菊花链式的TAM在堆叠场景里的痛苦早期3D-IC或多die系统做测试访问最常见的方式是把各die的测试访问机制TAM串成一条长菊花链。顶层die的TAP连到第二层die的TAP第二层再连到第三层扫描数据像击鼓传花一样逐级传递。这种方式逻辑简单但效率极低——扫描数据要经过所有中间die的链条才能到达目标die测试时长和die的数量成正比。具体来说假设有4层die堆叠每层die内部有1000条扫描链每条链长度为1000个scan cell。如果采用菊花链串行访问访问第4层die时测试数据要先穿过前3层die的旁路寄存器这部分的硬件开销和时间开销就像过路费一样。更麻烦的是当某层die的测试时钟频率受限时比如中间die因为TSV信号完整性问题只能跑较低频率整个菊花链都会受限于最慢的那节链路其他die也不得不跟着降速。在3D-IC的测试时间预算里这种串行开销几乎是不可接受的。容量越大、堆叠层数越多菊花链方案的短板就越明显。3.2 SSN的包传输与并行调度原理Tessent Streaming Scan NetworkSSN解决这个问题的思路是把传统点到点的扫描数据搬移改造成类似于网络包的流式传输。SSN内部建立了一个专用测试数据网络数据以包的形式在网络上传输每个包携带目标die、目标扫描链的地址信息。测试控制器根据需要把数据流路由到指定的扫描链而不是让数据从头到尾绕过所有无关die。这个机制带来的直接好处是并行度和复用性大幅提升。多颗die的扫描链可以同时接收测试数据而不是排队等待上游die用完带宽。海盗船式的串行瓶颈被消除了测试时间和堆叠层数的关系从线性增长变成了更平缓的曲线。在多个die需要并行测试的场景下比如同时给三个die跑MBISTSSN的并行调度优势会特别明显测试系统的吞吐量几乎成倍增长。另外SSN的一个容易被忽略的优势是节省了芯片测试引脚。传统方案中每个die的扫描测试可能需要多组专用TAM通道堆叠体封装引脚往往不够用。SSN只占少量物理引脚却能支撑起很大的测试带宽这对引脚资源紧张的3D-IC封装来说非常重要。从实际工程角度看SSN的引入往往不是为了追求测试更快而是让芯片能在有限的测试引脚约束下测得起。3.3 一个Tessent SSN接入的典型流程片段Tessent工具本身支持在扫描插入阶段直接把SSN host和SSN target网络插入RTL网表。下面给出一个简化的Tessent DFT shell脚本片段示意用于帮助理解它的接入方式实际项目和具体版本会有差异# 定义顶层die的SSN host set ssn_host_cells [get_cells u_top/ssn_host_inst] add_ssn_host -name host_0 \ -instance $ssn_host_cells \ -num_channels 4 # 定义各child die的SSN target set target_inst [get_cells u_die2/ssn_target_inst] add_ssn_target -name target_die2 \ -instance $target_inst \ -host host_0 \ -scan_groups 16 # 将扫描链连接到SSN target add_scan_chains -groups 16 \ -target target_die2 \ -pattern [list chain_0 chain_1 ... chain_15] # 生成测试时钟与控制信号连接 connect_ssn_ports -host host_0 \ -ports [list tck tms tdi tdo] \ -frequency 100MHz从脚本里可以看到几个关键设计决策SSN host被放在顶层die中作为对外的测试访问端口也就是整个堆叠体的测试网关。而每个从die内部放置SSN target负责接收来自host的数据包并把它分发到本die的扫描链组。这个架构下虽然物理上die之间仍然通过有限的TSV或微凸点传递信号但逻辑上SSN提供了一条逻辑并行的传输通道有效地把扫描链的并行度从die内扩展到了die间。在调试过程中建议用Tessent的仿真环境先单独验证SSN网络本身的数据传输是否正确再接入各die的扫描链。如果一开始就把扫描链和SSN网络一起验证问题定位会非常困难——到底是扫描链本身有问题还是SSN的路由配置有问题很容易混淆。4. 测试不只是筛掉坏片诊断、修复与良率闭环4.1 失效诊断拿到fail log之后往哪里查很多团队把测试的终点定义为pass或fail这是很大的浪费。3D-IC项目中测试产生的fail log价值极高关键是怎么用它做诊断。一个die测试失败下一步不是简单丢弃它而是通过诊断工具确定失效位置和失效类型。这里就要用到Tessent SiliconInsight这类硅片调试/诊断工具。它能把ATE产生的fail log映射回设计网表中的具体节点告诉你是某个扫描单元的捕获值不匹配、某个存储单元的March算法测试失败、还是某条TSV互连路径存在时序违例。把这个信息与设计数据库比对后能快速缩小到具体的物理区域再配合物理失效分析如EMMI、OBIRCH找到真正的根因。3D-IC的诊断比2D复杂很多因为失效可能来自die内逻辑、die间TSV、微凸点、甚至键合界面的热应力。分层诊断策略就很必要先在post-bond测试失败时看症结集中在哪一层die再针对该die回溯它的pre-bond测试结果。如果该die在pre-bond阶段测试通过但在堆叠后失效基本可以判断问题出在堆叠工艺环节比如TSV对位偏差、键合压力异常而不是die本身的逻辑问题。诊断思路清晰后工艺和设计团队才能各有抓手。4.2 TSV冗余与修复策略测试之上再加一道保险3D-IC发展到一定良率爬坡阶段光靠测出来就扔掉是不够的成本压力会逼迫团队做修复。TSV有冗余设计的机会——一颗die里设计时就要多放一些备用TSV测试发现某些TSV失效时通过片上可配置的修复逻辑把信号从失效TSV引导到备用TSV上。Tessent在这个环节能配合的是MBIST或互连测试逻辑里的修复判决机制。基本流程是互连测试模块先检测出哪些TSV或interconnect路径损坏然后把这些损坏路径的编号写入片上的非易失性寄存器之后芯片上电启动时修复逻辑根据寄存器的值自动把信号切换到备用TSV。这一整套映射逻辑需要DFT介入设计而不是测试阶段临时加的。修复策略带来的良率提升很可观尤其是在大尺寸的HBM堆叠中。HBM很多的部分良好降级策略也是这个思路如果某组TSV坏掉了不一定要让整个堆叠报废可以通过熔断或寄存器配置禁用损坏的通道让芯片以降低带宽的模式继续工作。这种策略对芯片的实际出货良率影响巨大值得在方案设计早期就把冗余TSV和修复逻辑规划好。4.3 良率管理从单die到堆叠体的数据闭环3D-IC的量产测试必须建立一套从单die到堆叠体的数据闭环而不是在各个测试阶段各管各的数据。简单说你要能回答这颗die在pre-bond阶段测试正常但它偏偏在堆叠后的post-bond测试中失效了导致另外两颗好die也搭进去了。如果每个环节数据是孤立的这个问题根本没法追溯。建议在项目里建立统一的测试数据库至少记录三类信息每个die的pre-bond测试结果包括各类BIST签名和扫描结果、每个堆叠体的键合批次信息对应到键合工艺的机台和工艺参数、以及post-bond成品测试结果。当post-bond良率出现系统性异常时利用这些数据可以快速判断是die本身良率波动、键合工艺偏差、还是测试方案在post-bond阶段存在覆盖空洞。Tessent YieldInsight就是朝这个方向做的工具它能把fail数据在良率管理平台上做volumetric diagnostic分析失效是否集中某类pattern、某个物理区域或者某个特定工艺角。在3D-IC项目中这类数据闭环分析不仅帮助定位当前的良率问题更是下一版芯片改进设计的关键依据。毕竟3D-IC的工艺和设计耦合度极高没有数据的决策基本靠猜。5. 落地3D-IC测试方案前先想清楚这几件事5.1 工具链集成与版本同步的坑很多项目在实施阶段卡住不是因为方案本身不对而是因为EDA工具链之间的版本兼容问题。3D-IC测试方案往往涉及Tessent DFT流程、物理实现工具、以及验证仿真工具的配合。Tessent插入的wrapper cell和SSN网络需要在物理实现工具里做时序收敛而IEEE 1838要求这些cell的时钟既能高速测试、又能低速旁路时序约束文件和普通功能时钟约束差别很大。建议在项目规划初期就找齐所有工具链的版本兼容矩阵并且在做测试芯片或小规模验证时先跑通完整的工具链再做大规模设计。我见过有团队在RTL设计完成后才决定加IEEE 1838 wrapper结果物理实现阶段发现wrapper cell的位置和布线资源完全不够不得不返工。wrapper cell和SSN网络必须在逻辑设计阶段就规划进去它们会占据面积和布线资源而且多个die集成后跨die的测试时钟树或信号路径规划也需要提前在物理约束里预留。5.2 先跑通流程再谈覆盖率还有一个典型的顺序错误项目一开始就追求超高的测试覆盖率把大量精力花在测试向量的优化上结果基本的3D-IC测试访问架构还没跑通。在3D-IC项目中我特别建议先窄后宽的策略先选择一条最关键、最典型的路径比如从顶层die的TAP到最底层die的一组扫描链把完整的测试访问流程打通——包括wrapper配置、SSN数据传输、扫描测试执行、响应比对——跑通了之后再逐步扩展到全部扫描链和所有测试模式。这么做的好处是基本流程里的问题比如wrapper cell逻辑错误、SSN路由配置错误、测试时钟连接错误能尽早暴露而且问题定位会容易得多。如果一上来就全设计一起测到处都是fail你根本无法判断是测试访问架构的问题、还是某颗die内部逻辑的问题、还是测试向量生成的问题。先跑通最小路径再逐级扩展是3D-IC测试方案落地最稳妥的节奏。5.3 团队能力结构要补什么最后聊一点团队方面的实际体会。3D-IC测试对团队能力的要求和传统2D DFT项目有明显差异。除了常规的DFT技能扫描链插入、ATPG、MBIST还需要补充三个维度的能力第一工艺与封装的跨领域知识。DFT工程师如果完全不了解TSV工艺的失效模式、微凸点对位精度、混合键合界面的可靠性问题就很难设计出针对性的测试方案。第二测试访问架构的标准化意识。IEEE 1838、IEEE 1687这些标准团队成员需要真正读懂而不是仅仅会用工具因为多die集成中不同团队之间的接口定义必须依赖对标准的统一理解。第三数据分析和良率工程的敏感度。3D-IC的测试数据量比2D大很多倍且涉及多个测试阶段的关联分析团队里需要有人能熟练处理这类多维度数据能从海量fail log中提炼出指向根因的信息。在项目中我还发现跨die协同调试的机制特别重要。3D-IC的测试往往同时涉及逻辑设计、物理设计、ATE测试、良率工程等多个团队问题一旦发生如果大家各自在自己的领域里排查效率很低。建议建立一个跨职能的测试问题临时专项组遇到疑难fail案例时DFT工程师、ATE测试工程师、物理设计工程师和良率工程师能在同一张桌子上对数据、对现象、对根因这样很多问题能在一两天内收敛而不是来回踢球拖上一两周。3D-IC测试这件事本质上是把设计、工艺、测试三者之间的耦合关系推到了一个新高度。Tessent这套方案给的是一个可以落地的工具体系但真正决定项目成败的还是团队对3D-IC测试本质的理解深度以及从第一天起就把测试当成与堆叠架构同等重要的顶层设计来规划的意识。这个认知越早建立后面量产爬坡的时候就越轻松。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑