微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 ModelSIM 不显示时序波形,而 GTKWave 可以?

如何解决为什么 ModelSIM 不显示时序波形,而 GTKWave 可以?

我对 verilog 有点陌生,并在所有基本概念上苦苦挣扎。 我试图在 ModelSim 中显示时序波形,其中只是抛出“# (vish-4014) No objects found matching '/tb/*'.”(在我的情况下)。

而当我在 VSCode 中使用 icarus 和 gkwave 模拟测试平台时,它会显示我需要的必要波形。在 VS Code 中,我运行

iverilog -o tb.vvp tb.v 
vvp tb.vvp
gtkave

GTKwave 弹出并显示波形。我正在测试的硬件将 2 个数字作为输入并返回小数和大数(下面附有 cnsmodule)。我正在模拟的测试平台名为“tb.v”,如下所示:

module tb();
reg a0,a1,a2,a3;
wire s0,s1,s2,s3;

level uu(.*);
always begin
    $dumpfile("tb.vcd");
    $dumpvars(0,tb);
  
    a0=2'b01;a1=2'b00;a2=2'b11;a3=2'b10;
    #10;
    
    $finish;
  
end 
endmodule

我正在实例化的相关模块是:

// Instantiates 3 cnsmodules to input 4 numbers and return them from small to large    
module level(a0,a3,s0,s3);

input a0,a3;
output s0,s3;

wire s0,s3;
wire temp1,temp2;

cnsmodule tvz1(a0,temp1);
cnsmodule tvz2(temp1,temp2);
cnsmodule tvz3(temp2,s3);

endmodule

和:

    module cnsmodule (a0,sn,ln);
  input a0,a1;
  output sn,ln;
  reg sn,ln;

  always@(*) begin
    if (a0>a1) begin 
      sn=a1; ln=a0;
    end
    
  else begin 
    sn=a0; ln=a1;
  end
end
endmodule

解决方法

我怀疑您的问题在于优化 ModelSIM 对设计所做的优化,请尝试以下操作并告诉我它是否在顶部栏中有效单击模拟,然后是优化选项,然后单击“应用所有模块的完全可见性(完全调试模式)”,然后选择您的测试平台并尝试立即添加您的信号

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。