Я выполняю расчет мультиплексора обратной связи с использованием Verilog. Но, тем не менее, система не отвечает (давая X) на один из входов, которым является B (вход, управляемый мультиплексором). Можете помочь мне указать, где ошибка и как ее исправить.
Вот коды:
module test(input sel,input [3:0]a,b,output [3:0]o);
localparam in_0 = 4'd0;
wire [3:0]w1;
assign w1 = a + b;
assign o = w1 | 4'd0;
assign b = (sel)?w1:in_0;
endmodule
Вот тестовый стенд:
module test_tb();
reg sel;
reg [3:0] a,b;
wire [3:0]o;
test U1(.sel(sel),.a(a),.b(b),.o(o));
initial begin
sel <= 1'b0;
a <= 4'd2;
#2;
sel <= 1'b1;
#2;
a <= 4'd1;
#2;
sel <= 1'b0;
a <= 4'd4;
#2;
end
endmodule