【verilog】VL1 四选一多路器

VL1 四选一多路器

要求
思路一:组合逻辑

`timescale 1ns/1ns
module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output[1:0]mux_out
);
//*************code***********//
assign mux_out = (sel == 2'b00) ? d3 :(sel == 2'b01) ? d2 : (sel == 2'b10) ? d1 :d0 ;

//*************code***********//
endmodule

思路二:时序逻辑

`timescale 1ns/1ns
module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output reg [1:0]mux_out
);
//*************code***********//
 
always @(*) begin
    case(sel)
    2'b00 : mux_out = d3;
    2'b01 : mux_out = d2;
    2'b10 : mux_out = d1;
    2'b11 : mux_out = d0;
    default :mux_out = 2'b00;
    endcase
 
end
//*************code***********//
endmodule

需要注意的是:wire类型不能在always块里赋值,所以思路二要将mux_out改为reg类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值