[Tool] Verdi 用法(dump waveform)

匿名 (未验证) 提交于 2019-12-02 23:05:13

1.1 Basic Usage(add in top module)

  • $fsdbDumpfile(file_name,file_size(MB))
  • $fsdbDumpvars(depth, instance, options)
Options Description
+all Dump all signals including memory, MDA, packed array, structure, union, power-related, and packed structure
+mda Dump all memory and MDA signals
+strength Enable strength dumping
+struct Dump all structs (default on)
+power Dump power-related signals (default on)
others check on verdi -doc //$VERDI_HOME/doc/linking_dumping.pdf
  • -debug_pp is needed
 $fsdbDumpfile("test.fsdb",50) $fsdbDumpvars(0, chip_top,"+power","+struct", "+mda");

1.2 Q: How to split fsdb file?

  • Split by FSDB Size
    • $fsdbAutoSwitchDumpfile(File_size(MB), File_name, number_of_file)
    • Recommend File Size: RTL not over 2G, netlist not over 5G:
 initial begin     $fsdbDumpvars(0, dut);     $fsdbAutoSwitchDumpfile(2000, XXX, 20); en
  • Split by Time Period
 integer i; initial begin     $fsdbDumpvars(0, dut);     i=0;     forever begin         $fsdbSwitchDumpfile($sformatf("XXX_%0d", i));         #time period;         i = i+1;     end end

1.3 Q: How to dump a certain time interval only?

  • Use $fsdbDumpon, $fsdbDumpoff to specify time interval
 initial begin     $fsdbDumpvars(0, dut, "+fsdbfile+interval.fsdb");     #40 $fsdbDumpoff;     #40 $fsdbDumpon;     #40 $fsdbDumpoff;     #40 $finish; end

1.4 Q: How to not dump a certain instance?

  • Use $fsdbSupress(instance) to specify certain instance
 initial begin     $fsdbSuppress(dut.inst_a, dut.inst_b);     $fsdbDumpvars(0, dut); end

  • Use $fsdbDumpSVA(depth, instance)
  • -sverilog -debug_pp is needed
  • NOTE: After Verdi 1703SP1-1, please add runtime option "+fsdb+sva_success"
 initial begin     $fsdbDumpSVA(0, dut); end
  

  • Use $fsdbDumpMDA(depth, instance)
  • -debug_pp, +memcbk
 initial begin     $fsdbDumpMDA(1, dut.i_pram); end 

  • -debug_acc -debug_region=cell+lib is needed
 Example: vcs -debug_acc -debug_region=cell+lib <other options>

1.8 Q: How to dump glitch information?

  • By simulation command
    • Before Verdi/1509, simv +fsdb+sequential +fsdb+glitch=0 +fsdb+region
    • After Verdi/1509, simv +fsdb+delta
 %> simv +fsdb+sequential +fsdb+glitch=0 +fsdb+region 
  • By Environment variable
 %> setenv NOVAS_FSDB_ENV_DUMP_SEQ_NUM 1 %> setenv NOVAS_FSDB_ENV_MAX_GLITCH_NUM 0 %> setenv FSDB_REGION then re-run simulation 

1.9 Q: How to dump force information?

  • By simulation command
    • simv +fsdb+force
 %> simv +fsdb+force 
  • By Environment variable
 %> setenv FSDB_FORCE then re-run simulation
文章来源: https://blog.csdn.net/lbt_dvshare/article/details/86604379
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!