He estado jugando en Logisim para obtener algo de experiencia en el diseño de circuitos eléctricos básicos. Aunque estoy seguro de que no soy el mejor, pude armar una ALU funcional:
1-Bit :
- EstaALUescapazdelasoperacionesAND,OR,XOR,NOR,ADD/SUB.
- [A]&[B]sonentradasde8bitsporseparado.
- Laentrada[Sub]designasiseagrega(0)oseresta(1).
- [OperationSetter]designaquéoperaciónseestárealizando.
- [R]eselresultadodelaoperacióndesignada,conla[Banderacero]alertándonosaunasalidade'0',comocuandoserestaunnúmerodesímismo.
UsandolaALUde1bit,juntéunaALUde8bits(estaimagendirectamentedebajodelarealizacióndeunaoperaciónAGREGAR):
(operación SUB):
Ahora estoy intentando tomar mi ALU y combinarla con algún tipo de CPU (por ahora se enfoca principalmente en sumar / restar y dar salida a unas pocas pantallas de 7 segmentos). Tengo una pantalla de 7 segmentos en conjunto (también tengo otra para los caracteres Alhpa AbcdEfG):
NopuedoencontrarunabuenamaneradetomarloquetengoparaunaALUycolocarlasalidaenmipantallade7segmentos(enúltimainstancia,quierotenerlapantalladeresultadosatravésde3paramostrartodoslos255valoresposiblesdemiAdiciónde8bits):
Losiguienteesloquehacemicircuitoparacadaoperacióndiferente:
Yoperación-1.1=1:
O Operación - 1 + 0 = 1 :
OperaciónXOR-1XOR0=1:
Operación NOR - 1 NOR 0 = 6 :
ADD/SUBOperationg-1+1=ERROR(¿SubFlagestáenerrorparatodoslosOP's?):
No estoy muy seguro:
- Por qué mi marca secundaria no es seleccionable.
- Por qué se produce un error en el indicador cero en una operación de adición / sub.
- Cómo corregir mi resultado de mi ALU para que entre y muestre correctamente en mi pantalla de 7 segmentos (actualmente estoy generando 8 bits en un divisor de 8 bits y luego coloco los primeros 4 como mi entrada para la pantalla de 7 segmentos ).
¿Alguien tiene algún comentario sobre cómo puedo corregir los problemas en mi diseño y hacer que esto funcione? Gracias de antemano!
EDIT:
Se ha solucionado el problema con el indicador secundario. De alguna manera, cuando traje el circuito para usarlo en mi circuito principal, tenía las propiedades de ser una Salida y un estado de 3 estados (que no creo que haya establecido). En cualquier caso, ese problema menor es corregido.
Parece que la Bandera de cero también se estableció como 3 estados por alguna razón.
¿Algún consejo sobre cómo solucionar el problema de agregar / sub?