【问题标题】:Modelsim and GHDL cannot dump vhdl user-defined signal types into vcd?Modelsim 和 GHDL 无法将 vhdl 用户定义的信号类型转储到 vcd 中?
【发布时间】:2012-03-28 03:34:48
【问题描述】:

我正在尝试从 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 只是悄悄地忽略了这些信号

有解决方法吗?替代方案?

【问题讨论】:

    标签: signals vhdl modelsim ghdl


    【解决方案1】:

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

    【讨论】:

    • 谢谢,我已经在使用 gtkwave。我看到的问题不在于查看器,而在于忽略这些信号的模拟器。我会尝试原生波形格式; ghw 和 wlf。但是 AFAIK,vcd 格式支持这样的信号。
    • 你能自动转储 Verilog 中的所有枚举,然后在 gtkwave 中重用它们吗?
    【解决方案2】:

    正如@user1155120 提到的,GHDL 的原生格式 (.ghw)确实支持自定义类型,也可以被 GTKWave 读取。

    您可以通过--wave<=FILENAME>导出此波形类型。

    尽管如此,我提交了an issue 以支持将来在.vcd 波形中的自定义类型!

    【讨论】:

    • 虽然调用 @user1155120 没有产生收件箱事件(我在原帖中没有提到),但这个“答案”似乎是评论或试图回复答案。跨度>
    • 似乎提及仅在 cmets 中可用,而不在答案中。感谢您的提示!此外,我不允许发表评论,因为它需要更多的声誉。尽管如此,我认为它提供了其他答案所没有的信息,因此有资格作为单独的答案。
    • 谢谢!!!惊人的。刚刚添加了 --wave=simu.ghw 就这样!现在我也可以看到我的 cstate 和 nstate 了。 :) macOS + Sigasi + GHDL + gtkwave 组合。
    【解决方案3】:

    您的模拟器不知道如何使用值更改转储文件中可能的标量或向量变量来表示您的 InternalState 类型。 例如,如果您使用 std_ulogic 向量来表示您的状态,它们将出现在 VCD 文件中。 一个好的波形查看器允许您用状态名称替换您的状态编码。正如 user1155120 已经指出的那样,Gtkwave 支持这一点。 IEEE Std 1800-2012 在第 21.7 节中描述了 VCD 文件及其限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多