Q: Boundary Scan是什么?应用场景是什么?实现的方法是什么?挑战是什么?
A: Boundary Scan就是边界扫描,是由Joint Test action Group起草的规范,最初是为了解决板级芯片之间的互联测试的问题,实现方法就是在芯片内部的每个I/O上面加上一个Boundary Scan cell 用于控制和观测每个I/O的状态,然后把每个I/O的bscell串连起来交由TAP控制器控制。TAP控制器按照 IEEE1149.1 规范通过5个I/O 串行与外界通讯。虽然Boundary Scan是为了解决板级芯片互联的测试而设计的,但是也可以用来进行芯片自身 I/O 的测试,比如 VIH/VIL, VOH/VOL, highz, I/O漏电等等的测试,IEEE1149.1 规范比较实用于纯数字电路的I/O测试,后来为了解决一些高速差分接口的测试,增加了IEEE1149.6 规范,通过在原有协议的基础上增加了两条指令pulse 和transition 来测试差分信号。关于Boundary Scan的部分,三家EDA公司的DFT tool的manual都有详细的介绍,关于1149.6 AC jtag的部分,大部分的串行接口IP都会支持,可以找相关部分参考研究。关于 AC jtag部分,由于在芯片设计和板级设计上都有一些特殊考虑,挑战会较大一些。
由于TAP 只需要5个I/O(或者4个I/O)与外界通讯,并且协议比较简单,所以TAP 除了用来做boundary Scan的控制之外,还大量用来做SoC内部电路的测试控制以及追踪调试。随着SoC规模、复杂度的增加以及 time-to-market 要求的提高,基于IEEE1149 规范,后来又提出了 P1500 以及 IEEE1687 规范用来解决 embedded IP的测试控制。相比于其他串行接口,TAP 接口操作简单,是对 ATE 机台最为友好的接口。
对于这一块,参考学习的资料也很多,最直接有效的方法就是直接翻看成熟IP的Code,举个例子,不论是哪家的 DDR PHY,USB PHY里面都有JTAG用于测试以及调试的逻辑,打开代码看一下就明白咋回事了。
Q: MBIST是什么?应用场景是什么?实现的方法是什么?挑战是什么?
A: MBIST是memory build-in self test,就是对芯片中嵌入式的 memory 进行自测试。芯片中嵌入式的 memory 被深深埋到芯片的逻辑当中,根本没有办法直接通过外部加激励来进行测试,必须在芯片中设计一部分电路自动对嵌入式的 memory 进行自测试。现在SoC设计,嵌入式的 memory 所占面积比例非常高,通常一款SoC, 75%~80% 的面积都是embedded memory,并且embedded memory的density很高,在生产当中很容易产生defect,并且工艺不同,产生defect的density容限也不同,必须把所有有defect的芯片通过测试筛选出来,这样MBIST几乎是每款芯片都要做的,对于一些memory占比高的芯片,不仅要做MBIST还要做Repair。
MBIST的实现方法很多,有很多成熟的flow可供采用,此处不去比较各个flow的优缺点。关键是根据自己芯片的特点定制适合自己的flow。Flow的定制也受限于各种因素,比如memory Vendor, tool vendor的选取, 芯片对 timing, area, power, reliability的要求,后端routing的限制等。Flow定制的好,可也节省人力、缩短schedule,节省芯片面积。Flow定制的糙一点,也不是不能做,就是费时、费力,芯片面积大点、测试时间多点,芯片的cost高一些。
Q:MBIST RTL flow跟netlistflow各有什么优劣?更推荐哪种flow?为什么?
A:没有什么优劣,只是适合不适合自己。对于design service 公司,推荐 netlist flow,因为design service 一般都看不到code,而且和客户之间的delivery 都事前切割的很清楚,和前面反复的也比较少,netlist flow 也简单,做起来比较容易一些。
对于 design house 公司,推荐RTL flow,可以提早把mbist做进去,验证、综合都可以和设计一起做,效果好一些。RTL flow复杂性会大一些。主要体现在rtl coding style, design database的管理,sdc 的处理等上面。
Q: MBIST时,Memory partition要考虑哪些因素?推荐的做法是什么?
A: 主要考虑memory type, clock domain, physical location, power consumption等,做mbist的时候最好带着def做。
Q: LBIST是什么?应用场景是什么?实现的方法是什么?挑战是什么?
A: LBIST 是logic build in self test. 就是对逻辑进行内建自测试,不同于ATPG, LBIST的测试激励是由on-chip的电路自己产生,对功能逻辑进行扫描测试。不依赖于ATE机台,直接在板上进行测试,甚至芯片部署到产品中以后也可以进行in-system 的测试。LBIST的开发难度大、开发周期长,对芯片面积也有很大的开销,一般都是对可靠性要求比较高的芯片才做LBIST,像消费类的产品鲜有做lbist的。由于LBIST on chip产生的激励是伪随机的,coverage一般不高,并且对芯片中的X-source敏感,芯片中的X-source会直接crash LBIST,所以进行lbist设计,清理芯片中的x-source是很大一部分工作量。
Q: Analog 的DFT如何实现?常用的结构有哪些?挑战是什么?
A: Analog的DFT测试一直都是一个难点,现在Analog的测试都还是要依靠designer在电路是添加测试电路,完全依赖于designer实现的
Q: 常说的scan chain,stuck-at跟at-speed test各是什么?分别如何实现?挑战是什么?
A: 这些都是属于ATPG测试,stuck-at pattern是用来测试电路中stuck类型的defect,比如open, short, tie high, tielow等。At-speed test主要是用来测试电路中timing相关的defect。ATPG pattern 的产生主要是依赖于EDA工具来实现。设计的挑战来自于对SoC设计的理解,特别是Clock domain的控制,对于CDC path的处理,这些都是design dependent 的,所以DFT工程师要对设计非常了解才行
Q: 压缩解压缩的概念是什么?为什么引入压缩解压缩?如何定义压缩比?
A: 所谓压缩就是为了节省scan I/O的数量,把scan chain的数目压缩一下再拉到I/O管脚上面去,压缩比没有什么严格的规定,主要看芯片可用I/O和内部scan chain的个数而定,从几十到几百都可以。
Q: ATPG是什么?用于DFT的哪个方面?在电路结构上如何体现?如今业界算法是否大同小异?最流行的算法是什么?
A: ATPG 是autotest pattern generation, 用于利用scan chain 来测试数字电路中的defect,做ATPG先决条件必须是插好scan chain。ATPG算法已经相当成熟,各家的EDA工具大同小异,没有太大差别。以前还搞过模拟退火算法,已经很多年没有跟踪这一块的进展了,对于电路设计者来说,没有必要了解ATPG具体采用了什么算法,完全依赖于EDA工具就可以。
Q: OCC/OPCG/scan clock mux用途是什么?工作原理是什么?如何实现?
A:这些都是同一个东西,不同人的不同叫法。就是为了at-speed ATPG测试时在function clock和shift clock之间切换的控制逻辑。不同人设计的电路不一样,它就是一个2选一的clock mux,设计时注意处理一下cdc的path,不要产生glitch就行了
Q: DFT的标准都有哪些?分别是什么?用于什么?
A: 没有硬的标准,就是一个tradeoff. 做芯片就是tradeoff。根据自己芯片的实际情况做一些tradeoff。时间、性能、成本各个方面的tradeoff。
Q: 除了以上提到的,DFT还有哪些类别?
A: 大类上面基本都覆盖了。能想到的就是一些对可靠性要求非常高的产品,需要做 in-system 的test,这类芯片的DFT设计挑战非常高,不仅需要DFT的知识,还需要有一定的系统方面的知识。这一块国内涉及的人比较少。
Q: 当前DFT的发展趋势是什么?
A: DFT是一个实战性很强的专业,是为了解决芯片设计、制造的问题而存在的,他不可能独立发展。他要伴随着芯片的发展而发展。假如存在一个理想情况,foundry足够牛,生产的芯片100%是no defect的,在使用过程中也不会引入新的defect,那DFT就没有必要做了,费人费力费面积。所以我们不说发展趋势,说发展需求,由于国内芯片行业发展的非常快,已经开始涉及对芯片可靠性要求非常高的行业,比如工业控制,汽车电子等产品,这些产品对芯片的可靠性要求高,一般需要对芯片做in-system的测试,这要求DFT越来越向system靠拢,要求DFT工程师对sytstem要熟悉。
Q: 16/12、7nm对于dft有什么挑战,或者有什么需要注意的地方吗,从方法学和flow的角度?
A:从两个方面来说:其一,工艺节点本身发展带来的挑战。主要是指工艺节点的演进引入的新的defect model 需要新的DFT算法来检测。老实说对于这一部分大部分工程师或者公司无能为力,因为需要foundry支持,只有大公司才有可能获得foundry的合作。所以只能依赖于EDA工具来support。其二是由于工艺节点的演进带来的集成度的提高,使得SoC规模越来越大,SoC集成的东西越来越多,同时SoC面临的time-to-market的压力也最大,对于这一部分,工程师能够支配的空间就很大,一个完整、完备、自动化的flow对于提高交付的质量是一个很好的保证。
1. Boundary Scan
A:Boundary scan 顾名思义,是附加在芯片I/O 周边的扫描测试链,它通过专门的测试端口(TAP)访问。在测试模式下,边界扫描链会接管功能逻辑,对I/O进行灵活访问。边界扫描链的结构,测试端口,以及其控制器(TAP Controller),被IEEE定为标准协议(IEEE 1149), 也称做JTAG. 边界扫描链最早应用于印刷电路板上芯片间的互联测试, 后来也广泛应用于生产测试中对芯片管脚的测试。
MBIST Memory内建自测试:
A:MBIST是指在电路中加入针对Memory的自测试电路。在测试模式下,它会接管功能逻辑对memory的控制,依据特定算法,对memory进行读写测试操作,判断Memory是否有制造缺陷。至于面临的挑战,从以下几个方面来探讨:
-
对于Memory Vendor来说, 在新工艺下,memory可能会有新的失效机制,如何设计有效的MBIST 算法是一项重要的研究课题。
-
从EDA角度看,目前业界工具对常规memory (SRAM, ROM, Register File等)的支持已相对成熟。芯片公司对EDA 提供针对特殊类型的memory (如TCAM, DRAM )的测试方案的需求正日渐迫切。
-
从芯片实现的角度看,设计者需要考虑如何使得MBIST逻辑对芯片PPA的影响最小。对于使用带Redundacy Memory的design来说,要考虑自修复(self-repair),也会增加设计和验证的难度。
Logic Bist:
LBIST (Logic Built-In Self Test)是针对逻辑电路的自测试。测试激励由片上 PRPG (Pseudo-randompattern generation) 来产生。输出响应通过 MISR(Multiple Input Signature Register)来压缩,最后对得到的特征值进行比对。LBIST 多应用于对可靠性要求较高的芯片(如汽车电子,工业级应用)的系统自检测试。LBIST产生的激励是随机的,所以天生的缺陷是测试覆盖率不充分,通过在设计中增加测试点(Test Point Insertion)可以在一定程度上得到改善。
scan chain stuck-at, at-speed:
A:业界有两种 SCAN Style: LSSD 和MUX-D. 普遍使用的是MUX-D的扫描方式。所谓MUX-D, 是指在D触发器的数据端增加了一个MUX, 可以选择数据是从 D 输入,还是测试专用的SDI输入。 在测试模式下, MUX-D Flop 被配置成若干条移位寄存器,也就是扫描链。通过这些扫描链,内部寄存器可以被移位设置成想要的状态(scan load) ;同样的方式,内部寄存器的状态也可以被移位出来(scan unload),进行观测。
Stuck-at Test 也叫做Static Test, DC Test。它是针对制造工艺中 Stuck-at 类型失效机制的测试。Stuck-at是最基本的一种失效机制, 比如某个net短路到Ground,就叫做Stuck-at-0 Fault。某个net短路到VDD,就叫做Stuck-at-1Fault。
Transition fault 是对timing path 的 slow-to-rise 或 slow-to-fall失效机制的表诉。对其测试时需要至少两个at-speed 时钟,一个是Lauch clock, 另一个是Capture clock,At-speed测试在工艺进到90nm以下被广泛使用。
压缩和解压缩:
芯片设计规模愈来愈大,受到管脚数目的限制,传统的扫描链变得越来越长,导致测试时间无法承受。缩短扫描链, 增加扫描链的数目,是减少测试时间的根本手段,由此压缩解压缩技术应运而生。
但单方面地增加压缩率,并不意味着测试时间的线性递减。过高的压缩率反而会使得覆盖率降低,测试时间变长,得不尝失。压缩比的高低受到 compression 架构的限制,目前业界卓越的 compression 架构可以做到几百甚至上千的压缩比。但为什么绝大多数设计公司止步于100-200X的压缩比?
更重要的一个因素是过高的压缩比会带来严重的绕线拥堵,对物理实现带来挑战。
Cadence的Physcial Aware Compression 技术对此提供了完美的解决方案。
ATPG:
ATPG (AutomaticTest Pattern Generation) 指工具应用相应算法产生测试向量的过程,它广泛应用于生产测试中对逻辑电路的测试。ATPG算法研究的是,针对电路中的故障,如何激发故障、观测故障效应等。教科书级别的算法有D算法和PODEM等。各EDA厂商ATPG算法的差异性主要是由不同的 Compression 架构导致。不同的工具竞相追逐的主要目标是在达到相同测试覆盖率的前提下,谁的测试时间最短,从而为客户节省成本。ATPG工具的runtime也是评价ATPG工具的重要指标之一。
测试时间:
A:ATE测试程序会分别针对芯片IO, 逻辑电路, Memory 以及模拟电路进行全面的测试。测试数据量的大小, 测试向量运行频率,如何最大限度的并行测试,都是影响测试时间的重要因素。同时,在测试机台上尽可能做Multi-site 测试, 即多块芯片同时测试,也是缩短平均测试时间,降低成本的重要手段。
OCC/OPCG/scan clock mux:
A:芯片的运行速度愈来愈快,从几十兆赫兹,到几百兆赫兹,再到几个Giga赫兹。但测试机台的发展却相对滞后(一般在一两百兆左右), 这就需要利用片上PLL提供at-speed测试时钟。
OCC (On-Chip Clock) 或 OPCG (On-Product Clock Gating)是为了做at-speed测试,在设计中增加的时钟控制模块。它的基本原理是在 scan shift 模式下, 选通慢速的ATE 时钟,load 或 unload 扫描链; 在 capture 模式下,对 free-running PLL clock 过滤筛选出 lauch 和 capture clock 进行at-speed 测试
MBIST RTL vs Gate:
A:很多芯片设计公司都偏爱 MBIST RTL flow, 其中很重要的一个原因,就是在设计早期,可以在 RTL Level 做MBIST的快速验证。
Gate Level MBIST flow 则可以提供很高的自动化程度 。综合工具可以对设计中用到的所有 Memory 有一个全局把控,根据时钟域,Floorplan, power domain, memory power consuption等因素合理地对Memory分组, 自动制定Test plan。
DFT 标准:
IEEE1149:Standard Test Access Port and Boundary-Scan Architecture
The IEEE 1149.1 standard defines test logic that can be included in an integrated circuit to provide standardized approaches to
-
testing the interconnections between integrated circuits once they have been assembled onto a printed circuit board or other substrate;
-
testing the integrated circuit itself;
-
observing or modifying circuit activity during the component's normal operation.
The test logic consists of a boundary-scan register and other building blocks and is accessed through a Test Access Port (TAP).
IEEE1500:Standard for Embedded Core Test
IEEE Std 1500 is a scalable standard architecture for enabling test reuse and integration for embedded cores and associated circuitry. It foregoes addressing analog circuits and focuses on facilitating efficient test of digital aspects of systems on chip (SoCs). IEEE Std 1500 has serial and parallel test access mechanisms (TAMs) and a rich set of instructions suitable for testing cores, SoC interconnect, and circuitry. In addition, IEEE Std 1500 defines features that enable core isolation and protection. IEEE Std 1500 will reduce test cost through improved automation, promote good design-for-test (DFT) technique, and improve test quality through improved access.
IEEE1687:Standard for Access and Control of Instrumentation Embedded within a Semiconductor Device.
This standard develops a methodology for access to embedded instrumentation, without defining the instruments or their features themselves, via the IEEE 1149.1(TM) test access port (TAP) and additional signals that may be required. The elements of the methodology include a description language for the characteristics of the features and for communication with the features, and requirements for interfacing to the features.
IEEE1838:Standard for Test Access Architecture for 3-D Stacked Integrated Circuits.
For 3D-SICs, three parties are involved: Die Maker(s), Stack Maker(s), and Stack User(s). All circuit features of the stack are included in the individual die designs. Design and integration of test access features needs to be done by the Die Maker(s), not only to serve their own (pre-stacking) test objectives, but also to serve test objectives of Stack Maker and Stack User. After stacking, test (control and data) signals need to be able to travel from the stack's external I/Os up and down through the stack. Hence, the test access features in the various dies of the stack need to function in a concerted and interoperable fashion. Different dies might have their own technologies, design set-up, and test and design-for-test approaches; the standard should not modify those. The standard defines test access features for a die that enable the transportation of test stimuli and responses both for testing THIS DIE and its inter-die connections, as well as for testing OTHER DIES in the stack and their inter-die connections.
DFT 发展趋势:
A:取决于芯片的应用领域,DFT 发展趋势、侧重点会有所不同。
-
对于Mix-signal 的设计, 受到芯片管脚较少的限制, 如何做 low-Pin-Count Test是一个挑战;
-
对于汽车电子而言,出于安全考虑,设计者考虑更多的则是如何将测试覆盖率做到极致;
-
消费电子的规模愈来愈大,受到芯片管脚数目,ATPG runtime 以及测试功耗等因素的约束,传统的 Flat-ATPG 已不再适用。 层次化测试 (Hierarchical Test) 成为主流。 层次化测试不仅可以允许不同模块灵活分组测试,而且在block level 产生的测试向量可以在顶层复用,减少ATPG的 runtime;
-
另外,一些新技术的出现,如3D Stack Die, 如何做 TSV test, 也给DFT带来新的课题
新工艺挑战:
A:当工艺进步到28nm以下时,业内有不少声音指出 Cell Aware Model 可以帮助减少testescape,提升DPPM。通常的Fault Model是在Standard Cell level 对fault 建模, 所谓的 Cell Aware Model 是指在 transistor level 对fault 建模。 至于在最新工艺10nm, 7nm及以下,需要什么样的fault model, 还是需要大数据说话,让我们拭目以待。