ATPG Practice ATPG Practice II
文章目录
- General ATPG Flow
- ATPG DRC
- example clock to data
- ATPG setting
- delay test的两种方法
- single capture
- double capture
- Coverage Analysis
- Fault class
- coverage how to caculate
- report faults
- Coverage Analysis
本博文是博主记录DFT实训教程的笔记版本,此笔记并没有对所有的知识进行记录,仅仅以自身的认知水平,来记录了一些部分笔记并加上了自己的理解.
General ATPG Flow
ATPG DRC
scan chain tracing
第一步ATPG就是要去判断scan chain 的tracing,判断这个chain在shift过程中是否通畅。
如果发现不通,会报告S级别的violation。
只有chain能够正常工作了,后续的工作才有意义。这里的scanchain tracing主要是指的是shift里面能否正常的work。Clock rule checking
1、capture clock
2、clock to D
在scan chain 通顺了之后,ATPG就需要去考量converage能否达标。
除了shift阶段需要打通以外,要注意capture阶段也需要正确的抓到值。所以,这里的clock rule check指的是capture阶段,cell能不能正确的值锁存下来。另外check clock对converage的影响,其中具有代表性的是clock to D的Design rule。比如C1,C2等Data rule checking
另外还有Data的check,当shift完成了之后,相当于PPI此时已经赋值好了,接下来再capture的过程,这个时候,我们有一个scan enable拉低,稍后拉高的一段过程,在这样的过程的切换里面,有可能破环掉scan chain里面存储的值。data rule check指的是在shiftin完成之后,以及shiftout开始之前,这些cell能不能保持值,是否可能会被破坏掉,比如D1 D2等violation。
不同等级的violation,error级别的必须要fix,产生出来的parttern是不work的。warning级别的可能会导致converage降低。
Bus contention
某一个点能够被多个driver来驱动,有多个驱动源。可能产生短路情况。compress/power aware rules
ATPG在产生parttern时候大概会有以上几个check
example clock to data
如下图所示,如果是下面这种设计,clk不仅仅连接到了clk而且连接到了data端口,这种电路结构也称之为clock as data,此时在D端口的PPO就是不确定的,可能为0,可能为1。ATPG就会把设置为X,从而前面的组合逻辑的fault就无法测试到。但如果D端口的值不受CLK的变化影响,还是能测到部分fault的。
ATPG setting
- Fault model
- Fault list
- Specify capture procedure for delay testing
- ATPG constraints
- ATPG limitation(pattern/converage/abort)
1、Fault model需要给工具指定根据怎样的fault model来产生parttern
2、Fault list 在某些场景下,我只想看看一个点上的fault,或者我只想看看这个micro的fault converage, 或者说我不想ATPG cover ram\anologo方面的。所以我使用no add fault,告诉工具ATPG不要把这些计算到converage里面。
3、Specify catpture procedure for delay testing
DC指的是SAF测试,AC指的是AT Speed测试
4、ATPG constraints 由于我们的IO上面有一些test相关的IO,比方说这个design要保持在test模式下面等一些port,(TE),如果你没有告诉工具这个port始终为1的话,工具可能会对其赋值0导致错误。
5、ATPG limitation(pattern/converage/abort)
比如能否先约束工具,只产生100条pattern,然后给我,然后你继续产生。
针对converage,产生95%就可以啦
abort,在推断某一条pattern的过程中,可以告诉工具,比如尝试推断pattern 20次就不推断了。
delay test的两种方法
single capture
该方法利用最后一个shift来产生transition从而测量delay test
也就是说利用最后一个shift来产生transition。
好处是利用shift就能产生transiton,实现赋值。赋值上非常容易。而对于double capture来说,如果要实现transition的话,需要PPO前面的logic的推导,难度更大。
但是single capture却很少使用,因为要实现在最后一个shift后,希望se立即拉低打出clk,非常困难。换句话说,se很难在一个高频的clk时间范围内拉低。
我们知道一个芯片只有一个scan enable,这个scan enable要传到所有的scan FF上面去,fanout非常大,所以scan enable需要的时间来稳定。但是single capture由于可以很好的推出transition的值,所以converage会更高。而double capture由于前面logic的限制可能推不出transition的值。
double capture
Coverage Analysis
Fault class
工具会对Fault进行分类,以及report出来的细节可以帮助我们更好地分析converage低的原因
1、UT(UU/TI/BL/RE)
2、TE(DT/PD/AU/UD)
1、是指UT:untestable 由于电路的设计结构无法推出parttern
UU: unused 没有用的一类design,比如一些点处于float状态。
TI: Tie cell、Tie 0、Tie 1 ,在做physical的时候,会把这些1’b1、1‘b0转换为tie 1 cell或者tie 0 cell,因此对于这种cell,你只能检测他是否被sta到了相反值,比如tie1 cell你不能检测他是否被tie1了。
BL:代表block,意思是被block住了,比如一个与门,一端为0,另一端就没办法检测。
RE:redundant冗余逻辑,代表我们有某些原因,design里面有一部分冗余的逻辑,这些path永远不会有数据的传递,所以也不会去考虑。
2、是指TE:testable
DT:确定能cover的这些fault
PT:potential testable也就是潜在的可能被detect的fault
AU:ATPG untestable就是ATPG里面没有办法推出pattern,但是无法证明这个fault不能untestable。(可能由ATPG constrant导致)
UD:undetect 待具体查询手册
coverage how to caculate
coverage分为了两大类:
Fault coverage and test coverage
F.C=(DT+PD因子)/full
T.C=(DT+PD因子)/testable
注意的是第二个公式相当于Full减掉哪些untest的点。
report faults
根据报告来提高coverage
Coverage Analysis
根据项目经验来看,大概有以下几类原因导致了coverage过低:
1、full scan or not
确定所有的scanFF都要串接到chain上
2、ATPG constranints
AU的fault是否较多
3、ATPG limitation
combination logic非常深,影响ATPG的效果,
4、Special design
1、test point
增加test point就是增加control point 和obseve point,也就是增加和PPI和PPO
ATPG pattern validation
- chain pattern simulation
- scan pattern simulation
- serial simulation VS parallel simulation
- back annotation with SDF
在parallel simulation中,通过一个pulse clk的动作就能把值并行锁存到scancell中,完成shift这个过程,然后再进行capture动作,此时也不需要进行shift out,直接在scan cell内部中观察PPO的值。
带SDF是非常耗时的
脚本实验部分由于采取的mentor ,现在还用不上截止93分 ATPG practice II
ATPG Practice ATPG Practice II相关推荐
- Tessent scan ATPG(2) ATPG basic flow
ATPG 的基本步骤 DFT lib 一般vendor会提供 也可使用 tessent 的libcomp工具 将simulation lib转化为 DFT lib 什么是 simulation lib ...
- PAT (Advanced Level) Practice 题解代码 - II (1051-1100)
PAT PAT (Advanced Level) Practice - II(1051-1100) -------------------------------------------------- ...
- stata:应用stata学习计量经济学原理 practice 2 stata绘图基础
应用stata学习计量经济学原理 Practice 2 Practice 2 * Q1 clear all * 1 sysuse uslifeexp.dta * 2 scatter le year s ...
- stata:应用stata学习计量经济学原理 practice 6 边际效用 Marginal effect
应用stata学习计量经济学原理 Practice 6 边际效用 边际效用参考资料 课堂代码 Practice 6 Practice 6 边际效用 边际效用参考资料 Stata:边际效应分析\交乘项的 ...
- practice是什么意思_practice是什么意思_practice在线翻译_读音_用法_例句_含义-查字典网...
1 . 实践 就同样通过"话语"作为媒介的个体行为对规则.结构发挥的影响这后一个方面而言,行为所具有的"实践"性质非常重要."实践"(pra ...
- Mentor-dft 学习笔记 day27-Timing-Aware ATPG vs. Transition ATPG
Timing-Aware ATPG vs. Transition ATPG 以下是starc03的testcase来评估timing-aware ATPG,为了对比transition fault A ...
- Do Lots of Deliberate Practice 22
Do Lots of Deliberate Practice Deliberate practice is not simply performing a task. If you ask yours ...
- 我的数字IC学习路线
引言 很多朋友和我一样也是从FPGA转行入到数字IC,所以对数字IC很多知识也不是很清楚,我也一样不清楚,我想把我的数字IC学习路线记录在此, 全网也没有博客能如此详细的汇总这条路线并且分享出来,本博 ...
- 机器学习 深度学习 ai_如何学习机器学习和人工智能?
机器学习 深度学习 ai STRATEGY 战略 Learn theory + practical aspects. 学习理论和实践方面的知识. (At first get an overview o ...
最新文章
- 红旗linux可以做服务器吗,在红旗Linux中的E-MAIL服务器(postfix及dovecot)配置过程...
- 《Unity开发实战》——2.2节创建画中画效果
- 一篇文章让你彻底了解什么叫Netty!大牛看了直呼内行!
- 【C/C++】内存分配函数:malloc,calloc,realloc,_alloca
- 2017蓝桥杯省赛---java---B---8(包子凑数)
- 分号不是个“随便的人”
- 云在天之南——我的七天七夜(率性苍山洱海)
- 数据结构之二叉树的定义和性质
- Web Hacking 101 中文版 八、跨站请求伪造
- Mondrian xml服务mysql_mondrian与java工程的集成
- IBM TPM2.0 模拟器
- [K/3Cloud] 调用其他界面时通过Session传递对象参数
- 各种格式PPC手机软件的安装方法
- 永洪BI-通过传输参数控制页面显示多少数据量
- 学C++就学服务端,先把apue和unp两卷看了,接着libevent,出来找工作应该没问题
- 【ABAP】销售订单修改税率
- 伪随机生成器具体实现——杂乱的方法
- 【深度学习】ResNet50
- 商务礼仪——尊重、适合、适合的尊重
- python代码画海绵宝宝步骤图解_简笔画教程 | 有一种回忆叫做海绵宝宝