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的更多相关文章

  1. DFT 问答 I

    Q: Boundary Scan是什么?应用场景是什么?实现的方法是什么?挑战是什么? A: Boundary Scan就是边界扫描,是由Joint Test action Group起草的规范,最初 ...

  2. DFT 问答 II

    1. Boundary Scan A:Boundary scan 顾名思义,是附加在芯片I/O 周边的扫描测试链,它通过专门的测试端口(TAP)访问.在测试模式下,边界扫描链会接管功能逻辑,对I/O进 ...

  3. SCI投稿过程总结、投稿状态解析、拒稿后对策及接受后期相关问答

    SCI投稿过程总结.投稿状态解析.拒稿后对策及接受后期相关问答   http://muchong.com/t-9174366-1 SCI投稿过程总结.投稿状态解析.拒稿后处理对策及接受后期相关问答综合 ...

  4. BugPhobia开发篇章:Beta阶段第III次Scrum Meeting

    0x01 :Scrum Meeting基本摘要 Beta阶段第三次Scrum Meeting 敏捷开发起始时间 2015/12/15 00:00 A.M. 敏捷开发终止时间 2015/12/15 23 ...

  5. Ext JS - 问答

    Ext JS - 问答 在下面你将可以找到关于Ext JS 的最常见问题的答复.如果没有找到您所需的答复,请访问 Ext JS 论坛或者提交一个支持申请. 如果你确信你的问题可以对本页有补充,请让我们 ...

  6. https问答篇

    https问答 SSL和TLS有什么区别? 可以说,TLS是SSL的升级版本,SSL是网景公司设计的,为了最早期的网络安全而生,它的全名叫做"安全套接层".后来,IETF在1999 ...

  7. 关于ArcGIS的Web 3D GIS问答

    以下问答基于ArcGIS 10.4版本,涉及的软件有 ArcGIS for Server ArcGIS for Desktop ArcGIS Pro 1.3 Esri Drone2Map 1 支持B/ ...

  8. 用Kotlin开发Android应用(III):扩展函数和默认值

    这是关于Kotlin的第三篇. 原文标题:Kotlin for Android (III): Extension functions and default values 原文链接:http://an ...

  9. LeetCode Single Number I / II / III

    [1]LeetCode 136 Single Number 题意:奇数个数,其中除了一个数只出现一次外,其他数都是成对出现,比如1,2,2,3,3...,求出该单个数. 解法:容易想到异或的性质,两个 ...

随机推荐

  1. PIE-SDK For C++矢量数据空间索引的创建

    1.功能简介 空间索引的使用便于数据的查询:所以在创建矢量数据的时候创建空间索引,下面对矢量数据如何创建空间索引进行功能介绍. 2.功能实现说明 2.1 实现思路及原理说明 第一步 创建矢量要素数据集 ...

  2. 0级搭建类011-Oracle Linux 7.x安装(OEL 7.7) 公开

    项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...

  3. virtual box虚拟机跨物理机迁移

    VirtualBox保存虚机数据的是vdi文件,但是直接拷贝在新的VirtualBox中不能打开,因为每个vdi文件都包含了一个uuid的数据,如果直接拷贝,uuid在新的VirtualBox中是不能 ...

  4. JavaScript-事件类型

    DOM3事件类型: 1.UI事件:当用户与页面上的元素交互时触发 a.DOMActivate:元素已经被用户操作激活. b.load:(1)页面完全加载:window触发. (2)所有框架加载完毕:框 ...

  5. linux-crond_计划任务

    定时计划任务 主要文件介绍: [root@nginx ~]# ll /etc/cron* -d drwxr-xr-x. 2 root root 21 7月 11 20:28 /etc/cron.d d ...

  6. The Number of Inversions(逆序数)

    For a given sequence A={a0,a1,...an−1}A={a0,a1,...an−1}, the number of pairs (i,j)(i,j) where ai> ...

  7. Wannafly Camp 2020 Day 2J 邦邦的2-SAT模板

    #include <bits/stdc++.h> using namespace std; int main() { int n; cin>>n; cout<<n& ...

  8. PP: Multi-Horizon Time Series Forecasting with Temporal Attention Learning

    Problem: multi-horizon probabilistic forecasting tasks; Propose an end-to-end framework for multi-ho ...

  9. gogs迁移至gitlab

    一.先来聊一聊迁移的思路,不管是gogs迁移至gitlab,还是gitlab迁移至gogs,亦或gitlab迁移至gitlab,手动迁移的步骤都是如下图所示(在gitlab上新建一个空项目就会有这样的 ...

  10. AntDesign(React)学习-7 Menu添加事件

    今天花了大半天时间从老家回到工作地,路上因为肺炎封堵挺厉害,希望国家挺过这个难关,要不大家都失业可就惨了,上一篇做了一个展示数据的demo,这一篇研究antd Menu item点击事件 1.还是先看 ...