DFT测试-OCC电路介绍
https://www.jianshu.com/p/f7a2bcaefb2e
SCAN技术,也就是ATPG技术-- 测试std-logic, 主要实现工具是:
产生ATPG使用Mentor的 TestKompress和synopsys TetraMAX;
插入scan chain主要使用synopsys 的DFT compiler。
通常,我们所说的DCSCAN就是normal scan test 即慢速测试,测试频率是10M-30M
AC SCAN 也就是at-speed scan 即实速测试,测试频率与芯片真实工作频率是一样的。
70年代到1995年这段时间里,由于芯片的工作频率很低只有20-100M,scan测试只有DC SCAN,我们就能捕捉到所有std-logic的制造缺陷。但是1995年以后,测试科学家和工程师发现通过DC SCAN测试没有缺陷的芯片在高工作频率下使用会有问题。其根本原因是随着制造工艺向深亚微米迈进,芯片的工作频率也提高到200M-1G,原来的SCAN测试方法和模型不再能捕捉到所有的std-logic的制造缺陷。大家的一致想法就是-“奔跑吧,SCAN” ,把SCAN的频率增加到与芯片的真实工作频率一致,同时使用新的Transition atpg model来产生测试pattern.
下面我们介绍DC SCAN与AC SCAN的异同

现在的工业量产的高速芯片都会要求能做DC SCAN测试和AC SCAN测试,所以DFT工程师也要同时插入两种测试电路,产生两套测试patterns。
具体实现流程如下
1 读入没有插入scan的网表
2 使用Design compiler 插入scan chain和OCC (on chipclocking)模块,同时插入mux, fix DRC
3 使用Testcompress 实现EDT压缩scan chain
4 使用Testcompress 产生测试DC/ACpattern,同时产生测试验证的Testbench
5 验证DC/AC patterns的正确性和电路的正确性
6 使用SDF,验证DC/ACpatterns相关电路的时序是否满足要求
7 使用DC/AC patterns (wgl文件)转换成ATE所需格式,在ATE上调试和使用
所以,OCC电路实现了在shift阶段和capture阶段对时钟(PLL/ATE)进行选择的功能。有两种方式可以插入OCC电路:
1. DFT Compiler自动插入。2. 手动编写OCC 的verilog 电路,在dft_insert阶段。
ATPG工具使用的Transition faultmodel如下图

OCC :On Chip Clock
OPCG :On-Product Clock Gating
SCM:scan clock mux
上面三种是同一东西的不同叫法,就是为了at-speed ATPG测试时在function clock和shift clock之间切换的控制逻辑。不同人设计的电路不一样,它就是一个2选一的clock mux,设计时注意处理一下cdc的path,不要产生glitch就行了。
何为全速测试(at speed test):在工艺节点在130nm以下的时候,很多情形下的物理缺陷都是由于延时来引起的。因此在对这种类型的chip做dft的时候,需要建立一个新的故障模型,业内称之为延时故障模型(time delay model)。解决的方法就是全速测试,所谓的全速测试就是让芯片工作在自己高倍时钟频率上,这个频率往往是要高过ATE的时钟的。这样对扫描模型的建立就提出了新的要求。即至少要保证芯片的latch clock和capture clock为芯片内部的高倍时钟。synopsys对此种问题的解决方法就是OCC(on chip clocking)。OCC/OPCG的基本原理是在 scan shift 模式下, 选通慢速的ATE 时钟,load 或 unload 扫描链; 在 capture 模式下,对 free-running PLL clock 过滤筛选出 lauch 和 capture clock 进行at-speed 测试
常用的OCC电路结构如下

在做SCAN的时候,由于ATE时钟速度和芯片port的传输速度的限制,导致ATE无法向片传输高速时钟。但是,芯片内部需要 进行At Speed 测试的时候,用到和system mode一致的时钟频率进行测试。此时,需要由芯片内部自己产生测试时钟。在capture的时候,对于内部寄存器来说,到达clock pin上的时钟波形如intclk 所示。Launche clock和capture clock为PLL产生的脉冲。Shift clock为ATE产生的时钟。PLL时钟和ATE时钟的切换电路是由OCC (On-Chip Clocking) 电路实现的。
我们典型的插入OCC以后的电路如下图

DFT测试-OCC电路介绍的更多相关文章
- [原创]移动安全测试框架MobSF介绍
[原创]移动安全测试框架MobSF介绍 1 mobsf简介 Mobile Security Framework (移动安全框架) 是一款智能.集成型.一体化的开源移动应用(Android/iOS)自动 ...
- python nose测试框架全面介绍十---用例的跳过
又来写nose了,这次主要介绍nose中的用例跳过应用,之前也有介绍,见python nose测试框架全面介绍四,但介绍的不详细.下面详细解析下 nose自带的SkipTest 先看看nose自带的S ...
- python nose测试框架全面介绍七--日志相关
引: 之前使用nose框架时,一直使用--logging-config的log文件来生成日志,具体的log配置可见之前python nose测试框架全面介绍四. 但使用一段时间后,发出一个问题,生成的 ...
- python nose测试框架全面介绍六--框架函数别名
之前python nose测试框架全面介绍二中介绍了nose框架的基本构成,但在实际应该中我们也会到setup_function等一系列的名字,查看管网后,我们罗列下nose框架中函数的别名 1.pa ...
- python nose测试框架全面介绍五--attr介绍
之前写了一系列nose框架的,这篇介绍下attr tag 在nose框架中attr用来标识用例,使得在运行时可以通过标识来执行用例,之前在nose测试框架全面介绍四中有说明,但没有说明清楚,这里再总结 ...
- RS485总线典型电路介绍
一.RS485总线介绍: RS485总线是一种常见的串行总线标准,采用平衡发送与差分接收的方式,因此具有抑制共模干扰的能力.在一些要求通信距离为几十米到上千米的时候,RS485总线是一种应用最为广泛的 ...
- [原创]Android Monkey测试工具使用介绍
[原创]Android Monkey测试工具使用介绍 1 Android Monkey介绍 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件 ...
- 渗透测试平台Vulnreport介绍与使用
渗透测试平台Vulnreport介绍与使用 在这篇文章中,我们将跟大家讨论一些关于渗透测试方面的内容,并给大家介绍一款名叫Vulnreport的新型开源工具,而这款工具将能够让任何场景下的渗透测试 ...
- DC综合及仿真验证和DFT测试
综合技术是提高设计产能的一个很重要的技术,没有综合技术的发展就不可能用HDL实现电路的设计,因为HDL开始是用来供电路仿真建模使用的,到了后来才把其中一部分子集作为可综合的语言,也就是R ...
随机推荐
- 最小生成树算法总结(Kruskal,Prim)
今天复习最小生成树算法. 最小生成树指的是在一个图中选择n-1条边将所有n个顶点连起来,且n-1条边的权值之和最小.形象一点说就是找出一条路线遍历完所有点,不能形成回路且总路程最短. Kurskal算 ...
- 剑指offer-面试题57_2-和为s的连续正数序列-穷举法
/* 题目: 输入一个整数s,输出所有和为s的连续整数序列. */ /* 思路: 穷举法. */ #include<iostream> #include<cstring> #i ...
- linux服务基础之编译安装nginx
nginx源码下载地址: http://nginx.org/download/nginx-1.16.0.tar.gz //根据需要下载其他版本 1. 下载nginx # wget http://ngi ...
- 必看!macOS进阶不得不知的实用小技巧
不知道大家对使用苹果电脑的体验如何?您充分利用您的mac了吗?其实macOS上存在着许多快捷方式和技巧可以帮助简化我们的工作流程,提高效率,但是在日常生活中经常被人们忽略或者遗忘.以下是macdown ...
- layui radio手动选择失效的问题
var radio_types = document.getElementsByName("radio_type"); for (var i = 0; i < radio_t ...
- [CF1303E] Erase Subsequences - dp
Solution 不由分说地枚举分割点 令 \(f[i][j]\) 表示原串处理到 \(i\) ,\(s_1\) 处理到 \(j\),\(s_2\) 最多能处理到哪里 采用主动转移 任意情况, \(f ...
- 点击按钮出现60秒倒计时,JS(按钮)
<script type="text/javascript"> var countdown=60; function settime(val) { var e = $( ...
- CR(Code Review)代码评审如何发挥作用
在CODE中经常会发起代码评审和进行评审任务,可是根据目前的做法流程,我认为它就是走走形式,为了应付检查,根本没有达到预期的效果,即审查代码质量.学习他人写的代码和提高自身写代码的能力.对此,将从两方 ...
- [Python]BeautifulSoup标签的遍历
1.下行遍历 标签树的下行遍历.content 子节点列表,将tag所有儿子节点存入列表.children 子节点的迭代类型,与.contents类似用于循环遍历儿子节点.descendants 子孙 ...
- POJ 2096 Collecting Bugs (概率DP,求期望)
Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other material stu ...