TesntscanATPG(6)测试向量配置,at-speedpattern的⽣成以及。。。Test pattern management 测试向量管理
⽣成最佳的pattern
#使⽤
create_patterns
#时会默认将所有的fault 类型加⼊到consider中;执⾏⼤量的设计分析和DRC;
#创建所有必要的pattern 类型
#监控pattern的⽣成(包括实时的coverage pattern count 以及执⾏时间等) 如果必要会修改参数
#如果必要⾃动运⾏top_up的⽅式
##使⽤
report_patterns
#报告当前⽣成pattern的信息; 你可以展⽰所有pattern的信息或者使⽤
-pattern_index
#选择单个的pattern去报告
#如果你使⽤
t_pattern_filtering
#创建了⼀个临时的subt
#那么此时report的pattern只是集合中的pattern;
##使⽤
宫缩是什么原因引起的
素炒西葫芦的家常做法report_scan_cells
#去查看设计中scan_cell的信息
report_scan_cell中的memory_type分类
memory_type 是指memory element的分类包括: MASTER;SHADOW;COPY:LOCKUP;如图所⽰:
黑辣椒MASTER: 是指scan chain上的 ⽤户hold shift过来的value的memory element;
SHADOW: (直接接在MASTER cell 后边 中间没有逻辑 COPY cell也⼀样)是指那些跟随 MASTER cell变化⽽变化的memory element;并且 SHADOW的输出并不是scan path 的⼀部分;
COPY: 和SHADOW⼀样是继承上⼀级MASTER的值(copy上⼀级的值)但是其输出为scan path的⼀部分;
LOCKUP:是指那些为了预防"shoot through(击穿??)"保持半个周期值memory element;⼀般是latch; 其输出也是scan path 的part(⽐如两个clock domain,中间有latency的问题 影响hold time 可能会插这种cell)
databa的pattern进⾏reu 和debugging
⼯具可以将pattern数据保存为不同的格式 主要分三⼤类: databa; verilog; WGL STil ; 其中 databa的⼜分为 Asicii,binary ,PATDB;三种都是可以会读到⼯具中去做reu 和debugging; verilog格式的pattern 是去做 Time-bad verification的;Wgl 和STil是左后要放在ATE上做测试和分析的;
当然你可以指定将⽂件直接压缩为.gz或者.z;
pattern⽂件可以回读(read_back)到Tesnt⼯具中, ⽅便我们去⽣成Top-off 的pattern;去debugging仿真的mismatching;去做其他格式的转换;去做tesnt的诊断等;
我们也经常将flat model⼀同保存下来;
write_flat_model <filename>
#利于配合前⾯的pattern 做回读;
Ascii 是默认的pattern格式,有着完整的可读性和可运⾏指令性;包含测试的coverage的统计,test procedures 包括timeplate;每个pattern shift的pattern data(激励); 每个pattern的预期结果;以及scan memory elements;
Binary 和ASCII 包含的信息⼀样 但是以⼀种压缩的格式 对于⾮常⼤的设计采⽤;
PATDB, 建议⽤在 core-level的pattern上⽤于 hierarchical ATPG的时候 将pattern 重定向到top-level;
#使⽤
read_patterns <pattern_filename>
#来回读pattern
#如果要做 top-off 的pattern
#需要使⽤
特岗教师报名simulate_patterns -store_patterns all
#将数据库中的pattern转化成⼯具的internal format
基于时序的验证:testbench 的创建;
pattern 其实还分 chain test pattern和scan test pattern??
scan chain还要分两半 就离谱??
pattern 也分 parallel 和 rial ;
Time-bad verification ;
AT-speed patterns & On-Chip clock controllers(OCC)
了解 如何⽣成at_speed 的pattern;⼆就是在ATPG阶段使⽤内部OCC的选项去定义内部时钟的控制;
review
at-speed fault主要包括: Transition 和 path delay 两种;
Transition的fault location在 每个instance 的pin /port上;⽽path delay 考虑的是整条path的 slow-to-ri/fall的累积;
transition fault的观测
默认 ⼯具会为每⼀个可能的观测点 设置⼀个期望值;作为fanout tree⼀部分的所有scan cell都会被附上期望值 capture的时候⽤;path的选择是随机的,但是如果存在不可预测的长的路径 可能就会在造成pattern验证时的mismatch 或者在ATE上的失败;
可以通过设计fal path的⽅式 去限制⼯具可⽤的观测点;
#指定fal path的⽅式有两种:
#1. 在SDC中添加约束
t_fal_paths -from -to -through
好看的香港电影#2. 直接在ATPG⼯具中
add_fal_path
# 例如要将途中的P2定义为fal path ,可以将U6 mask掉然后U5声明⼀个期望值;
multicycle path
信号的传播延迟多于⼀个时钟周期的path;时钟周期可以被定义为 launch clock 以及capture clock; multicycle path的定义⼀般在 SDC 中;
对于 multicycle path 上fault的detect ,是基于SDC中定义的时钟周期数的;(在PT输出SDC⽂件时 需要加上 transform_exception before write_sdc)
path delay fault
path delay的fault是针对 静态时序分析出来的 critical path 来说的, 是A到B上element 的transition 的累积,会有指定的launch 和obrvation点;
会有path definition files(为ASCII⽂件); 将path load 进去; 然后⼯具会看path 是否可以⾛通;
t_fault_type path_delay -mask_noobrvation_points
read_fault_sites
at_speed pattern的⽣成
at_speed 的pattern需要去产⽣⼀个transition (1->0/0->1 的transition) 使⽤的⽅法:
broadside/launch-off-capture method或者 launch-off-shift method
自动洗衣机使用方法默认优先产⽣boardside pattern; 当没有解决⽅案时,才会长⽣launch-off-shift的pattern;(当然⽤户可以指定⼯具产⽣何种类型的pattern)
两种⽅法都需要CCD(clock control definition)去配置 at-speed pattern的 launch 和capture;
Broadside
clock quential pattern
1. 在最后⼀次shift之后,当clock pul来临,transition随即发⽣;第⼀个时钟沿 launch the transition;第⼆个时钟沿 capture;
2. 在capture 阶段(clock quential cycle)是由两个快速的时钟沿在的,如图是检测点是否有slow to fall的fault ; 如果存在fault, 快速
时钟沿检测的是原来的1 ⽽不是更新后的0;
3. 可选择性的加⼊ Dead cycle 等待⾜够长的时间 scan_en 拉低喜爱的英文
broadside 的好处就是:
4. scan enable并不在时序路径⾥⾯
5. ⽀持多级的non-scan luoji
6. memories pin上的时序的fault也是可以被测试的;成都春熙路有什么好玩的
7. ⽀持 fal path和multicycle path的标记
缺点就是: 在pattern⽣成的时候会⽐较复杂;
launch-off-shift
顾名思义,就是将transition的launch 作为最后⼀次shift;在capture 阶段直接capture transition;
所以broadside 和launch-off-shift 的区别就在于,broadside pattern transition的产⽣在capture阶段 也就是transition是上级电路运算来的,⽽launch-off-side pattern中transition是直接shift进去的;
缺点就是: scan_en ⽆法快速切换到0 时序要求太⾼(要对scan enable 的布线和时序上的平衡 使它的transition time 能够满⾜条件)
优点就是 ⽣成pattern会更容易⼀些,能够跨 fal path 进⾏测试;
创建单个 test_pattern ⽂件