工程会接触DFT。需要了解DFT知识,但不需要深入。

三种基本的测试(概念来自参考文档):
1. 边界扫描测试:Boundary Scan Test: 测试目标是IO-PAD,利用JTAG接口互连以方便测试。(jtag接口,实现不同芯片之间的互连。这样可以形成整个系统的可测试性设计)
2. 内建自测试BIST:(模拟IP的关键功能,可以开发BIST设计。一般情况,BIST造成系统复杂度大大增加。memory IP一般自带BIST,简称MBIST
3. 扫描测试(ATPG)Scan
path:
与边界扫描测试的区别,是内部移位寄存器实现的测试数据输入输出。测试目标是std-logic,即标准单元库。(扫描测试和边界扫描,不是一个概念。需要区别对待。内部的触发器,全部要使用带SCAN功能的触发器类型。)


补充:
还有一种测试:
4. 全速测试at-speed-test(其实是属于扫描测试的一种。只不过测试时钟来源频率更快。)
at-speed 就是实速测试, 主要用于scan测试-即AC测试和mbist测试。这种测试手段的目的是-测试芯片在其工作频率下是否能正常工作,实速即实际速度。测试时钟往往是由芯片内部的PLL产生很快的测试时钟,用于实速测试。
相对而言,一般的测试是20~40兆的测试时钟,频率低,测不到transition fault。即使测试通过,实际使用中还会由于使用高频时钟发生芯片电路故障。


常见的DFT/OCC结构如下:

特点:

1. Clock MUX必须放在OCC模块/DFT MUX之前。 (OCC:On Chip Clock)
2. 时钟大于50MHz时,使用OCC模块,否则使用DFT MUX。
3. Clock Gate放在OCC模块/DFT MUX之后。
4. 对于手动添加的Clock Gate,DFT_SE端口接到 dft_glb_gt_se。
5. 对于综合工具添加的Clock Gate,DFT_SE端口接到dft_syn_gt_se


注意:
1. DFT_MODE有效时,clock mux的sel信号要保证dft_clk来源于最高频率的时钟源。
2. DFT_MUX或者OCC,不能串联。

OCC(On Chip Clock)结构如下:
注意:
1. slow_clk是类似dft_clk;这个时钟源由后端提供。个人认为所有dft_clk的来源,频率不一样,来源由后端决定,应该是测试引脚输入的吧?!
2. fast_clk是正常工作时钟源。

DFT工程师手里有三大法宝:
法宝一:BSCAN技术– 测试IO pad,主要实现工具是Mentor-BSDArchit,sysnopsy-BSD Compiler;
法宝二:MBIST技术– 测试mem,主要实现工具是Mentor的MBISTArchitect 和 Tessent mbist;
法宝三:ATPG 技术– 测试std-logic,主要实现工具是:产生ATPG使用Mentor的 TestKompress 和synopsys TetraMAX,插入scan chain主要使用synopsys 的DFT compiler。
以下对工具的使用原则做一些介绍:

ATPG工具
Insert scan:
1、虽然教科书会介绍很多种DFT DRC但是在实际设计中95%的工作在修复scan_clk和scan_reset的DRC violation;
2、修复clk/reset violation 的方法主要是用DC插入mux
,目的是使在scan_mode下clk和reset被芯片scan_clk和scan_reset pad控制。
同时,scan_clk和scan_reset pad会用于ATE给芯片施加激励;
3、插入scan时,DFT Compiler必须修复的DRC violations 类别为D1/D2/D3/D9;
4、做全片级的DFT设计时,需要在scan_in,scan_out,scan_reset,scan_clk的IO pad 的OEN/IE/REN端插入mux,控制pad的输入和输出方向。

Atpg patterns产生和仿真:
1、所有的模拟模块,例如PLL、POR等,一般设置为black-box,无法用ATPG测试其内部;
2、芯片clk、power、reset的控制寄存器,一般不会放到scan_chain上,以免在测试时由于寄存器的动作,改变芯片工作状态;
3、考虑power domain的开关,一般必须保证在scan测试时,所有power domain都打开,每个数字标准单元都能测试到;
4、如果有模拟的IO pad,一般必须在产生pattern时mask掉,因为他们不是数字的,ATPG工具无法控制它们;
5、业界一般使用DC插入OCC (on chip clocking)模块,实现at-speed scan测试电路。

MBIST工具
目前使用较多的是MBISTArchi,但是Tessent MBIST以后会成为主流。原因是Mentor公司2013年已经宣布MBISTArchi将不再提供技术支持,而且Tessent MBIST技术更为先进。
1、所有的MBIST设计应该考虑diagnose。加入diagnose电路,方便诊断mem故障,这会在芯片量产时大大提高成品率;
2、由于ARM与Mentor有合作,Coretex-A9以上的ARM核具有share-bus接口,可以很好支持Tessent Mbist,就能够实现ARM内核的mem的高速测试和访问,也提高了ARM CPU的性能;
3、Tessent MBIST会使用JTAP,只占用TCK/TMS/TDO/TDI/TRST五个pad,比MBISTArich使用更少的pad资源。
BSCAN 工具
1、所有的模拟IO,一般无法用bscan来测试,不要加上bscan_cells;
2、所有需要测试的数字pad的OEN/IE/REN 在bscan_mode下,需要插mux来控制;
3、所有需要测试的数字pad的PU/PD 在bscan_mode下,一般需要插mux来控制,保证在bscan_mode下,PU和PD=0,才能使bscan HIGHZ测试仿真通过;
4、所有JTAG的强制要求指令如IDCODE,EXIST必须在bscan电路中实现,特别是BYPASS。

DFT,可测试性设计--概念理解的更多相关文章

  1. IDDD 实现领域驱动设计-理解限界上下文

    上一篇:<IDDD 实现领域驱动设计-理解领域和子域> <实现领域驱动设计>前两章内容,基本上读完了,和<领域驱动设计>不同的是,它把很多的概念都放在前面进行讲述了 ...

  2. DDD领域驱动设计的理解

    DDD领域驱动设计的理解 从遇到问题开始 当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决. 比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能 ...

  3. 我对面向对象设计的理解——Java接口和Java抽象类

    在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解. 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有 ...

  4. 大数据核心知识点:Hbase、Spark、Hive、MapReduce概念理解,特点及机制

    今天,上海尚学堂大数据培训班毕业的一位学生去参加易普软件公司面试,应聘的职位是大数据开发.面试官问了他10个问题,主要集中在Hbase.Spark.Hive和MapReduce上,基础概念.特点.应用 ...

  5. SpringIOC的概念理解、构造器注入、setter注入、p命名空间注入、IOC容器介绍与比较

    1.IOC概念理解 IOC(Inversion of Control)即“控制反转”,不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象 ...

  6. Kubernetes重要概念理解

    Kubernetes重要概念理解 kubernetes是目前最主流的容器编排工具,是下一代分布式架构的王者.2018年的kubernetes第一个版本1.10已经发布.下面整理一下,kubernete ...

  7. SNF快速开发平台2019-角色、权限、账户的概念理解-非常全的理论讲解权限控制

    组织模型   资源模型  操作模型 谁能够执行哪些操作    执行资源的范围 资源概念资源就是想要的到的最终物质,我们可以给每一个资源定义一个权限,也可以给某一类资源定义一个权限 权限概念权限是对资源 ...

  8. fragment概念理解

    fragment概念理解知识,fragment概念理解图片 fragment概念理解内容,fragment概念理介绍,fragment概念理正文 Fragment是Android honeycomb ...

  9. Ceph 概念理解

    简介 Ceph是一个可靠地.自动重均衡.自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储.块设备存储和文件系统服务. 在虚拟化领域里,比较常用到的是Ceph的块设备存储, ...

随机推荐

  1. django系列2--下载安装、项目创建、配置、启动

    Django下载与安装 一.使用pip: 1.下载: django的官网下载页:https://www.djangoproject.com/download/ 1.使用pip安装, 在cmd命令行中输 ...

  2. linux网络流量实时监控工具之iptraf 【个人比较喜欢用的流量监控软件】

    linux网络流量实时监控工具之iptraf IPTraf是一个网络监控工具,功能比nload更强大,可以监控所有的流量,IP流量,按协议分的流量,还可以设置过滤器等,如下图 对监控网络来说,这个更适 ...

  3. 486. Predict the Winner

    Given an array of scores that are non-negative integers. Player 1 picks one of the numbers from eith ...

  4. 2018年秋PTA乙级回顾

    距离上次我一个人参加PAT考试已经过去快一个学期了,想想上次自己也是搞笑,自己一个人被这个书包就去了ZZ,人生地不熟的,乘坐公交车还坐反了.考完试因为不知道要等到考试结束就可以领取成绩证书,自己连那张 ...

  5. 对this的理解?

    回答一: (1) Js的this指向是不确定的,也就是说可以动态改变的.Call/apply 就是用于改变this指向的函数,这样设计可以让代码更加灵活,复用性更高 (2) This一般情况下,都是指 ...

  6. let、const和var的区别

    1.let是块级作用域,函数内部使用let定义后,对函数外部无影响. <!DOCTYPE html> <html lang="en"> <head&g ...

  7. Mybatis 的输入参数学习

    mybatis 的输入参数: 指得就是parameterType的参数 这个参数就代表的sql语句中的输入参数 sql语句中的参数使用  有两种方式 : 使用#{} 获取:  8个基本数据类型 + S ...

  8. CAS客户端整合(二) Zabbix

    Zabbix是一个强大的服务器/交换机监控应用,有zabbix-server, zabbix-client, zabbix-web 三部分.zabbix-web管理端是用php写的. 前文参考:CAS ...

  9. BZOJ 1150--数据备份(链表&堆&贪心)

    1150: [CTSC2007]数据备份Backup Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2572  Solved: 1038[Submit ...

  10. Java Web 学习与总结(三)会话跟踪

    何为会话跟踪?举个简单的例子,比如登陆到某购物网站后,在一定时间内无论你在这个网站中切换到任意的网页,只要不执行退出操作,一直保持着你账号的登录状态. 那么在Java Web中我们应当如何去实现这一操 ...