TetreMax生成ATPG Pattern后进行仿真,一般在后仿真的时候经常会因为timing violation等因素导致仿真fail,如果不加debug 定位option的话,在log中只能看到某某cycle mis-match的Error很难定位到时哪个chain reg出现的mis-match,特别是带压缩-解压缩后的scan chain仿真。
这就需要开启TetreMax仿真fail定位功能或者叫仿真fail debug Flow:Debugging Parallel Simulation Failures Using Combined Pattern Validation(CPV)
实际操作起来就三步动作:
1. 设置atpg option指定要atpg开debug 功能,并指明生成的debug信息文件
这样就会在ATPG生成Pattern的时候也同时生成pattern对应的追踪数据PSD文件
2. 在生成仿真testbench的时候开启testbench读取PSD文件并可以追踪仿真debug信息的内容:
这样在生成的testbench中就会有PSD相关的debug 任务,包括读取PSD文件、追踪仿真过程中结果与PSD值的对比和现实PSD追踪的定位结果。
3. PSD和testbench都生成好了,最后就是在VCS仿真的时候启动debug的option就可以了。这是个sim option,如果是compile和sim分开,则option加到sim;如果是compile和sim合在一步跑,则option加在vcs:
1)./simv +tmax_usf_debug_strobe_mode=0
2) vcs +tmax_usf_debug_strobe_mode=0
使用方法2,对仿真服务器运行内存消耗比较大,建议使用方法1,即compile和sim分开,在compile的时候不开启debug,这样compile的内存占用就比较小。
debug仿真log显示: