¿Qué es lo que está mal con mi interruptor de palanca D flip-flop?

7

Hasta hace unas semanas, nunca había dibujado un diagrama de circuito en mi vida, así que ten paciencia. Actualmente estoy tratando de diseñar (en Logisim) un circuito que actúa como un interruptor de palanca, usando solo puertas lógicas básicas y sin reloj. Básicamente, quiero que la salida de LED se encienda cuando se presiona el botón SINGLE y se apaga cuando se presiona de nuevo, y he estado experimentando con todo tipo de SR / latch / D combinaciones / otras combinaciones en vano.

Estoy intentando hacerlo ahora haciendo un flip-flop D desde cero, con el botón que sirve como "reloj" y la salida final de Q 'regresa como la entrada D en el primer pestillo, como se muestra en la imagen:

Reviséesteflip-flopconmuchocuidado,ypenséqueteníaalmaestroyalesclavoalineadoscorrectamente,conlosinversoresenloslugarescorrectos,etc.,perodeacuerdoconLogisim , no es correcto y no funciona. ¿Que me estoy perdiendo aqui?

    
pregunta nicole

3 respuestas

7

Dupliqué su circuito en Logisim (como una oportunidad para hacer algo en Logisim). No hay nada malo con tu circuito. Hay algo sobre Logisim que no entiendo.

Primero que nada, las líneas rojas no son líneas en un estado alto; son errores Uno esperaría este tipo de error si dos salidas estuvieran unidas. Hice un montón de romper el circuito y atar las líneas altas o bajas, y, finalmente, todos los errores fueron "eliminados" y al volver a conectar el circuito normalmente se producía la conmutación para la que estaba diseñado.

Específicamente, rompa el cable superior izquierdo, el que conecta Q 'a D, luego conecte D a una fuente alta o baja ("resistencia de tracción" funciona bien aquí), y muévalo hasta que esté todo verde. Luego, vuelva a conectar la retroalimentación, y todo funcionará. Tenga en cuenta que alto y bajo están representados por verde y verde oscuro (?).

Al presionar "Reiniciar simulación" se recuperarán todos los errores. Mi conjetura es que, en algún lugar de la lógica del programa, tiene un "estado indefinido". Estos estados indefinidos se propagan a través de las puertas en la medida en que no se "clasifican" como lo hacen los aparatos electrónicos reales. Undef AND 0 debe dar como resultado 0, no Undef. Lo mismo vale para 1 o Undef.

En caso de que esto se haya abordado en una versión posterior, señalaré que este Logisim es 2.7.1

Actualización: "solucioné" el problema (al menos dentro del alcance de este simulador) insertando una puerta NOR en la ruta de retroalimentación. Luego conecte un botón a la otra entrada. Reemplacé el botón original con una señal de reloj (que se encuentra en "cableado"). Ahora, al presionar el botón se borra el error. (Restablecer la lógica devuelve el error).

    
respondido por el gbarry
2

Según la respuesta de gbarry, parece que LogicSim está utilizando una evaluación lógica pesimista "no sé", lo que significa que los cables solo son bajos si el simulador puede decir que, dados los estímulos recibidos hasta la fecha, definitivamente deberían ser bajos ; de la misma manera, solo son altos si el simulador puede decir que definitivamente deberían ser altos. Tal evaluación de lógica pesimista a menudo impide la simulación de dispositivos que probablemente funcionaría satisfactoriamente en el mundo real, pero tiende a asegurar que los dispositivos solo se comportarán como se desea en la simulación si de hecho funcionen en el mundo real.

Si los circuitos se implementaran con lógica del mundo real, es probable que el circuito se estabilice, por lo que el cable rojo superior era alto o bajo, pero su nivel real sería arbitrario. Al presionar el botón, el cable superior debe asumir el estado opuesto al anterior al empuje, pero dado que ese estado inicial no se puede definir como alto o bajo, ni el estado después del empuje.

En algunos casos, puede ser más útil que un simulador se encienda arbitrariamente en algún estado en particular, que tener un simple estado indeterminado sin resolver. Sin embargo, un gran peligro con los simuladores que lo hacen es que pueden llevar a creer que un circuito funcionará en la vida real, cuando en realidad no lo hará. Por el contrario, si una simulación pesimista indica que los estados indeterminados se resuelven, es casi seguro que lo harán en el mundo real; si no lo hace, dichos estados pueden resolverse o no en el mundo real, pero uno no debe confiar en dicho comportamiento a menos que haya examinado las restricciones de tiempo con mucho cuidado.

    
respondido por el supercat
0

Resuelvo este problema accidentalmente.

Solo tienes que reemplazar tus And Gates con IC 74LS08 junto con NOT . La frecuencia del reloj es 0.5 y las primeras entradas j=0 y k=0 después de unos segundos, su Flip Flop comenzará a funcionar.

    
respondido por el Ammar ALi

Lea otras preguntas en las etiquetas