Testability用来表征一个manufactured design的quality。

将testability放在ASIC前端来做,成为DFT(Design For Test),用可控(controllable)可观(observable)来表征。

DFT的实现的两个大方向:ad hoc和structure。

1)ad hoc:利用良好的设计习惯,来保证testability。减少无关逻辑,异步逻辑,增加可控可查点。

2)structured:更加系统,自动的方法。包括三个方法:

scan design:需要改变内部时序逻辑。

Built-in Self-Test(BIST):需要在器件中插入测试功能。

boundary scan:增加电路,来保证板级测试性。

其中bist和boundary需要在DC之前来做,scan design在DC之后做增量型编译。

bist逻辑中也需要scan design。

scan操作的流程:

1)使能scan mode;

2)打开scan clock,输入stimulus;

3)比较output,再关掉scan clock,来输入下一stimulus。

scan操作可以分为full scan和Partial scan。full scan的覆盖率最高而且ATPG容易产生,但是对面积和时序不友好。

Partition Scan:针对大型设计,从block的层次来进行scan设计,加入scan input/output/enable

Test Points:针对一些难以观察控制的点,额外加入mux来进行控制。

如或门的输出,输入还有一个1,另一个输入,就难以观察,后续逻辑就难以控制,

此时可以在或门之后,加入一个mux,以及一个input和一个output来保证coverage。(例程见相册)

ATPG(Automatic Test Pattern Generation),Test patterns也叫做test vector。

有random pattern和Deterministic pattern两种,不过多数使用random,包含两部分:

1)generation patterns;

2)完成fault simulation;

测试种类(Test Type):分为三类:

1)functional test,主要针对static defects,(open,short,stuck-on,stuck-open)

2)IDDQ,测试静态功耗current。以Pseudo stuck-at模型来进行分析。

对于Full static的CMOS电路,IDDQ接近于零,上拉下拉,三态总线的IDDQ较高,

RAM这样的动态存储器中也会产生较高IDDQ。

3)At-Speed test:主要分析transaction,path delay。如slow-to-rise,slow-to-fall。

以上都是单一的fault模型,也可能发生fault collapsing。

scan中的专业术语:

Scan Cells:一个scan cell,在一条scan chain中至少包含一个memory element(FF或latch)。

Master Element:直接从上一个scan cell中,得到数据的scan cell,与scan input直接相连接。

Slave Element:在scan chain中的同一个clock的scan cell。

Shadow Element:在scan chain之外的FF或latch。

Copy Element:与上下的scan cell拥有相同或相反的数据的scan cell。

Extra Element:在master element和slave element之间的任意一个element。

Scan chain:一系列连接起来的scan cell,包括一个input ,output,enable。靠近output的scan cell编号0。

Scan Groups:一系列可并行处理的scan chain(有自己的输入和输出)。

Scan Clocks:scan操作的时钟信号,包括reset和set信号。

scan architecture:主要有三种:

1)mux-scan:在传统的DFF数据输入端,加入mux。

2)clocked-scan:替换FF为一个mux clock的FF。

3)LSSD(Level-Sensitive Scan Design) architecture:将一个latch替换为主从两个latch。

其中mux-scan和clocked_scan,主要用在FF电路,LSSD主要用在锁存器电路,框图见相册。

Test Procedure Files:描述scan circuirty的操作。用STIL语言编写(Standard Test Interface Lauguage)。

Model Flattening:一些DFT有内部自己的model,他们通过将netlist中的单元替换为自己的model,再进行操作。

scan & ATPG的更多相关文章

  1. At_speed_test

    Logic BIST通过将很多的tester functionality放在CUT中,减少了test costs,但是更重要的一方面是at-speed testing. At-speed test包括 ...

  2. scan design flow(一)

    一个典型的scan实现的flow: clock mux和一些rst,在Scan中都被bypass掉,是不能测到的.所以DFT的test coverage一般就在97%或98%. scan design ...

  3. scan design rules

    为了更好的设计一个scan design,一些scan design的rule必须遵循. 1)tristate bus在shift mode下必须保持bus contention: 2)bidirec ...

  4. scan cell

    scan cell有两种不同的input: 1)data input:由电路的combinational logic驱动: 2)scan input:由另一个scan cell驱动,从而形成scan  ...

  5. go-hbase的Scan模型源码分析

    git地址在这里: https://github.com/Lazyshot/go-hbase 这是一个使用go操作hbase的行为. 分析scan行为 如何使用scan看下面这个例子,伪代码如下: f ...

  6. theano scan optimization

    selected from Theano Doc Optimizing Scan performance Minimizing Scan Usage performan as much of the ...

  7. Sql Server 聚集索引扫描 Scan Direction的两种方式------FORWARD 和 BACKWARD

    最近发现一个分页查询存储过程中的的一个SQL语句,当聚集索引列的排序方式不同的时候,效率差别达到数十倍,让我感到非常吃惊 由此引发出来分页查询的情况下对大表做Clustered Scan的时候, 不同 ...

  8. MySQL的loose index scan

    众所周知,InnoDB采用IOT(index organization table)即所谓的索引组织表,而叶子节点也就存放了所有的数据,这就意味着,数据总是按照某种顺序存储的.所以问题来了,如果是这样 ...

  9. Golang 逐行读写之scanner.Scan

    Go语言实现逐行读的方法多种,本文只介绍Scaner的方法,也是go推荐的方法. 官方文档 例子: file, err := os.Open("filename") if err ...

随机推荐

  1. 基于 backbone的弹窗插件

    define(['backbone', 'jquery', 'text!creditCardTpl/page.html'], function (bacobone, jquery, dialog_tp ...

  2. MVC 中的 ViewModel

    此文章总结自:http://rachelappel.com/use-viewmodels-to-manage-data-amp-organize-code-in-asp.net-mvc-applica ...

  3. 【C++】C++求vector中的最大最小值

    利用algorithm库里的max_element和min_element可以得到vector的最大最小值,配合distance函数可以得到最大值的位置 #include<vector> ...

  4. MacOX-001- 远程连接 windows 客户端

    至如下地址下载 windows 远程工具: http://www.microsoft.com/zh-CN/download/confirmation.aspx?id=18140 下载完成后,依据向导进 ...

  5. asp.net批量删除XML节点失败的原因及解决办法

    今天操作XML的时候,用到了批量循环删除节点.出现了问题,即循环未结束,程序就跳出循环.搞了好久才弄明白. 解决前的代码: XmlNodeList items = xn.ChildNodes; //获 ...

  6. JavaScript实现进入某一页面时自动将鼠标光标放在某一textbox上

    <script language="javascript" type="text/javascript"> var txtText0 = " ...

  7. FragmentActivity和Activity的区别

    [转载] 直说总结了: 1.fragmentactivity 继承自activity,用来解决android3.0 之前没有fragment的api,所以在使用的时候需要导入support包,同时继承 ...

  8. AspectJ本质剖析

    AOP一共有两种方式,spring默认使用的是动态代理(JDK自带的动态代理或者使用cglib的动态代理)和静态代理(ASPECTJ) http://blog.csdn.net/zhao9tian/a ...

  9. 通过sqlserver日志恢复误删除的数据

     如果你已经急的焦头烂额,看到这篇文章的时候,请你换个坐姿,深呼吸几次,静下心来将这篇文章读完,也许你的问题迎刃而解. 我遇到的情况是这样的,网站被植入木马,盗取了我的web.config文件,web ...

  10. linux普通用户权限设置为超级用户权限方法、sudo不用登陆密码

    以用户zato为例 普通用户权限设置为超级用户权限 进入有超级用户权限的账号 添加文件可写(w)权限 sudo chmod u+x /etc/sudoers 编辑/etc/sudoers文件 添加语句 ...