Bisognerebbe vedere come hai simulato una porta per poter dire.
Nel senso che se simuli tutte le porte di un mux... ottieni un mux.
Ad esempio per me questa è una porta AND a due ingressi:
y = a & b;
Mentre questo è un addizionatore a un bit con riporto (due AND, due XOR, una OR):
out = in1 ^ in2 ^ inrip;
outrip = (in1 & in2) | ( (in1 ^ in2) & inrip);
Un mux 4 ingressi 1 uscita potrebbe essere così (quattro AND, una OR):
out = (in0 & !a & !b) | (in1 & a & !b) | (in2 & !a & b) | (in3 & a & b);