我正在尝试从由 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-generated vcd 看到以下行
$comment sstate is not handled $end
Modelsim 只是悄悄地忽略了这些信号
有解决方法吗?选择?