输入采用wire类型,输出采用reg类型
module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output [1:0]mux_out,
reg [1:0]mux_out
);
always@(*)
begin
case(sel)
2'b00:mux_out=d1;
2'b01:mux_out=d2;
2'b10:mux_out=d3;
2'b11:mux_out=d0;
endcase
end
endmodule
输入输出均采用wire类型
- 线网类型只能使用连续赋值语句进行赋值;
- 使用三元运算符 ?: 来实现四个信号的选择;
- 实现思路为:首先判断sel[0]的数值,再判断sel[1]的数值,即可判断出应当选择哪一个信号;
- 此外应当看清时序电路图中sel的数值和四个信号之间的对应关系,下表为该题目中对应关系:
sel | 信号 |
---|---|
00 | d3 |
01 | d2 |
10 | d1 |
11 | d0 |
module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output[1:0]mux_out
);
assign mux_out = sel[0]?(sel[1]?d0:d2):(sel[1]?d1:d3);
endmodule