文章目录
本篇文章介绍ug中的第八章Test Pattern Generation的Verify Test Pattern
为什么要做基于timing的仿真,意义在于可以比较ATPG工具和simulator工具的差异性。
因为时序的差异导致不同的结果。
Design Simulation with Timing
首先你需要通过write_patern 这句cmd来写出pattern,默认是parallel 模式,除非你用-serial 指定写出serial, 因为serial 文件非常大,所以你可以使用-sample 开关写出部分pattern即可,工具会根据每一种pattern 类型都会至少保存一只。
另外,你也可以使用-start -end 开关来减少文件大小,但是这样的截取,是不可靠的,没有-sample可靠,最终你还是要跑full pattern set。
如果simulator没有发生错误,那么会print 下面的message:
no error between simulated and excepted patterns
参数传递采用+
默认的verilog testbench 支持几个verilog 参数传递:
- STARTPAT 设定pattern number开始simulation的起始 pattern number
- ENDPAD 设定pattern number结束simulation的pattern num
- CHAINTEST 使STARTPAT以及ENDPAD 参数应用在chain test pattern上,而并非scan test 上。
- END_AFTER_SETUP 使仿真仅仅仿真test_setup阶段的向量,然后结束仿真。
- SKIP_SETUP 使testbench skip 跳过仿真test_setup向量,并且开始仿真第一支pattern,chain or scan test
- CONFIG 指定.cfg 文件,该文件控制着.vec波形文件。具体用法,请看CONFIG Usage
- NEWPATH tb文件的文件路径,默认文件名字的长度是512个字节。
参数传递的用法举例:
默认情况下,CHAINTEST=0,也就是说只会仿真scan test pattern ,除非你指定了CHAINTEST=1。
如果CHAINTEST=1 ,以及指定ENDPAT, 会从chaintest pattern 开始,但不会对scan test pattern进行simulation。
如果CHAINTEST =1 以及STARTAT ,同样会从指定的STARTPAT chain test pattern开始simul

本文详细介绍了在UG中进行TestPatternGeneration时,如何进行基于时序的仿真,包括并行与串行模式的使用、参数传递以及潜在的仿真不匹配原因。通过对比仿真数据与ATPG工具的结果,分析了可能出现的仿真差异,强调了检查scantest和chaintest的重要性。此外,还讨论了如何通过特定参数和信号进行调试,以解决时序问题和扫描链中的故障。

760

被折叠的 条评论
为什么被折叠?



