DFT 问答 III
1.Boundary scan
Boundary Scan就是我们俗称的边界扫描。Boundary Scan是上世纪90年代由 Joint Test Action Group(JTAG)提出的,它的初衷是为了解决在PCB上各个大规模集成电路间的信号互联测试需求,所以往往也被叫做JTAG(JTAG更是指由IEEE1149.1标准规定的4线接口极其控制逻辑如TAP、TDR等)。现在 JTAG / BScan 已被绝大多数芯片设计公司和系统厂商所采用,作为一种芯片 IO PAD connectivity测试、DC Characterization、内部逻辑电路debug、在线系统 PRGM 和系统级测试的一种高效手段和业界标准。
个人认知,JTAG/BScan 的实现主要有两种实现方式:一是RTL hand coding,一般从算法开始到系统的全系列公司常用;二是借助 EDA 厂商提供的 tools 来实现。这里要特别提及一下,非常佩服前任大牛老大,在项目间隙大家都在放羊的间隙,楞是用C写了一个 In-house BScan insertion 定制化工具。非常感慨:聪明的人不可怕,可怕的比我们聪明的人还比我们更勤奋!
JTAG/BScan 在DFT领域里面相对比较简单,所以没有多少挑战,作为新工程师了解和进入项目的初始工作任务是非常不错的一个task。 特别注意一些弯弯绕的地方,个人认为可能就在于:
越来越多的MCP产品测试需要,在die的不同阶段BScan的不同测试方法和pattern准备;
除了基本的In/Out/OEN的测试外,对PAD其他控制信号的测试实现。
2.MBIST
MBIST就是Memory Build In Test简称。随着集成电路规模和复杂程度的不断提高,在ASIC/SoC 中集成的 memory 数量和所占的die size比例非常高(例如>40% in AP),同时 memory 本身的 cell density 也比较高,那么相应地在 memory 上面的制造 defect 在SoC的比例也较大。
MBIST 从上世纪90年代末发展起来、为实现对IC 内部集成memory 的测试而生。
MBIST design 的实现,主要靠EDA工具来完成,最早做的很好的一家是 Syntest 的TurboBIST, 不过好像现在这家EDA公司日渐式微,奈何美人迟暮英雄末路。 目前EDA三巨头各家都有自己MBIST的解决方案。
对于MBIST design过程中和芯片测试过程中的挑战,个人认为还是在diagnosis, auto-repaire和FA了。
LBIST:
A:LBIST 顾名思义就是LogicBIST,实现靠Tool。挑战主要是LBIST design overhead, Test coverage 以及最终的测试时间等.
Analog DFT:
Analog DFT,常常也把一些数模混合的IP归集到这一范畴,这部分基本不太可能依赖EDA tool来实现,往往都基于RTL coding 完成。Analog/IP DFT比较常用的架构有Internal/External Loopback, JTAG program test,IO pin test muxing, embedded reg/mem sampling 等等。这部分重点是需要和 Analog/IP designer 紧密合作,共同确定后续lab和量产测试的spec;还有就是因为包含了Analog部分,如何完成仿真验证需要特别注意。
scan chain,stuck-at跟at-speed test各是什么?分别如何实现?挑战是什么?
A:Scan chain即是由芯片中的寄存器串在一起组成的扫描链; stuck-at和at-speed指的是ATPG 当中的fault model。Scan chain insertion 同样是靠工具完成。
压缩/解压缩的概念是什么:
这里所说的压缩是专指 Scanchain 的压缩(Compressor)。由于集成电路规模的不断增大,内部的寄存器数量也越来越庞大,如果没有压缩技术, Scan chain会非常长,相应的在ATE 上的test time就长,而ATE test time是影响整个芯片成本的一个关键因素。
具体压缩比的定义,还是要看是用那种架构来实现。比如M的TK,由于它使用LFSM电路结构,所以它能够做到比较高的压缩如数百倍或更高,工具同时支持用户利用analyze方式来提前评估各压缩比例的优劣。近年来S和C家也改进了压缩解压缩的电路结构,加入了时序逻辑到压缩解压缩电路中,压缩比都能做到足够高。
ATPG是什么?用于DFT的哪个方面?在电路结构上如何体现?如今业界算法是否大同小异?最流行的算法是什么?
A:ATPG 是Auto Test Pattern generation即测试向量生成的简称,用于DFT Scan 设计的验证和测试pattern的产生阶段。由于Scan是基于基本的数字逻辑电路Flip Flop以及之间的datapath完成测试的,所以据个人认知,Scan的算法也是基于Digital 电路的基本测试原理,比如D算法, Fan算法等等,各家无出其右。
测试时间跟哪些因素相关?缩短测试时间的办法有哪些?
A:测试时间相关因素有:SoC的规模,Test Plan和DFT Spec的要求,DFT design实现架构,具体DFT各项实现方法,DFT mode SDC和 timing signoff,还有Physical floor plan和IR drop影响等等。
与此对应的,努力减少测试时间和陈本的关键就是首先case by case定义好该芯片的DFTSpec,然后基于芯片实际情况选择最合理的design flow和EDA tools, 与STA 攻城狮一起评估和定义高效而又合理的SDC,结合后端的情况和将来 ATEpattern program的考虑,调整DFT design 情况和后面的pattern生成等等。
OCC/OPCG/scan clock mux用途是什么?工作原理是什么?如何实现?
A: OCC/OPCG/SCAN mux等等首先是实现Scan DRC fixing,然后是根据不同 clock domain 的具体要求,决定是仅仅进行 stuck-a t还是更一步的 at-speed 测试。
它的工作原理是采用一组串在Scan Chain上的FF,作为pulse数量控制寄存器来 Shiftin 预设数值,再结合一组 function clock 的 pulse counter 寄存器,共同完成在 ATEclock 和 PLL/Func clock 之间的glitch free 的clock 切换。
在实现方式上,前端设计公司大多用 RTL hand coding module 在 clock gen 设计过程中就放入RTL database当中去;如果用EDA tool实现的话,S家的OCC跟C家的OPCG都是比较普遍的做法。
MBIST RTL flow跟netlistflow各有什么优劣?更推荐哪种flow?为什么?
A:从各种不同类型项目在RTL和netlist 上MBIST实现的工作经验来看,两者互有优劣。 个人感觉基于RTLflow更为清晰、灵活,对于复杂结构更容易完成工程师的特殊定义和约束要求;而基于netlist flow比较单纯、简单,但对一些额外要求实现就比较困难。具体用那种flow,要根据该次项目的实际情况和整个DFT flow的具体情况来分析,以真实项目经验来说,两种还都在使用中的。
MBIST时,Memory partition要考虑哪些因素?推荐的做法是什么?
A:MBIST设计中的memory partition 因素主要有:
memory instance 在floor plan中的location (DEF + more) ,主要是解决绕线长度( timing / transition ) 和congestion问题;
memory 所处的power domain和clock domain,主要是满足atspeed test 要求;
memory type 和Group balance,主要是优化test time,同时也考虑physicalrouting和测试power consumption/IR drop 等等;
其他还需要参考的因素还有部分 User-defined/programming Algorithm要求, MBIST diagnosis 以及memory redundancy repair要求等等
DFT的标准都有哪些?分别是什么?用于什么?
A: DFT 的标准,如上面提到的每一种测试项,分别从不同角度去考量;
如Scan,最主要就是 Stuck-at 和 At-speed 分别test coverage是多少,这点是决定量产 Yield 的关键;还有是 pattern volume 和相应 test coverage 的可实现程度;
MBIST 标准主要有 100% memory instance 已经被覆盖到;各个MBIST case / pattern 的设计频点 ( timing closurd );各个group采用的 MBIST Algorithm, 是否 Repairable 及其策略;
BSCAN,主要就是各组 pattern involved IO list, pattern类型等;
对Analog & IP DFT 差异比较大,个人认为考量标准有能够 cover 的 digital/analog path范围;lpbk可以配置的pattern种类;数据的 sampling rate和可配置频率等。
除了以上提到的,DFT还有哪些类别?
A: 群主所提问题已经非常专业全面了,如果非要再找一些边边角角,那想来DFT还必须包含内容:如BurnIn,结合CPU和Code的测试,OTP/DRO/Sensor IP等等;另Analog&IP DFT林林总总可能十几项也各不相同。
当前DFT的发展趋势是什么?
A: 个人想来应该有很多很多,还是仅仅抛砖引玉吧:
随着集成电路规设计技术的发展,芯片的运行频率越来越高如2GHz以上,DFT design 电路和实现策略要相应发展;
随着集成电路规模的持续迅速发展,ATE上 DFT pattern 的量产封测当中的花费以及在整个芯片中的成本比重越来越高(如有些品线20%+),那么为了减少测试时间和想办法提高测试效率提高的DFT 技术和架构持续发展;
高速发展中的汽车电子、自动驾驶和AI 等集成电路,芯片的 Safety Critical 紧密关联的 DFT Design Solution要求也越来越急迫,如 ISO26262 Certified Testsolution 等等;
半导体制造工艺的持续快速发展到12nm、7nm等,工艺缺陷和foundry生产当中 defect方式、类型、分布,随之相对应的fault model、测试算法的发展;
个人认为,DFT 在以后集成电路发展中将会越来越重要, DFT 攻城狮需要掌握的基本技能和熟悉知识面要求越来越多。
无论是前面都提到的在芯片中的成本比重,对整个产品Yield的决定性,还是对整个系统工作的安全、可恢复性,以及最终的对某一款芯片是不是可以推进产品化,都将起到越来越重要的决定作用;
DFT 工作基本要求愈来愈广泛,例如必须完成在RTLCoding 和整个database DFT integration,熟练掌握实现过程中的 FV, Synthesis, SDC/STA 和 timing closure等,并熟悉后端 Physical 相关 floorplan, CTS, PGA 等等;
DFT 在 silicon, ATE 和 PCB 系统上面调试和 debug 工作将越来越重要。如在 silicon 回来之前进行的 ATE pattern generation 和全面的 verification;面向 ATE CP, FT 等 pattern programming;拿到silicon后第一时间的ATE testing bring up以及IC 量产中的FA等,都不断有新的技术发展和新要求,我们攻城狮必须保持一颗不断学习、紧跟技术潮流的心啊! :)
最后,做DFT和做silicon其他一样一样的,借用流行的话来说就是需要工匠精神。对于新技术、新工艺可能大家都能够掌握,但是仔细、耐心和要求尽善尽美,才是决定芯片是不是可以正常work、进一步产品化成功的最最关键因素。
DFT 问答 III的更多相关文章
- DFT 问答 I
Q: Boundary Scan是什么?应用场景是什么?实现的方法是什么?挑战是什么? A: Boundary Scan就是边界扫描,是由Joint Test action Group起草的规范,最初 ...
- DFT 问答 II
1. Boundary Scan A:Boundary scan 顾名思义,是附加在芯片I/O 周边的扫描测试链,它通过专门的测试端口(TAP)访问.在测试模式下,边界扫描链会接管功能逻辑,对I/O进 ...
- SCI投稿过程总结、投稿状态解析、拒稿后对策及接受后期相关问答
SCI投稿过程总结.投稿状态解析.拒稿后对策及接受后期相关问答 http://muchong.com/t-9174366-1 SCI投稿过程总结.投稿状态解析.拒稿后处理对策及接受后期相关问答综合 ...
- BugPhobia开发篇章:Beta阶段第III次Scrum Meeting
0x01 :Scrum Meeting基本摘要 Beta阶段第三次Scrum Meeting 敏捷开发起始时间 2015/12/15 00:00 A.M. 敏捷开发终止时间 2015/12/15 23 ...
- Ext JS - 问答
Ext JS - 问答 在下面你将可以找到关于Ext JS 的最常见问题的答复.如果没有找到您所需的答复,请访问 Ext JS 论坛或者提交一个支持申请. 如果你确信你的问题可以对本页有补充,请让我们 ...
- https问答篇
https问答 SSL和TLS有什么区别? 可以说,TLS是SSL的升级版本,SSL是网景公司设计的,为了最早期的网络安全而生,它的全名叫做"安全套接层".后来,IETF在1999 ...
- 关于ArcGIS的Web 3D GIS问答
以下问答基于ArcGIS 10.4版本,涉及的软件有 ArcGIS for Server ArcGIS for Desktop ArcGIS Pro 1.3 Esri Drone2Map 1 支持B/ ...
- 用Kotlin开发Android应用(III):扩展函数和默认值
这是关于Kotlin的第三篇. 原文标题:Kotlin for Android (III): Extension functions and default values 原文链接:http://an ...
- LeetCode Single Number I / II / III
[1]LeetCode 136 Single Number 题意:奇数个数,其中除了一个数只出现一次外,其他数都是成对出现,比如1,2,2,3,3...,求出该单个数. 解法:容易想到异或的性质,两个 ...
随机推荐
- C语言118. 杨辉三角
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5输出:[ [1], [1,1], [1,2,1], [1, ...
- 五、JVM之堆内存
堆结构分代图 堆结构分代的意义 Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代.老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略. 堆内存是虚拟机管理 ...
- springboot项目集成activity
1.按照上一篇博客,新建好springboot项目后,在项目pom.xml文件中添加activity依赖 <dependency> <groupId>org.activiti& ...
- 题解【洛谷P1083】[NOIP2012]借教室
题面 二分到哪一个申请人要修改订单,可以差分\(+\)前缀和达到\(\Theta(n)\)的\(\text{check}\). 具体细节见代码. #include <bits/stdc++.h& ...
- Vuex项目实战store
首先简单了解一下什么是Vuex? Vuex是一个专为Vue.js应用程序开发的状态管理模式.采用集中式存储来管理应用所有组件的状态. 以下是对vuex的使用的简单介绍: 一.安装 npm i vuex ...
- vue formatter element表格处理数据
formatter 指定一个vue methods 方法 作用:对从数据库中取出的数据进行处理后展示. <el-table-column prop="partner1" // ...
- 剖析Javascript中forEach()底层原理,如何重写forEach()
我们平时用的forEach()一般是这样用的 var myArr = [1,5,8] myArr.forEach((v,i)=>{ console.log(v,i) })//运行后是这样的1 0 ...
- xss和sql注入学习1
在本地搭建一个存在漏洞的网站,验证xss漏洞和SQL注入的利用方法. 使用phpStudy工具搭建一个美食CMS网站平台. 0x01 xss测试 打开调试模式,定位姓名栏输入框: 尝试在value中 ...
- 164.扩展User模型-继承AbstractUser
继承自AbstractUser: 如果Abstractuser中定义的字段不能够满足你的项目的要求,并且不想要修改原来User对象上的一些字段,只是想要增加一些字段,那么这时候可以直接继承自djang ...
- 线段树的树状数组大小为什么是4*maxn
以下方建树代码为例,r数组表述原始数据,t表述tree也就是树状数组 void make(int left,int right,int num)//创建线段树 { t[num].l=left; t[n ...