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实现的

Part II

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对于提高交付的质量是一个很好的保证。

DFT 问答 I的更多相关文章

  1. DFT 问答 III

    1.Boundary scan Boundary Scan就是我们俗称的边界扫描.Boundary Scan是上世纪90年代由 Joint Test Action Group(JTAG)提出的,它的初 ...

  2. DFT 问答 II

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

  3. Ext JS - 问答

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

  4. https问答篇

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

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

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

  6. 转载:一幅图弄清DFT与DTFT,DFS的关系

    转载:http://www.cnblogs.com/BitArt/archive/2012/11/24/2786390.html 很多同学学习了数字信号处理之后,被里面的几个名词搞的晕头转向,比如DF ...

  7. Linux常见疑难问答

    Linux常见疑难问答 (1)按a~z顺序排列启动服务进程. #exportLC_ALL=C           #英文环境变量设置,主要用于解决乱码问题 #chkconfig –list | gre ...

  8. [python](爬虫)如何使用正确的姿势欣赏知乎的“长得好看是怎样一种体验呢?”问答中的相片

    从在知乎关注了几个大神,我发现我知乎的主页画风突变.经常会出现 ***长得好看是怎样一种体验呢? 不用***,却长得好看是一种怎样的体验? 什么样***作为头像? ... 诸如此类的问答.点进去之后发 ...

  9. JAVA多线程和并发基础面试问答(转载)

    JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...

随机推荐

  1. 自己动手写个异步IO函数 --(基于 c# Task)

    前言    对于服务端,达到高性能.高扩展离不开异步.对于客户端,函数执行时间是1毫秒还是100毫秒差别不大,没必要为这一点点时间煞费苦心.对于异步,好多人还有误解,如: 异步就是多线程:异步就是如何 ...

  2. C语言宏的神奇写法:语句块作为参数,算半个函数式编程?

    我想要写几个循环做测试代码,每次都写 `for(size_t i = 0; i < n; i++)` 很烦人,然后就灵机一动,能不能用宏实现,然后就写出了: #define repeat(n, ...

  3. Affinity Propagation Demo1学习

    利用AP算法进行聚类: 首先导入需要的包: from sklearn.cluster import AffinityPropagation from sklearn import metrics fr ...

  4. CCF_201612-2_火车购票

    http://115.28.138.223/view.page?gpid=T46 水. #include<iostream> #include<cstring> #includ ...

  5. OpenCV3入门(九)图像几何变换

    1.图像缩放 假设图像x轴的缩放因子Sx, y轴方向的缩放因子Sy,相应的变换表达式为: 函数原型为: CV_EXPORTS_W void resize( InputArray src, Output ...

  6. MySQL :LAST_INSERT_ID()函数总结

    作用:当对table进行insert操作时,返回具有Auto_increment(自动增长)特性的属性列的最新值. 该函数的特点 1.每当断开本次连接之后又重新连接时,该函数的返回值会被重置为0. 2 ...

  7. Jmeter之安装与环境配置

    前言 本次的教程是Jmeter的安装与配置 1.安装JDK并配置好环境变量,在系统变量中添加JAVA_HOME变量 在系统变量path中添加 %JAVA_HOME%\bin 2.打开Jmeter官网: ...

  8. -bash: warning: setlocale: LC_CTYPE: cannot change locale (zh_CN.UTF-8mb4): No such file or directory

    前几天登录服务器发现出现了这些个警告,一直没时间去处理他,今天难得有空,处理一下并记录下来,希望可以帮助到有需要的朋友. 警告信息如下: Last login: Tue May :: from 192 ...

  9. flyway使用简介

    官网 https://flywaydb.org/ 背景 Flyway是独立于数据库的应用.管理并跟踪数据库变更的数据库版本管理工具.用通俗的话讲,Flyway可以像Git管理不同人的代码那样,管理不同 ...

  10. 少量代码设计一个登录界面(二) – .NET CORE(C#) WPF开发

    微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. 阅读导航 本文背景 代码实现 本文参考 源码 1. 本文背景 同上篇文章<少量代码设计一 ...