Multiplexor
1. Códigos
1.1 Multiplexor 2 a 1 de n bits
mux2_to_1.v |
---|
| module mux2_to_1 #(
parameter Width = 32
) (
input [Width-1:0] in1_i,
input [Width-1:0] in2_i,
input sel_i,
output [Width-1:0] mux_o
);
assign mux_o = sel_i ? in2_i : in1_i;
endmodule
|
1.1 Multiplexor 4 a 1 de n bits
mux4_to_1.v |
---|
| module mux4_to_1 #(
parameter Width = 32
) (
input [Width-1:0] in1_i,
input [Width-1:0] in2_i,
input [Width-1:0] in3_i,
input [Width-1:0] in4_i,
input [1:0] sel_i,
output [Width-1:0] out_o
);
assign out_o = sel_i[1] ? (sel_i[0] ? in4_i : in3_i) : (sel_i[0] ? in2_i : in1_i);
endmodule
|
mux4_to_1_v2.v |
---|
| module mux4_to_1 #(
parameter Width = 32
) (
input [Width-1:0] in1_i,
input [Width-1:0] in2_i,
input [Width-1:0] in3_i,
input [Width-1:0] in4_i,
input [1:0] sel_i,
output reg [Width-1:0] out_o
);
always @(in1_i, in2_i, in3_i, in4_i, sel_i) begin
if (sel_i == 0) begin
out_o = in1_i;
end else if (sel_i == 1) begin
out_o = in2_i;
end else if (sel_i == 2) begin
out_o = in3_i;
end else if (sel_i == 3) begin
out_o = in4_i;
end else begin
out_o = 0;
end
end
endmodule
|
mux4_to_1_v3.v |
---|
| module mux4_to_1 #(
parameter Width = 32
) (
input [Width-1:0] in1_i,
input [Width-1:0] in2_i,
input [Width-1:0] in3_i,
input [Width-1:0] in4_i,
input [1:0] sel_i,
output reg [Width-1:0] out_o
);
always @(in1_i, in2_i, in3_i, in4_i, sel_i) begin
case (sel_i)
2'd0 : out_o = in1_i;
2'd1 : out_o = in2_i;
2'd2 : out_o = in3_i;
2'd3 : out_o = in4_i;
default : out_o = 0;
endcase
end
endmodule
|