了解在向量仿真时出现mismatch的原因;
了解parallel和serial pattern的特点
识别shift和capture的issue
识别仿真设置和建模的问题对仿真结果的影响
ATPG 工具在生成pattern的时候 使用的是没有时序信息的模型;
使用testbench对向量进行仿真的目的是验证ATPG的期望值是否和仿真器的仿真值相同;
这种mismatch必须在pattern用于测试之前解决掉;
并不是来自top level的所有功能模型都是需要的;
ATPG目的的模型抽取,会使得测试向量的生成变得容易.
ATPG模型和仿真模型的区别如下:

仿真模型除了有inverter的功能描述之外,还存在时序信息;
XXX-[X] 最后一位为capture到的稳定值或者 unload 的值;如果设置了multi-cycle path 或者做了ATPG的constrains [X]为期望值不一定是这个单元capture的值.

工具能够生成两种类型的verilog testbenches;
write_pattern -verilog -parallel
write_pattern -verilog -serial
使用parameter file控制和报告参数能帮助debug mismatches
write_pattern -Parameter_file / -Parameter_list
#这些参数可以:
#创建指定的debug waveform
#修改 parallel testbench的delay
#在parallel testbench中应用串行shift
#记录mismatch的信息等
parallel:
强制所有的scan flops从scan input pin 并行输入;
所以仅有单个并行shift cycle
可以大大减少仿真时间和debug的难度;
仅能发现 capture cycle的mismatch

serial:
数据是有扫描链的scan input端串行输入到 scan cell之中(和实际的测试条件一致);
shift cycle 的长度取决于最长的扫描链,且 EDT逻辑的load cycle 也会延长仿真时间.
只有被观测的扫描输出引脚可以被报告;
仿真时间也会很长,特别是在做后仿的时候;
能发现存在于 shift cycle和capture cycle的问题;


所以为了发现和debug simulation mismatches;建议首先进行parallel testbench的仿真 detect parallel shift的问题和capture的问题;
其次使用 parallel with N shift 去detect serial shift和parallel shift的问题 以及capture的问题;
再次使用 bypass EDT的serial testbench去detect serial shift的问题以及capture的问题;使用EDT 的serial testbench去附加detect EDT裸机的问题;

这个参数会向waveform中添加一些关于test pattern的信息;如 pattern number 和cycle number等

跑testbench ,simulation mismatch会像如下报告:

#设置pattern的类型
set_context pattern -scan
#读取扁平设计
read_flat_model
#读取pattern数据
read_patterns
#加parameter,将pattern的ID
set_get_report pattern -external
#报告
report_scan_cells -display hierarchical_schematic
定位是哪个pattern 哪个register,可以使用Tessent visualizer和波形去追溯;
确定造成问题的原因: 60%的问题是由timing不满足造成,35%由CCD/NCP 和internal pins造成(内部时钟,不正确的时钟,内部pin不正确的value定义),2%由DRC(C6,T24,D1,K)造成,2%由工具不正确的setting造成;1%由初始化设计方案有关;
时序上的问题分下面几个方面:
CCD(clock control definition)
NCP(named clock procedure)
问题分以下几个方面:
对于一些mismatch, 逻辑中确有这种情况,或者ATPG存在overtest的情况; 知道原因不可解决,可以通过添加Pattern Mask的方法进行解决;
#通过 re-simulation的放置创建mask pattern;
#那些需要约束为观测X 或者OX的可以通过re-simulation的方式解决;
set_system_mode analysis
read_patterns pat_ascii.gz
add_cell_constraints chain1 7 OX
add_flaults -all
simulate_patterns -source external -store_patterns all
report_statistics
write_patterns <>

