33 lines
528 B
Coq
33 lines
528 B
Coq
|
/**
|
||
|
* 16-bit multiplexor:
|
||
|
* for i = 0..15 out[i] = a[i] if sel == 0
|
||
|
* b[i] if sel == 1
|
||
|
*/
|
||
|
|
||
|
`default_nettype none
|
||
|
module Mux8Way16(
|
||
|
input [15:0] a,
|
||
|
input [15:0] b,
|
||
|
input [15:0] c,
|
||
|
input [15:0] d,
|
||
|
input [15:0] e,
|
||
|
input [15:0] f,
|
||
|
input [15:0] g,
|
||
|
input [15:0] h,
|
||
|
input [2:0] sel,
|
||
|
output reg [15:0] out
|
||
|
);
|
||
|
always @(*) begin
|
||
|
case (sel)
|
||
|
0 : out = a;
|
||
|
1 : out = b;
|
||
|
2 : out = c;
|
||
|
3 : out = d;
|
||
|
4 : out = e;
|
||
|
5 : out = f;
|
||
|
6 : out = g;
|
||
|
7 : out = h;
|
||
|
endcase
|
||
|
end
|
||
|
endmodule
|