DFT技术介绍和所用工具

DFT是什么?

DFT是design for test(可测性设计)的缩写,就是在芯片设计过程中,加入可测性逻辑。有的公司把该职位归到前端设计,有的归到中端实现。

DFT职位大多分布于规模较大的数字IC设计公司里,因为大公司对芯片品质要求高,而且规模越大,芯片越贵,DFT就越复杂越重要。DFT主要是通过在芯片中加入可测性逻辑,等芯片制造出来,在ATE(AutomaticTestEquipment,自动测试仪)设备上通过可测性逻辑对芯片进行测试,挑出有制造缺陷的芯片并淘汰掉,留下没有制造缺陷的好芯片。这里需要强调下,DFT只负责挑出制造缺陷,至于逻辑缺陷那是前端设计工程师和验证工程师的职责,DFT工程师也鞭长莫及。

为什么需要DFT对芯片设计如此重要?

大家知道,芯片制造工序非常复杂,有几十上百道工序,比如说掺杂,氧化,光刻,金属互联等等,有化学的,物理的,机械的各种加工过程,先进工艺已经进入7nm的量产阶段,一根头发丝直径约0.1毫米,1nm是十万分之一的头发丝直径,这么精细的尺寸上去制造芯片,制造过程中由于粉尘颗粒,工艺偏差等因素,难免会引入制造缺陷,导致晶体管短路或断路,然后不能正常工作。DFT技术其实就是把DFT逻辑加入到芯片设计中,然后等芯片制造回来,通过事先加入的DFT逻辑对芯片进行体检,挑出体格健壮的芯片,保证送到客户手上的芯片是没有故障的。大家知道,越知名的公司对产品品质的把控越严格。比如以品质著称的德国和日本公司,对产品品质有非常苛刻的要求。这里引入一个概念 --DPPM(DefectivePartsPerMillion),它代表每百万片里有缺陷芯片的数量,这些缺陷芯片指的是通过ATE测试但本身有缺陷的芯片,又称为“逃逸片”,“逃逸片”流到了客户手上,会造成很大损失。知名的芯片公司,有很低的DPPM要求,特别是医疗类或汽车类芯片,要求DPPM几乎为0。因为对于这类芯片,一旦“逃逸片”逃逸片到了客户手上,会严重威胁人身安全。

不同阶段挑出故障片的成本几乎是成倍增加的,比若说,在芯片制造好的wafer上用探针测试,这个阶段测试成本最低,有“逃逸片”,到了封装阶段,封装后会再次对芯片进行测试,想挑出这些缺陷芯片,考虑到封装成本和筛选难度,会造成成倍的损失,如果封装阶段还是没有挑出这些缺陷芯片,客户把芯片集成到了板级系统上,这个时候如果发现芯片缺陷,可能需要更换整块板级系统。如果板级测试阶段还是没有发现缺陷芯片,到了成品阶段,成品到了客户手上,发现芯片故障,再返厂更换,又会成倍增加损失。

所以DFT如此重要,越高的测试覆盖率,越能显著的降低DPPM,越节省后续各个环节的纠错成本。

DFT工程师主要做什么?

DFT设计周期很长,从RTL代码阶段介入,需要和前端工程师一起规划scan模式下的时钟和复位网络,接着插入DFT逻辑,比如Scan chain,Mbist,Boundary Scan等,然后用ATPG,Mbist,Boundary Scan工具产生测试向量,仿真验证测试向量。仿真又分不带时序信息的仿真和带时序的后仿。仿真过程中肯定会碰到问题,然后debug。仿真通过后,将测试向量交付给ATE测试工程师, 然后等芯片流片回来,会把这些测试向量送上ATE机台对芯片进行测试,然后debug 测试failure。等芯片测试通过,良率OK,才算设计周期结束。可以说DFT是芯片设计实现流程中持续时间最长的。

DFT职位的主要工作是:1.将DFT技术,常见的如Scan,Mbist,Boundary Scan技术,实现到设计中去。2.产生测试向量并验证测试向量。3.协助后端实现工程师完成test模式的时序收敛。4.协助测试工程师进行机台调试,debug 测试failure,提高芯片良率。

DFT的附带技能:1.需要对RTL设计熟悉,因为需要将产生的DFT模块集成到现有的RTL代码中,有的时候还需要自己设计一些DFT用的小模块。2.还要对整个设计的时钟复位网络熟悉,因为需要和前端设计工程师讨论如何改进时钟和复位网络,达到尽可能高的测试覆盖。3.还要熟悉DFT 模式下的时序约束,协助设计实现工程师产生时序约束的sdc并完成DFT模式下的时序收敛。4. 精通tcl,perl,makefile等脚本语言,因为Tcl是和工具直接交互的语言, 用makefile实现自动化的DFT 流程,让工作更有效率,perl用来处理报告结果,提取有效信息。

DFT技术水平主要体现在搭建更高效的DFT实现流程,实现很高的芯片测试覆盖率,减少测试向量的数量,很丰富的机台测试后结果debug经验,从而实现很高的芯片良率,降低PDDM。

DFT技术介绍和所用工具

DFT技术主要包括Scan,Mbist和Boundary Scan这三个方面。

1.Scan技术又包括扫描链插入和基于扫描链结构的ATPG(AutomaticTestPatternGeneration,自动测试向量生成)技术。

扫描链的构建,首先得基于扫描结构的触发器。下图中,左边是普通的D触发器,右边是扫描结构的触发器,通过在数据Dpin上加入一个二输入多路选择器(MUX),就引入了一条新的数据输入路径SI,MUX的选择端又SE控制,所有触发器的SE会接到一起,并连到芯片PAD上统一控制。

在这里插入图片描述
然后前一级触发器的Qpin接后面一级触发器的SIpin,中间直连或者经过简单的缓冲器或反相器,这样所有触发器首位相连,就构成了扫描链,扫描链的起点和终点最终都会接到PAD上,结构如下,绿色部分就是扫描链结构。

在这里插入图片描述
芯片的主要工作部分是组合逻辑,组合逻辑实现运算,而时序逻辑让这些组合逻辑运算出的数据踩上节拍,整齐的按计划传送。触发器和触发器之间的组合逻辑千变万化,相当于修了许多条分支小路,每条路上还有红绿灯,数据通行效率低下,而扫描链结构相当于给触发器之间建了另一条高速公路,在SE(shiftenable)为高的情况下,可以在时钟驱动下,很快速的通过PAD把数据加载到各个扫描触发器上。任何一个组合逻辑的输入要么接到前面的触发器上,要么接到输入PAD上,而组合逻辑的输入最终会接到后面的触发器的Dpin或者连到输出PAD上。所以,等扫描链加载上数据后,组合逻辑就有了激励,然后在SE为低时,时钟跳动一次,就可以将组合逻辑的最终响应捕获到后面的触发器里,然后再把SE切到高,把捕获的数据shift到输出PAD上观测,和无缺陷情况下的期望值比较,以此来判断触发器本身和触发中间的组合逻辑有没有制造缺陷。有缺陷的地方会出现短路和断路等故障。ATPG工具就是基于这样的扫描链结构,根据算法推算出应该加载到扫描链上的激励序列和期望序列,这样的序列称为测试向量(pattern)。

扫描链插入,业界常用的是synopsys的DFT Compiler,mentor的tessent shell也有串scan chain的引擎。测试向量生成常用Mentor的tessent工具或者synopsys的TetraMax,向量产生完,还要用仿真工具VCS,Questa sim去做测试向量的仿真验证,仿真分不带时序信息的门级仿真和带时序信息的后仿真。主要目的是用仿真器模拟机台测试,去验证测试向量是否正确。

  1. **Mbist(MemoryBuilt-inSelfTest)**是为了测试芯片中ram和rom IP的,测试原理是在设计中插入内建自测试逻辑,靠内建自测试逻辑产生激励,对ram 和rom进行读写,然后在内建自测试逻辑中去比较测试结果。所以不依赖测试机台也能完成自测试。Mbist结构如下,紫色的左右logic部分和RAM部分代表原有的功能逻辑。Mbist工具会加入选择器(mux)将输入控制截获,然后通过左上角绿色的Bistcontroller产生测试向量,对RAM进行读写,然后将读的结果送到右上角的红色comparator,比较测试结果和期望值,以此来判断Ram本身到底有没有制造缺陷。

在这里插入图片描述
Mbist逻辑插入和向量生成常用Tessent LV flow和近几年推出的的Tessent shell flow。Pattern验证还是用VCS,Questasim等仿真工具。

  1. Boundary scan主要是用来测芯片和芯片间互联的,因为芯片焊接到PCB上时容易发生虚焊,靠boundary scan电路可以测出这种故障。

BoundaryScan基于IEEE 1149.1协议,主要逻辑有TAPcontroller和boundaryScanchain构成,标准接口有TCK,TDI,TMS,TRSTn(可选)和

TDO这个五个。每一个芯片自己的TDI和TDO之间有一条boundaryScanchain,前一个芯片的TDO会接到下一个芯片的TDI上。所有芯片的TCK,TMS,TRSTn会接到一起,结构如下所示。

在这里插入图片描述
Boundary scan的原理是在pad输入和输出信号上插入boundary scan cell,相当于在pad信号进入core logic的地方或者core logic往pad走的地方安排了哨兵,然后把各个pad接口上的这些哨兵通过boudary scan chain(类似电话线)连起来,通过chain逻辑使得前一个芯片的输出pad产生激励,后一个芯片的输入pad去观测响应,然后把响应结果通过chain shift出来然后和预期值比较,来判断芯片互联有没有问题。如下图所示,BC代表boundaryscancell。

在这里插入图片描述

转自:https://www.pianshen.com/article/3494272268/

  • 27
    点赞
  • 146
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值