En términos de "separar" las funciones, eso no es realmente cómo funciona la lógica digital. La lógica digital es "siempre haciendo todo". Necesitas un mux (multiplexor) allí. El multiplexor se utiliza para seleccionar la salida correcta de todos los generados.
Suponga las entradas A y B, salida Q. Suponga que la ALU hace dos cosas diferentes: Q = A + B, o Q = A & B.
La ALU tendrá un sumador. También tendrá una gran puerta AND.
Tanto A como B van hacia el sumador y la puerta AND. Siempre. Cada momento de cada día, el sumador agrega A y B, y la puerta es ANDing A y B.
El mux se usa para seleccionar cuál de las salidas queremos pasar a Q. Si las señales de control a la ALU dicen "agregar", entonces el mux seleccionará la salida del sumador y la pasará a Q; La salida de la compuerta AND no está en uso. Si el control dice "y", el mux seleccionará la salida de la puerta AND y la pasará a Q en su lugar, mientras que la salida del sumador no se utiliza.
Imagina A = 0b0001 y B = 0b0010 en las entradas de la ALU. El sumador siempre produce 0b0011 y la compuerta AND siempre produce 0b0000. Si proporciona la señal de control "agregar", el 0b0011 pasa a Q. Puede dejar A y B solos, y cambiar la señal de control a "y", luego 0b0000 se pasa a Q.