¿Cómo reducir una lógica ALU con la mínima lógica posible? Es muy desafiante

0

Nuestro profesor quiere que reduzcamos 8 funciones alu (8 salidas) a una ALU de 4 salidas que tenga capacidad para implementar las 8 funciones. Podemos usar cualquier puerta (incluso aoi's), muxes, y podemos crear nuestras señales de control. Estoy tan atascado, mi diseño lógico funciona pero terminé usando 5 inversores y 5 muxes de dos a uno, me dijeron que era demasiado grande. Ahora estoy atascado, no sé cómo abordar este problema.

Funcionalidad de la ALU (pero ADD y SUBTRACT no están aquí, estoy bien con eso);

enlace

Este es el circuito lógico que se debe implementar, manipularlo para entregar las 5 funciones lógicas, es decir, los estados (3 a 7) cuyas salidas solo deben salir de las 3 salidas porque ya usé una salida para (agregar / sub) . Básicamente tenemos que obtener OR, NOR, XOR, XNOR, Y. no NAnd. La 's' y la 'r' no deberían estar conectadas al inversor, ese fue mi error, son las entradas que deben operarse

enlace

imagen más grande de ella; enlace

    
pregunta user124627

1 respuesta

2

No tomó mi sugerencia de su pregunta anterior : " El recuento de puertas puede reducirse Además, comparta la lógica con las puertas dentro del fulladder. "Para obtener el conteo mínimo de puertas, debe buscar la lógica de combinación completa.

Uno de los mejores métodos para simplificar la lógica y reducir el conteo de puertas es mediante el uso de un mapa de Karnaugh (también referido como un K-mapa).

Esto es como una pregunta de tarea, por lo tanto, no daré la solución completa. Puedo o no haber inyectado errores en la tabla / ecuación ;-)

El mapa K debería verse como:

\ I[5:3]
 \  000 | 001 | 011 | 010 | 110 | 111 | 101 | 100
RS\_____|_____|_____|_____|_____|_____|_____|____
00|  0  |  0  |  0  |  0  |  0  |  1  |  0  |  0 
  |_____|_____|_____|_____|_____|_____|_____|____
01|  1  |  1  |  1  |  1  |  1  |  0  |  1  |  0 
  |_____|_____|_____|_____|_____|_____|_____|____
11|  0  |  0  |  1  |  0  |  0  |  1  |  0  |  1 
  |_____|_____|_____|_____|_____|_____|_____|____
10|  1  |  1  |  1  |  1  |  1  |  0  |  0  |  0 
  |_____|_____|_____|_____|_____|_____|_____|____

Sacando las expresiones 1s: $$ ALU = \ bar {R} S \ bar {I_5} + R \ bar {S} \ bar {I_5} + I_5 I_4 (I_3 \ oplus S) + I_5 \ bar {I_4} \ bar {S} (I_3 \ oplus R) + ... $$

Si desea reducir el conteo de transistores, aplique Las Leyes de Morgan (también conocido como principio de Dualidad) y maximice El uso de puertas más pequeñas (INV, NAND, NOR). Por ejemplo, cada lugar donde se ve una compuerta OR cuyas entradas son solo compuertas AND y luego las convierte todas a NAND. $$ AB + CD \ equiv \ overline {(\ overline {AB}) (\ overline {CD})} \\ 18 puertas \ rightarrow 12 puertas $$

Los XOR son un poco difíciles de detectar, así que señalaré: $$ \ bar {R} S \ bar {I_5} + R \ bar {S} \ bar {I_5} \ equiv \ bar {I_5} (R \ oplus S) \\ 30 puertas \ rightarrow 16 puertas $$

    
respondido por el Greg

Lea otras preguntas en las etiquetas