Tar*_*eeb 5 signals vhdl modelsim ghdl
我正在尝试从由 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
Run Code Online (Sandbox Code Playgroud)
对于 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
Run Code Online (Sandbox Code Playgroud)
我可以看到模拟信号,但不是全部。信号定义为
Type InternalState is (Idle,Valid,Stalled);
Signal sState,sPrevState :InternalState;
Run Code Online (Sandbox Code Playgroud)
从 vcd 中省略。这种行为对于modelsim 和ghdl 很常见。
我可以在 ghdl 生成的 vcd 中看到以下行
$comment sstate is not handled $end
Run Code Online (Sandbox Code Playgroud)
Modelsim 只是悄悄地忽略了这些信号
有解决方法吗?选择?
小智 2
尝试 Tony Bybell 的 gtkwave,您可以在其中指定值的枚举替换(gtkwave 手册中的“快速入门”、“别名文件”和“附加外部反汇编程序”)。Gtkwave 还与 ghdl 的本机波形格式 (ghw) 兼容。请参阅SourceForge 上的 Gtkwave,其中有一个手册链接,以及下载 W32 和 Mac 应用程序二进制文件的链接。它也应该可以通过任何 Linux 发行版获得。