Gate level
Data flow
Behavioral
Gate
module multiplexer(s0,s1,d0,d1,d2,d3,y);
input s0,s1,d0,d1,d2,d3;
output y;
wire x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12;
not(x1,s0);
not(x2,s1);
and(x3,x1,x2);
and(x4,x3,d0);
and(x5,x2,s0);
and(x6,x5,d1);
and(x7,s1,x1);
and(x8,x7,d2);
and(x9,s0,s1);
and(x10,x9,d3);
or(x11,x4,x6);
or(x12,x8,x10);
or(y,x11,x12);
endmodule
data
module multiplexer_data(s0,s1,d0,d1,d2,d3,y);
input s0,s1,d0,d1,d2,d3;