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)

全部评论
只有sel必须是两位的吧
点赞 回复 分享
发布于 2023-06-13 22:00 上海

相关推荐

程序员鼓励师阿欢:哈哈哈哈哈笑死我了😂
点赞 评论 收藏
分享
谁知道呢_:要掉小珍珠了,库库学三年,这个结果
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务