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. 未来JDK中将不再包含JDBC-ODBC桥

    今天才发现一个重要问题,java中居然没有这个桥了.让初学者真的泪流了! 甲骨文公司主要技术人员.JDBC规范领导者Lance Andersen今天在博客中称,从Java SE 8(java 1.8版 ...

  2. Spring学习笔记:自动创建Proxy

    为什么需要自动创建Proxy 手动为所有需要代理的类用ProxyFactoryBean创建代理Proxy需要大量的配置. 这样如果需要代理的类很多,配置就很繁琐,而且也不便于xml配置的维护. 因此S ...

  3. Vscode使用

    一. Vscode使用 1. 点击最下方的错误警告显示条,出现四个选项最后一个为终端命令(dos命令) 2. 提交代码输入提交信息,打勾提交,选择类似刷新按钮进行推送 3. 同步代码点击类似刷新按钮即 ...

  4. 利用django打造自己的工作流平台(三):团队成员任务跟踪系统

    近期受疫情影响公司食堂不开放,为解决同事们的吃饭问题,部门需要在每周五统计下周的订餐情况:员工根据个人意愿选择是否从公司订下周的午餐和晚餐,一旦确定一周保持不变. 通常要完成一次部门内员工的订餐信息收 ...

  5. WinRAR目录穿越

    WinRAR目录穿越漏洞浅析及复现(CVE-2018-20250) 文章来源: https://www.t00ls.net/articles-50276.html EXP: https://githu ...

  6. java的异常体系 及强制转换

    一,异常 1.常见的几种异常: StackOverFlow  栈溢出错误:写递归函数的时候,没有定义递归结束的条件. ArrayIndexOutofBounds   数组越界:如新new一个数组,in ...

  7. 【HDU - 1176 】免费馅饼 (逆dp)

    免费馅饼  Descriptions: 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁 ...

  8. Android中实现长按照片弹出右键菜单

    场景 效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改为Lin ...

  9. RxJava的concat操作符

    更多文章请点击:http://77blogs.com/?p=170 转载请标明出处:https://www.cnblogs.com/tangZH/p/12088332.html,http://77bl ...

  10. P1058 立体图

    链接:Miku ------------------------------ 蒟蒻在线%lmk,ljx,lpy,yyq大佬们 ------------------------------ Good N ...