verilog题解 | #四选一多路器#
四选一多路器
https://www.nowcoder.com/practice/cba4617e1ef64e9ea52cbb400a0725a3
`timescale 1ns/1ns
module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output[1:0]mux_out
);
//*************code***********//
reg[1:0]mux_out_reg;
always@(*)(1444584) begin
case(sel)
2'b00:begin
mux_out_reg = d3;
end
2'b01:begin
mux_out_reg = d2;
end
2'b10:begin
mux_out_reg = d1;
end
2'b11:begin
mux_out_reg = d0;
end
endcase
end
assign mux_out=mux_out_reg;
//*************code***********//
endmodule
`timescale 1ns/1ns
module testbench();
initial begin
$dumpfile("out.vcd");
$dumpvars(0, testbench);
end
reg [1:0]d1,d2,d3,d0,sel;
initial begin
d1=0;
d2=1;
d3=2;
d0=3;
sel=0;
#5 sel=1;
#5 sel=2;
$finish(0);
end
mux4_1 t(.d1(d1),
.d2(d2),
.d3(d3),
.d0(d0),
.sel(sel),
.mux_out(mux_out));
endmodule
case语句要加endcase
always语句中的reg类型才能赋值
testbench要加$finish(0)


