我正在尝试编译我的模块,当我从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
答案 0 :(得分:1)
BadData
是uut
的输出。
它应该连接到TB中的wire
。此外,它不应该在TB中分配任何值(您指定的是0)。
当您移除reg error
时,它会自动推断为wire
。这就是为什么没有错误。