¿Cómo se reduce una ALU de 8 salidas a una ALU de 4 o 3 salidas?

Puedo implementar las funciones en la imagen a continuación, pero si las implemento de forma independiente, tendría 8 salidas al mux. Nuestros profesores quieren que reduzcamos la ALU a solo 3 o 4 salidas, lo he intentado pero no llego a ninguna parte.

ingrese la descripción de la imagen aquí

Explique lo que intentó.
Pista: ¿Cuál es la diferencia entre 6 y 7? ¿Entre 3 y 5? ¿Entre 4 y 5?
la diferencia entre 5 y 7 es que son opuestos, la diferencia entre 3 y 5 es que uno es resta y el otro es anding. 4 y 5 son oring y anding, pero no veo cómo usar estas diferencias. solo puedo usar xnor y xor porque son opuestos, pero el resto no puedo verlo
¿Ya te enteraste de De Morgan?
tengo sobre demorgan, y puede volverse o pero voltearse. No puedo ver cómo usarlo aquí.
4 y 5 son bastante iguales excepto que uno está invertido. relacionar 3 y 5 en demorgan es bastante confuso

Respuestas (1)

La suma y la resta tienen constantes invertidas C i norte , podemos estar conectados a ( I 3 I 4 ) . Luego invierta el valor de la resta antes de pasar a un sumador completo. ADD/SUBR/SUBS se puede expresar como:

( R I 3 ) + ( S I 4 ) + ( I 3 I 4 )

Usando el mismo método de inversión xor, puede combinar:
AND/NOTRS: ( R I 3 ) S
EXOR/EXNOR: R S I 3

Esto hace 4 posibilidades que se pueden decodificar usando tres multiplexores 2 a 1.

esquemático

simular este circuito : esquema creado con CircuitLab

Sugerencia: el número de puertas se puede reducir aún más si se comparte la lógica con las puertas dentro del sumador completo.

muchas gracias, esto es muy muy util