信号 – Modelsim和GHDL不能将vhdl用户定义的信号类型转储到vcd中?

我试图通过modelsim或ghdl执行的模拟转储内部信号.一切正常使用:

对于modelsim,添加vhdl源代码,然后编译所有:

vsim -novopt work.uut_testbench
vcd file ../uut.vcd;
vcd limit 50000000;
vcd add -r /uut_testbench/uut_core/*;
run 6000
quit -sim

对于GHDL

ghdl -i --ieee=synopsys --warn-no-vital-generic --workdir=work --work=work ./uut*.vhd 
ghdl -m --ieee=synopsys --warn-no-vital-generic --workdir=work --work=work uut_testbench
./uut_testbench --stop-time=6000ns --vcd=../uut.vcd

我可以看到模拟信号,但不是全部.信号定义为

Type InternalState is (Idle,Valid,Stalled);
Signal sState,sPrevState :InternalState;

从vcd中省略.这种行为对modelsim和ghdl很常见.

我可以在ghdl生成的vcd上看到以下行

$comment sstate is not handled $end

Modelsim只是静静地省略了这些信号

有解决方法吗?另类?

最佳答案 试试Tony Bybell的gtkwave,你可以在其中指定值的枚举替换(快速启动,别名文件和附加外部反汇编程序下的gtkwave手册). Gtkwave还兼容ghdl的原生波形格式(ghw).请参阅
Gtkwave on SourceForge,该手册有一个链接,您可以链接到W32和Mac应用程序的下载二进制文件.它也应该可以通过任何Linux发行版获得.

点赞