1 votos

Implementación del contador de programa de 8 bits

Estoy intentando construir un Contador de Programa de 8 Bits, en Logisim. Actualmente tiene funciones LOAD, que hace que la entrada de 8-Bits (A0-A7) aparezca en la salida (S0-S7) en el pulso de reloj:

Cargando 1 como entrada: LOAD 1

1 cargado/almacenado con éxito: LOAD 2

Cuando LOAD está alto, A0-A7 se ejecuta a través del sumador completo, que técnicamente se utiliza - sólo añade 0, por lo que no afecta a la salida.

Ahora estoy tratando de implementar un INC (incremento) también, que cuando está alto básicamente sólo sumará 1, pero tomará el valor actual del registro como entrada, en lugar de A0-A7. Aquí está la lógica que fluye en la simulación, que es exactamente lo que quiero (He rodeado el valor que entra en el registro, que es 2 - perfecto): INC

Sin embargo, ahora cuando intento almacenar este valor en el registro pulsando el reloj - obtengo un error de 'oscilación detectada' en Logisim: ERROR

Es la primera vez que intento construir esto, así que ¿hay algo intrínsecamente erróneo en mi implementación, o me falta algo pequeño que debería hacer que funcione como se espera?

3voto

RaphaelP Puntos 11

Tu registro está propagando su salida basándose en el nivel del "reloj" y no en su transición (aka registro transparente), lo que está creando un bucle inestable. Para que ese circuito funcione, tendrías que:

  • Cambia esa parte por un registro que cambie sus salidas sólo en la transición del reloj de bajo a alto.

o

  • Añade un segundo registro después del primero que se sincroniza por el inverso del reloj del primero. De este modo, tu circuito sigue tardando 1 reloj en enviar los cambios al bus, pero lo hace en dos pasos, evitando que la salida cambiante del registro afecte a su propia entrada.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X