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. [LeetCode]题解(python):064-Minimum Path Sum

    题目来源 https://leetcode.com/problems/minimum-path-sum/ Given a m x n grid filled with non-negative num ...

  2. 【C++】error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型

    刷leetcode 263.uglynumber时,代码如下: class Solution { public: bool isUgly(int num) { int temp = num; ) re ...

  3. Java学习-012-文件删除实例及源代码

    此文源码主要为应用 Java 创建文件的源代码.若有不足之处,敬请大神指正,不胜感激! 文件删除源代码如下: /** * @function 文件操作:删除文件.若文件存在且未被占用,则删除文件:若文 ...

  4. C# RichTextBox 滚动条 滚动到最后一行

    使用RichTextBox控件用于显示数据时,滚动条只停留在开头,而我希望能够一直更新,显示最后一行的内容.解决方法记录于此. 转载自以下链接: http://blog.csdn.net/xelone ...

  5. 详解Spring事件驱动模型

    转载自:http://jinnianshilongnian.iteye.com/blog/1902886#comments 事件驱动模型简介 事件驱动模型也就是我们常说的观察者,或者发布-订阅模型:理 ...

  6. App Store idfa被拒检查办法

    最近应用因为这个问题被拒两次,理由如下: PLA 3.3.12We found your app uses the iOS Advertising Identifier but does not in ...

  7. jQuery判断某个元素是否存在某个样式

    <input type="button" class="new"/> $("input[name=new]").hasClass ...

  8. mv命令(转)

    mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...

  9. C# DEV--DateEdit长日期

    参考博客: DevExpress的DateEdit设置显示日期和时间 this.datBeginTime.Properties.VistaEditTime = DevExpress.Utils.Def ...

  10. eclipse启动无响应,停留在Loading workbench状态

    做开发的同学们或多或少的都会遇到eclipse启动到一定程度时,就进入灰色无响应状态再也不动了.启动画面始终停留在Loading workbench状态.反复重启,状态依旧. 多数情况下,应该是非正常 ...