如何Dump波形文件并显示波形 常用的波形文件有如下三种, 1、trn文件,Cadence simvision支持,通过如下方式产生 $shm_open(“./wave”) ; //产生你所需要dump 波形的文件夹 $shm_probe(bench_top,”AS”); //bench_top为举例,即你所需要dump的层 $shm_close; 2、fsdb文件,debussy/verdi支持,通过如下方式产生 $fsdbDumpfile(“./wave/top.fsdb”); $fsdbDumpvars(5,bench_top); //从bench_top开始,dump 5层; $fsdbDumpoff; 3、vcd文件,该文件通用性更广,可以转换为任意格式,可惜文件太大,产生方式如下, $dumpfile(“./wave/top.vcd”); $dumpvars(5,bench_top); $dumpoff;
当然也可以同时产生,或者通过nc option指定, 譬如在option中增加+TRN_DUMP/+VCD_DUMP/+FSDB_DUMP等 在.v文件中去解析这样的strings
initial begin start_dump =10; stop_dump =3000000; finish_time=3000100;
#0; begin if($test$plusargs(“VCD_DUMP”)) $dumpfile(“./wave/top.vcd”); if($test$plusargs(“TRN_DUMP”)) $shm_open(“./wave”) ; if($test$plusargs(“FSDB_DUMP”)) $fsdbDumpfile(“./wave/top.fsdb”); end #(start_dump); begin if($test$plusargs(“VCD_DUMP”)) $dumpvars(5,bench_top); if($test$plusargs(“TRN_DUMP”)) $shm_probe(bench_top,”AS”); if($test$plusargs(“FSDB_DUMP”)) $fsdbDumpvars(5,bench_top); end #(stop_dump-start_dump); begin if($test$plusargs(“VCD_DUMP”)) $dumpoff; if($test$plusargs(“TRN_DUMP”)) $shm_close; if($test$plusargs(“FSDB_DUMP”)) $fsdbDumpoff; end #(finish_time-stop_dump); $stop; $finish; end
各种波形文件的打开方式 TRN simvision ./wave/wave.trn \ -input ../../signal_list/simvision.svcf FSDB debussy -f $FileList.f \ -autoalias -ssf ./wave/top.fsdb -top bench_top \ -sswr ../../signal_list/top.rc
VCD 该文件需要被转换为trn或fsdb文件,然后打开; 转fsdb文件: vfast ./wave/top.vcd -o ./wave/top.fsdb && \ debussy -f $FileList.f \ -autoalias -ssf ./wave/top.fsdb -top bench_top \ -sswr ../../signal_list/top.rc 转trn文件: simvisdbutil -CVTMVL9 -OVERWRITE -LOGFILE wolf.log -OUTPUT wave.trn top.vcd && \ simvision ./wave/wave.trn \ -input ../../signal_list/simvision.sv |