Verilog:无法附加注册为输出?

时间:2014-10-26 17:04:37

标签: verilog system-verilog

我正在尝试编译我的模块,当我从testbench中删除badData寄存器时它工作正常。但是,在我添加它的那一刻,verilog抱怨“错误加载设计”。

模块代码:

module hamming_code #( parameter TOTAL_LENGTH = 15,
                               parameter PARITY_BITS = 4
                           )
                (
                    //inputs
                    input [TOTAL_LENGTH-1:0] codeword,

                    //outputs
                    output [TOTAL_LENGTH-1:0] correctedWord,
                output reg badData
                );

Testbench代码:

`timescale 1ns/1ps
module tb ();
integer pass_count, fail_count;
reg clock;
reg [14:0] cw; 
wire [14:0] ccw;
reg error;
integer i;

hamming_code uut (// Inputs 
                            .codeword(cw),
                            // Outputs
                            .correctedWord(ccw),
                            .badData(error)

                         );

initial begin
// initial values
clock <= 0;
pass_count <= 0;
fail_count <= 0;
error <= 0;
wait(0);
end

always@(*)
#5 clock <= ~clock;

endmodule

1 个答案:

答案 0 :(得分:1)

BadDatauut的输出。 它应该连接到TB中的wire。此外,它不应该在TB中分配任何值(您指定的是0)。

当您移除reg error时,它会自动推断为wire。这就是为什么没有错误。