intest 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来进行检查。关于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 的学习的更多相关文章

  1. INTEST/EXTEST SCAN

    INTEST scan指的是对IP 内部的scan cell的扫描测试,针对IP内部的flip-flop进行shift/capture的操作.和INTEST SCAN 对应的就是EXTEST SCAN ...

  2. Theano学习-scan循环

    \(1.Scan\) 通用的一般形式,可用于循环 减少和映射(对维数循环)是特殊的 \(scan\) 对输入序列进行 \(scan\) 操作,每一步都能得到一个输出 \(scan\) 能看到定义函数的 ...

  3. SAS学习笔记5 字符截取语句(index、compress、substr、scan函数)

    index:返回一个字符串中,某个特定字符或字符串的位置,找不到时返回0 compress:从一个字符串移除特定的字符 substr函数 字符替换与提取字符 substr(s, p, n)从变量s的第 ...

  4. RxSwift学习笔记7:buffer/window/map/flatMap/flatMapLatest/flatMapFirst/concatMap/scan/groupBy

    1.buffer的基本使用 let publishSubject = PublishSubject<String>() //buffer 方法作用是缓冲组合,第一个参数是缓冲时间,第二个参 ...

  5. 现代3D图形编程学习-基础简介(3)-什么是opengl (译)

    本书系列 现代3D图形编程学习 OpenGL是什么 在我们编写openGL程序之前,我们首先需要知道什么是OpenGL. 将OpenGL作为一个API OpenGL 通常被认为是应用程序接口(API) ...

  6. 现代3D图形编程学习-基础简介(2) (译)

    本书系列 现代3D图形编程学习 基础简介(2) 图形和渲染 接下去的内容对渲染的过程进行粗略介绍.遇到的部分内容不是很明白也没有关系,在接下去的章节中,会被具体阐述. 你在电脑屏幕上看到的任何东西,包 ...

  7. Linux LVM学习总结——扩展卷组VG

    Linux服务器由于应用变更或需求的缘故,有可能出现分区空间不足的情况,此时往往需要进行扩容(要增加分区的空间),而采用LVM的好处就是可以在不需停机的情况下可以方便地调整各个分区大小.如下所示,分区 ...

  8. [深度学习大讲堂]从NNVM看2016年深度学习框架发展趋势

    本文为微信公众号[深度学习大讲堂]特约稿,转载请注明出处 虚拟框架杀入 从发现问题到解决问题 半年前的这时候,暑假,我在SIAT MMLAB实习. 看着同事一会儿跑Torch,一会儿跑MXNet,一会 ...

  9. Linux LVM学习总结——创建卷组VG

    在Linux平台如何创建一个卷组(VG)呢?下面简单介绍一下卷组(VG)的创建步骤.本文实验平台为Red Hat Enterprise Linux Server release 6.6 (Santia ...

随机推荐

  1. 04:第一个OC类

    1.类与对象的关系 面向对象的核心就是对象,那怎么创建对象? OC中创建对象比较复杂, 首先要理解一个概念叫做类. 现实生活中是根据一份描述,一份模板创建对象,编程语言也一样,也必须先有一份描述,在这 ...

  2. Qt程序关于路径、用户目录路径、临时文件夹位置获取方法

    比如我们有一个程序在: C:/Qt/examples/tools/regexp/regexp.exe 1. 程序所在目录 QString QCoreApplication::applicationDi ...

  3. python处理excel之读:xlrd模块

    # -*- coding:utf-8 -*- import xlrd path = r'D:/工作簿1(已自动还原).xlsx' # 打开excel文件读取数据 data = xlrd.open_wo ...

  4. 2018/6/29 关于hashmap的总结

    hashMap和ConcurrentHashMap的区别 hashMap内部具体如何实现的 如果hashMap的key是一个自定义的类,怎么办 为什么重写equals还要重写hashcode 一.什么 ...

  5. I - Dividing Stones

    Description There are N stones, which can be divided into some piles arbitrarily. Let the value of e ...

  6. Maven 集成Tomcat7插件

    Maven已经是Java的项目管理标配,如何在JavaEE开发使用Maven调用Web应用,是很多同学关心的问题.本文将介绍,Maven如何介绍Tomcat插件. Maven Tomcat插件现在主要 ...

  7. gunicorn运行显示connection in use解决办法

    运行gunicorn后显示如下错误: root@iZ2ze2gihbn4ot85zlcdxdZ:~/myproject# gunicorn -w 4 -b 0.0.0.0:5000 myapp:app ...

  8. Linux系统Bash的常用功能(9)

    了解了基本的Linux文件文件系统的概念后,我们将更深入的了解一下Linux的其他方面的内容,那就是我们所使用的用户接口,也就是大家常听到的 『Shell』 ,『这个shell并不是黑客反弹的shel ...

  9. jzoj3084

    發現題目函數本質是: 1.將某一數x的末尾1去掉 2.不斷將這個數/2,直到遇到新的1 我們發現一個數z可以用y步到達數x,記x二進制長度為c,分2種情況討論: 1.x是奇數,則z的前c個二進制數必須 ...

  10. mysql查询语句分析 explain/desc用法

    explain或desc显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. explain 数据表 或 desc 数据表 显示数据表各字段含义 ...