Method 1
Module MUX (
D1,
D2,
D3,
D4,
SE1,
Se2,
Dout
);
Input D1;
Input D2;
Input D3;
Input D4;
Input SE1;
Input se2;
Output dout;
Reg dout;
Always @ (d1 or D2 or D3 or D4 or SE1 or se2)
Case ({SE1, se2 })
2 'b00: dout = D1;
2 'b01: dout = d2;
2 'b10: dout = D3;
2 'b11: dout = D4;
Endcase
Endmodule
Method 2
Module MUX (
D1,
D2,
D3,
D4,
SE1,
Se2,
Dout
);
Input D1;
Input D2;
Input D3;
Input D4;
Input SE1;
Input se2;
Output dout;
Reg dout;
Always @ (d1 or D2 or D3 or D4 or SE1 or se2)
If (! SE1)
Begin
If (! Se2)
Dout = D1;
Else
Dout = d2;
End
Else begin
If (! Se2)
Dout = D3;
Else
Dout = D4;
End
Endmodule
Method 3
Module Se (
D1,
D2,
D3,
D4,
SE1,
Se2,
Dout
);
Input D1;
Input D2;
Input D3;
Input D4;
Input SE1;
Input se2;
Output dout;
Reg dout;
Always @ (d1 or D2 or D3 or D4 or SE1 or se2)
Assign dout = SE1? Se2? D4: D3: se2? D2: d1;
Endmodule
Several methods for implementing the 4-to-1 data selector using OpenGL