错误是什么意思"unable to bind wire"?



我写了下面的代码。它仅适用于一个显示段,在本例中为"e"。我用 http://www.edaplayground.com/来尝试模拟它;但是,每次尝试运行它时都会收到此错误:

testbench.sv:13:错误:无法绑定线路/注册/内存Seg_e"Seg_e_testbench"1 在阐述过程中出现错误。预期的退出代码:0, 收到: 1

module Seg_e (
output reg seg,
input [3: 0] BCD
);

parameter ZERO = 1'b0;
parameter ONE = 1'b1;
always @ (BCD)
    case (BCD)
    0: seg = ONE;
    1: seg = ZERO;
    2: seg = ONE;
    3: seg = ZERO;
    4: seg = ZERO;
    5: seg = ZERO;
    6: seg = ONE;
    7: seg = ZERO;
    8: seg = ONE;
    9: seg = ZERO;
default: seg = ZERO;
endcase
  
endmodule
module Seg_e_testbench;

wire seg;
reg [3: 0] BCD;
parameter ZERO = 1'b0;
parameter ONE = 1'b1;
initial #250 $finish;
initial fork
  begin
    $dumpfile("dump.vcd");
    $dumpvars(1,Seg_e);
  end
  
    #10 BCD = 0;
    #20 BCD = 1;
    #30 BCD = 2;
    #40 BCD = 3;
    #50 BCD = 4;
    #60 BCD = 5;
    #70 BCD = 6;
    #80 BCD = 7;
    #90 BCD = 8;
    #100 BCD = 9;
join
    Seg_e M0 (seg, BCD);

endmodule

$dumpvars 语句中指定模块实例名称,而不是模块名称:

$dumpvars(1, M0);

请参阅 IEEE Std 1800-2012 的"21.7.1.2 指定要转储的变量 ($dumpvars)"一节。

您应该给出模块实例名称或测试平台 (Seg_e_testbench) 的模块名称,而不是设计的模块名称。

http://www.referencedesigner.com/tutorials/verilog/verilog_62.php

最新更新