DFT 问答 I
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的更多相关文章
- DFT 问答 III
1.Boundary scan Boundary Scan就是我们俗称的边界扫描.Boundary Scan是上世纪90年代由 Joint Test Action Group(JTAG)提出的,它的初 ...
- DFT 问答 II
1. Boundary Scan A:Boundary scan 顾名思义,是附加在芯片I/O 周边的扫描测试链,它通过专门的测试端口(TAP)访问.在测试模式下,边界扫描链会接管功能逻辑,对I/O进 ...
- Ext JS - 问答
Ext JS - 问答 在下面你将可以找到关于Ext JS 的最常见问题的答复.如果没有找到您所需的答复,请访问 Ext JS 论坛或者提交一个支持申请. 如果你确信你的问题可以对本页有补充,请让我们 ...
- https问答篇
https问答 SSL和TLS有什么区别? 可以说,TLS是SSL的升级版本,SSL是网景公司设计的,为了最早期的网络安全而生,它的全名叫做"安全套接层".后来,IETF在1999 ...
- 关于ArcGIS的Web 3D GIS问答
以下问答基于ArcGIS 10.4版本,涉及的软件有 ArcGIS for Server ArcGIS for Desktop ArcGIS Pro 1.3 Esri Drone2Map 1 支持B/ ...
- 转载:一幅图弄清DFT与DTFT,DFS的关系
转载:http://www.cnblogs.com/BitArt/archive/2012/11/24/2786390.html 很多同学学习了数字信号处理之后,被里面的几个名词搞的晕头转向,比如DF ...
- Linux常见疑难问答
Linux常见疑难问答 (1)按a~z顺序排列启动服务进程. #exportLC_ALL=C #英文环境变量设置,主要用于解决乱码问题 #chkconfig –list | gre ...
- [python](爬虫)如何使用正确的姿势欣赏知乎的“长得好看是怎样一种体验呢?”问答中的相片
从在知乎关注了几个大神,我发现我知乎的主页画风突变.经常会出现 ***长得好看是怎样一种体验呢? 不用***,却长得好看是一种怎样的体验? 什么样***作为头像? ... 诸如此类的问答.点进去之后发 ...
- JAVA多线程和并发基础面试问答(转载)
JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...
随机推荐
- POJ_2941_矩阵
题目描述: 每组数据给定一个n*n的矩阵,选定不同行不同列的n个元素,求和,若所有选法所产生的和相等,则输出 homogeneous,否则输出not homogeneous. 描述: 数据挺大,爆搜肯 ...
- ElasticSearch基础入门学习笔记
前言 本笔记的内容主要是在从0开始学习ElasticSearch中,按照官方文档以及自己的一些测试的过程. 安装 由于是初学者,按照官方文档安装即可.前面ELK入门使用主要就是讲述了安装过程,这里不再 ...
- pytorch之 compare with numpy
import torch import numpy as np # details about math operation in torch can be found in: http://pyto ...
- 跨域的两种解决方法jsonp和CORS
1.跨域 什么是跨域? 当你请求的url是不同源的数据的时候,浏览器一般会抛出请求跨域的错误,如下图: 造成跨域的原因? 即你违反了浏览器的同源策略的限制=>阻止一个域的js脚本和另外一个域的内 ...
- 如何构建OpenStack镜像
本文以制作CentOS7.2镜像为例,详细介绍手动制作OpenStack镜像详细步骤,解释每一步这么做的原因.镜像上传到OpenStack glance,支持以下几个功能: 支持密码注入功能(nova ...
- Spring——自动装配(@Autowired/@Profile/底层组件)
本文介绍Spring中关于自动装配的方法和规则,以及@Profile动态激活的用法和一个例子. 一.@Autowired自动装配 @Autowired注解可以加在构造器.属性.方法.方法参数上. 自动 ...
- Windows安装node环境,部署静态网站
1.进入官网,下载nodejs https://nodejs.org/zh-cn/ 2.安装nodejs win10怎么安装nodejs和npm https://jingyan.baidu.com/a ...
- js—二进制中1的个数
题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 做题思路 代码 function NumberOf1(n) { // write code here var cnt = 0 ...
- Java Lamada
Collection: ->stream:返回一个以 colleciotn 元素为数据源的数据流. -->map: 入参 Function 对象,将此流中的元素依次作用于传入的 Funct ...
- 01、Git安装教程(windows)
首先如下图:(点击next) 第二步:文件位置存储,可根据自己盘的情况安装 第三步:安装配置文件,自己需要的都选上,下一步 第四步:不创建启动文件夹,下一步: 第五步:选择默认的编辑器,我们直接用推荐 ...