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、进一步产品化成功的最最关键因素。