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:
1 cargado/almacenado con éxito:
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):
Sin embargo, ahora cuando intento almacenar este valor en el registro pulsando el reloj - obtengo un error de 'oscilación detectada' en Logisim:
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?