1. verdi 加强了active anotation, active trace和trace this value的能力,并且引入了Temperal flow view。在trace X的时侯面对很多选项,推举的快速定位的方法是:
1) 找出来自于信号源的明显的错误,譬如(uninitialize,setup, hold time voilation, no drivers)
•Stop at black box output signal (ON)
• Stop at fanin that is X but no transition in its last cycle (OFF)
• Snap to value change and continue (ON) -----------找出第一个X
// 尽量放开了跑,遇到黑盒子才停止。
2) 准确找出active X源
• Stop at black box output signal (ON)
• Stop at fanin that is X but no transition in its last cycle (ON) -----找出从此向前来源是固定的X(activeX)
• Snap to value change and continue (OFF)
3) 设置number of cause
• Use the default setting : Stop after finding 1 cause
• 如果遇到很多类似的cause,那么设为trace all causes
2. 当碰到ntrace和fsdb的hierarchy层次不一样时,不能联动。解决方案 set virtual top
vritual top/map file: CPU = system.i_cpu
3. 在VMM中引入fsdbLog
4. 波形比较找出mismatch point, 然后在定位发生mismatch的原因
如果是相同的design view, Waveform comparison -> behavior trace for fsdb mismatch
---》 适合RTL和RTL的比较,定位引起错误的源头
如果是不同的design view, Waveform comparison -> Trace this value in flow view for different design
5. 利用siloti减少波形记录文件大小,进而加快仿真速度
步骤如下:
1. 生成主要信号的列表文件
esa -bas tb_CPUsystem -f run.f -all_eslist fullchip.list
// -bas 指明了work scope,即一旦design 加载就立刻进行behavior analyse的范围
// -all_eslist 指明了生成 hierachy 和 plain list 两种形式的信号列表文件
2. dump 主要信号的波形
• $fsdbDumpfile("ess.fsdb");
• $fsdbDumpvarsToFile("fullchip.list");
3. 启动verdi,在必要时打开visibility的相关选项
Tools -> Visibility -> Data Expansion -> Enable Data Expansion
6. ntrace 可以吃进prime time 的STA report 文件并自动将其转为XML文件,用以形象的debug timing的关键路径为何出现问题
File -> Import Path Data File -> Select the violate_path.rpt
• Show this path on nSchema
• Show this path on File Viewer
• D&D the 42.860 delay from File Viewer into nSchema
• Debug the reason of this huge delay on schematic window
• Tools-> New Schematic ->Connectivity
7. 当gate level和rtl level 的波形不一致时可以采用“trace triggering path,based on transition,来找到由于时序问题产生错误的根源”
steps:
1. compare rtl and gate simulation mismatch,以gate wave form 为主导
2. 在产生变化的地方(transition发生处),产生TFV
3. trace triggering path 并设为stop at Register Boundary
4. 找到源头后,ctrl+K把clock放入waveform中加以分析。
8. 如何dump assertion的波形
verdi的assertion evaluation组件还能自动推算出修改或新增的assertion的行为,主要是在property tools界面下启动evaluator,然后修改store to all。就能自动推算出新的assertion,并生成新的波形文件。
9. Import SVTB with VMM library
1) 用户用自己的VMM library
verdi –sv –f run.f +incdir+your_vcs_vmm_library_path
2) 用户没有VMM library
verdi –sv –f run.f -ntb_opts vmm
10. Import SVTB with OVM library
1.) 在源代码中加入 `include "ovm.svh"
2.) verdi -sv -f run.f +incdir+${IUS81_HOME}/tools/ovm/src +define+INCA -ignorekwd_config
11. 现在很多verilog 的filelist 文件中用如下形式来指定文件所在的目录就行了,而不必指定具体文件
上面通过-y 指定library目录, +libext+.v指定library后缀名。 有时候还用-v 来指定library文件。但是这样直接被verdi吃进去以后不能显示hierarchy和文件。verdi提供了解决的办法: -ssy (用来取消-y指定的library为library cell) -ssv (用来取消-v 指定的library为library cell)
12. 新的fsdb dumper 的应用
Verdi 從2010.04之後提供全新架構的FSDB PLI。新的FSDB PLI針對System Verilog有更完整的support,有比較好的performance。另外也支援同時dump不同的fsdb檔案。
現在已經可以在new dumper上,以parallel dumping的方式來加快dump fsdb的速度。使用方法就是在執行simulation的指令上,加上+fsdb+parallel的參數。例如:
For VCS==> simv <+original_options> +fsdb+parallel
For IUS==> irun <+original_options> +fsdb+parallel
什麼是「-debug_pp」?
1. VCS的debug options有三個levels:-debug_all、-debug、-debug_pp。
2. -debug_pp是三種level當中,performance最好的。
3. -debug_pp是+memcbk, +vcsd, +vpi, -ucli 這些options的集合。