Logismo: sumar / restar problema aparente de oscilación de 4 bits

0

Actualmente tengo un problema dentro de mi diseño de circuito de sumador de 4 bits que tiene una función de resta en Logisim. Mi sumador de 4 bits tiene una salida de 5 bits con un máximo de decimal 30 (porque 1111 (15) + 1111 (15) = (11110). En mi proceso de adición, todo salió bien sin ningún problema.

Debajo está la imagen del sumador. 0 significa adición en la entrada del lado izquierdo.

Perodespuésdecambiarlaentradaa1paraquepuedatenerunafunciónderesta,ocurrióunerroryaúnsemuestran16enmipantallacomosemuestraacontinuación.

Cualquier ayuda es muy apreciada. Gracias.

    
pregunta arcwinolivirus

1 respuesta

4

¿Por qué devuelves el arrastre al arrastre cuando estás restando? Eso no parece correcto, y esa es la ruta de retroalimentación que está causando la "oscilación" (lo que básicamente significa que el simulador no puede encontrar un estado de salida coherente).

Para negar un número, necesita invertir todos sus bits, que es lo que supongo que está haciendo el bloque superior izquierdo, y luego agregarle uno, que normalmente se realiza al configurar el arrastre del sumador a 1 - incondicionalmente . No hay ninguna razón para que la puerta AND o la conexión se lleven a cabo.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas