INTEST/EXTEST SCAN
INTEST scan指的是对IP 内部的scan cell的扫描测试,针对IP内部的flip-flop进行shift/capture的操作。
和INTEST SCAN 对应的就是EXTEST SCAN, 顾名思义,所指的也就是IP之间的glue logic的SCAN CELL的测试。这部分SCAN CELL 包括了IP之间的flip-flop以及IP的input的第一级flip-flop,这主要是因为IP的第一级flip-flop在做INTEST测试时只能用于shift data,并不能进行capture,所以需要在EXTEST的时候进行测试。
下图所示,就是一个IP的INTEST的data flow。
每个IP有对应的scan_in,scan_out channel,它们的channel的数量是由每个IP内部的scan_cell数量,EDT的压缩比,以及short chain的数量决定的。
1. 根据Mentor的工具建议来看,一个short chain上面的scan_cell数量可以在250~300之间。
2. 每个IP每部的压缩比的尽量在100~150条之间,如果压缩比过大,可能导致的问题是compressor/decompressor的内部logic过大,会插入较多的pipeline,从而导致整条scan chain的长度变得很大。
在计算scan_in/out 和内部的short chain数量时,会经过多次迭代,每次根据生成的EDT模块来看压缩比否合适,尽量保持EDT内部的pipeline长度小于short chain的 1/5.
为什么会分为intest和extest两种测试模式?
原因其实还是在于做scan时无法测到IP之间的gule logic。
首先来看一下SOC的整体结构,再做scan时我们会划分为ip leve和soc level。
IP level就是指测试ip内部的所有scan cell,通过shift->capture->shift这个过程,将内部所有的flop进行检查,主要是检查flop通路,以及logical path是否存在stuck at fault,以及测试signal transition能否满足timing。这些问题可以通过DC/AC mode来进行检查。

这张图画出了IP level intest的结构,红色的线代表的是scan data input/output,蓝色的线代表function data input/output。
当进行scan的时候:
1. SE =1, SDI shift data 8 cycle,将所有的flop的D pin都已经给到一个data。
2. SE = 0, clock切换到function clock,进入capture mode,此时用fuction clock shift 1 cycle,将D pin数据输出到下一个flop的D pin上。
3. SE = 1, clock切回shift clock,进入到shift mode,将flop的数据逐个SHIFT 出来,输出到SDO,在ATE上完成一组vector的测试。
看起来整个流程是可以的,但在整个流程上,第一级的flop,也就是途中input chain中的紫色三个flop实际上是没有办法测到正常的capture模式,因为在capture mode情况下,INPUT CHAIN的SE始终要保持为1(也就是第一级的flop一直要选择红儿箭头的输入),如图蓝色的箭头所示,蓝色箭头是外部给过来的function input,在IP level,是没有办法控制它们的input,所以在capture mode下,SE =1,此时capture出来的数据实际上就是shift进来的scan input data。
在这种情况下,IP之间的glue logic没有办法验证到。
如下图所示,当两个IP之间的glue logic需要进行测试的时候,此时,第一个IP的最后一级flop就变成了INPUT CHAIN, 而第二个IP的第一级flop就变成了OUTPUT CHAIN.此时也就形成了一个IP之间的SCAN test,这样也就可以完全测试到capture mode下的flop以及logic部分。

INTEST/EXTEST SCAN的更多相关文章
- INTEST/EXTEST SCAN 的学习
intest scan的一些基本知识.INTEST scan指的是对IP 内部的scan cell的扫描测试,针对IP内部的flip-flop进行shift/capture的操作.和INTEST SC ...
- go-hbase的Scan模型源码分析
git地址在这里: https://github.com/Lazyshot/go-hbase 这是一个使用go操作hbase的行为. 分析scan行为 如何使用scan看下面这个例子,伪代码如下: f ...
- theano scan optimization
selected from Theano Doc Optimizing Scan performance Minimizing Scan Usage performan as much of the ...
- Sql Server 聚集索引扫描 Scan Direction的两种方式------FORWARD 和 BACKWARD
最近发现一个分页查询存储过程中的的一个SQL语句,当聚集索引列的排序方式不同的时候,效率差别达到数十倍,让我感到非常吃惊 由此引发出来分页查询的情况下对大表做Clustered Scan的时候, 不同 ...
- MySQL的loose index scan
众所周知,InnoDB采用IOT(index organization table)即所谓的索引组织表,而叶子节点也就存放了所有的数据,这就意味着,数据总是按照某种顺序存储的.所以问题来了,如果是这样 ...
- Golang 逐行读写之scanner.Scan
Go语言实现逐行读的方法多种,本文只介绍Scaner的方法,也是go推荐的方法. 官方文档 例子: file, err := os.Open("filename") if err ...
- theano中的scan用法
scan函数是theano中的循环函数,相当于for loop.在读别人的代码时第一次看到,有点迷糊,不知道输入.输出怎么定义,网上也很少有example,大多数都是相互转载同一篇.所以,还是要看官方 ...
- hbase scan 的例子
/** * Created by han on 2016/1/28. */ import org.apache.hadoop.conf.Configuration; import org.apache ...
- Index Seek和Index Scan的区别
Index Seek是Sql Server执行查询语句时利用建立的索引进行查找,索引是B树结构,Sql Server先查找索引树的根节点,一级一级向下查找,在查找到相应叶子节点后,取出叶子节点的数据. ...
随机推荐
- 编程中常用的DOS命令
1. dir directory 无参数:查看当前所在目录的文件和文件夹. /s : 查看当前目录以及其所有子目录的文件和文件夹 /a :查看包含的隐含文件的所有文件. /ah :只显示出隐含文 ...
- AngularJS 过滤器 Filter
过滤器实质是数据转换或过滤,把ViewMode中的数据转化成View层用户友好的信息.可以看做一个函数,负责接收输入,转换成输出,每次参数变化时,它就被执行,输出被视图View使用. 一.基本定义及其 ...
- yum-阿里源配置
原文:https://opsx.alibaba.com/mirrorCentOS 1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/ ...
- iOS开发中与库相关的术语
动态库 VS 静态库 Static frameworks are linked at compile time. Dynamic frameworks are linked at runtime
- CentOS下双网卡绑定-bond0
网卡绑定就是多张网卡逻辑上作为一张网卡用.可分为,负载均衡绑定和冗余绑定两种. 加载bonding驱动 #modprobe bonding 1.编辑虚拟网络接口配置文件 [root@test~]# ...
- 设置cxGrid中RichEdit输入内容的格式
设置cxGrid中RichEdit输入内容的格式 (2013-09-05 23:25:31) 转载▼红鱼儿新浪博客 分类: Delphi 遇到这样的问题,利用cxGrid,将一列定义为RichEd ...
- bootstrap基础学习小记(一)简介模板、全局样式
2011年,twitter的“一小撮”工程师为了提高他们内部的分析和管理能力,用业余时间为他们的产品构建了一套易用.优雅.灵活.可扩展的前端工具集--BootStrap.Bootstrap由MARK ...
- 556. Next Greater Element III
Given a positive 32-bit integer n, you need to find the smallest 32-bit integer which has exactly th ...
- Swift5 语言指南(二十八) 高级运算符
除了Basic Operators中描述的运算符之外,Swift还提供了几个执行更复杂值操作的高级运算符.这些包括C和Objective-C中您熟悉的所有按位和位移运算符. 与C中的算术运算符不同,S ...
- 【spring cloud】服务启动后正常,但是无法上线,一直处于down状态
spring cloud eureka 如果出现某个应用实例 down(1), 说明 spring admin 健康检测没有通过导致 eureka 注册中心不会把这个实例从列表中删除掉. 这样所有使用 ...