¿Es seguro reiniciar automáticamente un flip-flop en función de su estado de salida?

0

Me gustaría crear una función lógica que alterna con el reloj (invertido) cuando está habilitada y permanece baja cuando está deshabilitada, de este modo:

clk ena out
 0   0   0
 1   0   0
 0   1   1
 1   1   0

Podría hacer eso con puertas simples AND / NOT, como en el siguiente esquema:

Lasalidadeberíaestarlibredeproblemas,asíquepenséenelsiguientecircuito:

Para evitar out glitches, ena (que los cambios activados en el aumento de clk edge) se muestrean en la caída de clk edge.

Mi pregunta es sobre la entrada de restablecimiento del DFF mientras ena es alto: este será solo un pulso muy corto (casi como un problema técnico), desde que clk aumenta hasta que se reinicia el DFF. ¿Esto causará algún problema o es seguro usar este circuito?

    
pregunta FriendFX

2 respuestas

0

No entiendo exactamente cuáles son sus requisitos, pero me parece que simplemente desea crear un "reloj bloqueado" y evitar la creación de pulsos de reloj mal formados cuando "ena" cambia cuando el reloj está bajo (y el reloj de salida se genera pulso). Este problema se trata en este artículo . A continuación se muestra uno de los circuitos propuestos.

Tenga en cuenta que todos los circuitos analizados en el artículo vinculado tienen algunas desventajas, por lo que debe seleccionar el adecuado en función de otras restricciones.

simular este circuito : esquema creado usando CircuitLab

    
respondido por el wzab
1

Creo que podría causar problemas, pero no ha proporcionado suficiente información para saber de una manera u otra. Cuando la salida de FF es alta y el reloj sube, la entrada de reinicio a FF comenzará a subir. Como se trata de un reinicio asíncrono, la salida de FF comenzará a caer. Si la compuerta AND es rápida, entonces la entrada de reinicio comenzará a caer antes , la salida FF ha caído completamente a un nivel bajo. Peor aún, la salida de la FF podría bajar mucho antes de que el estado interno de la FF haya cambiado completamente a 0.

Me parece que podrías terminar en un estado metaestable o que todo podría oscilar. Debe tener un control preciso sobre el tiempo para que funcione, y asegurarse de que la demora a través de la función AND sea mucho más larga de lo necesario para que el FF se reinicie por completo.

    
respondido por el Joe Hass

Lea otras preguntas en las etiquetas