¿Conectar la ALU a la CPU en el diseño del circuito de logismo y la salida a la pantalla de 7 segmentos?

He estado jugando con Logisim para obtener algo de experiencia en el diseño de circuitos eléctricos básicos. Si bien estoy seguro de que no es el mejor, pude armar una ALU funcional:

1 bit :ALU de 1 bit

  • Esta ALU es capaz de realizar las operaciones AND, OR, XOR, NOR, ADD/SUB.
  • [A] y [B] son ​​entradas separadas de 8 bits.
  • La entrada [Sub] designa si suma (0) o resta (1).
  • El [Operation Setter] designa qué operación se está realizando.
  • [R] es el resultado de la operación designada, con la [Bandera Cero] alertándonos de una salida '0', como cuando un número se resta de sí mismo.

Usando la ALU de 1 bit, armé una ALU de 8 bits (esta imagen directamente debajo de la realización de una operación AGREGAR):ALU de 8 bits

(Operación SUB):Operación de resta de ALU de 8 bits

ingrese la descripción de la imagen aquí

Ahora estoy tratando de tomar mi ALU y combinarlo con algún tipo de CPU (por ahora, me enfoco principalmente en sumar/restar y enviar a unas pocas pantallas de 7 segmentos). Tengo una pantalla de 7 segmentos armada (también tengo otra para los caracteres alhpa AbcdEfG):

Pantalla de 7 segmentos (no alfa)

No puedo encontrar una buena manera de tomar lo que tengo para una ALU y colocar la salida en mi pantalla de 7 segmentos (en última instancia, quiero que el resultado se muestre a través de 3 para mostrar todos los 255 valores posibles de mi 8-bit suma):

Lo siguiente es lo que hace mi circuito para cada operación diferente:

Y Operación - 1.1 = 1 :Y

O Operación - 1+0 = 1 :O

Operación XOR - 1 XOR 0 = 1 :XOR

Operación NOR - 1 NOR 0 = 6 :NI

ADD/SUB Operationg - 1+1 = ERROR (¿Sub Flag tiene un error para todos los OP?):ingrese la descripción de la imagen aquí

No estoy muy seguro:

  • Por qué mi subbandera no se puede seleccionar.
  • Por qué mi indicador cero falla en una operación Agregar/Sub.
  • Cómo corregir mi resultado de mi ALU para que ingrese y se muestre correctamente en mi pantalla de 7 segmentos (actualmente genera 8 bits en un divisor de 8 bits y luego coloca los primeros 4 como mi entrada para la pantalla de 7 segmentos).

¿Alguien tiene alguna información sobre cómo puedo corregir los problemas en mi diseño y hacer que esto funcione? ¡Gracias de antemano!

EDITAR:

Se solucionó el problema de la bandera secundaria. De alguna manera, cuando traje el circuito para usarlo en el principal, tenía las propiedades de ser una salida y ser de 3 estados (que no creo que haya configurado). En cualquier caso, ese problema menor está solucionado.

Parece que Zero Flag también se estableció como 3 estados por alguna razón.

¿Algún consejo para solucionar el problema Add/Sub?

Respuestas (1)

En las últimas imágenes, parece que ha configurado la "bandera secundaria" como una salida, no como una entrada. Como no hay nada que dirija esa red, está dando como resultado un error.

No estoy seguro de cómo cambiaron esas propiedades, ¡pero tienes razón! La bandera secundaria en mi circuito principal se configuró como Salida y como 3 estados. ¡Gracias! ¿Algún consejo sobre el resto?