我的 verilog 代码是一个只使用assign sum = a+b
. 问题是,虽然使用cocotb
,运行它时sum
仍然未知a
并且b
具有有效值。当我制作sum
reg 类型时,它可以工作。
`timescale 1 ns / 1 ps
module adder(input [7:0] a,
input [7:0] b,
output reg [7:0] sum,
output [7:0] sum2);
assign sum2=a+b; //Trouble is here
always@(a,b) begin
sum=a+b; //This works
end
`ifdef COCOTB_SIM
initial begin
$dumpfile("adder.vcd");
$dumpvars();
end
`endif
endmodule