PRESET y CLEAR en un Flip Flop D

2

Estoy tratando de entender la forma en que PRESET y CLEAR funcionan en un borde positivo provocado por el flip flop D, pero es posible que me falte algo que espero que alguien pueda aclarar, por favor.

La Figura 1 a continuación muestra el flip flop en cuestión. Estoy usando rojo para alto y azul para bajo. El dispositivo de detección de borde positivo es una compuerta AND con una compuerta NO. La salida del detector de bordes en este diagrama es baja, por lo que el cambio de estado no puede cambiar su estado por un cambio en D.

La Figura 2 a continuación es un breve momento cuando el borde del reloj se está elevando. La salida del detector de bordes es alta, por lo que Q cambia para coincidir con D.

Y la Figura 3 a continuación es otro momento en el que el borde del reloj aumenta, así que nuevamente Q muestra D y cambia para coincidir.

Mientras tanto PRE como CLR sean altos, el flip flop se comporta exactamente como lo esperaría. Una puerta NAND de tres entradas solo genera un 0 cuando las tres de sus entradas son altas.

Pero aquí está mi consulta. En la Figura 4 a continuación, la entrada de CLR bajo activo baja, mientras que hay un flanco ascendente, por lo que se habilita el flip flop. El inverso de Q ahora es alto, pero Q no está establecido en 0 como es de esperar. Todavía hay una entrada baja en la puerta NAND superior derecha, por lo que Q sigue siendo alta.

En la Figura 5 debajo, la entrada PRE baja activa se ha establecido en baja. Esto está ocurriendo nuevamente en el flanco ascendente, mientras que D es bajo. Hará Q alta como debería, pero la inversa de Q también es alta.

La mayoría de las veces no hay un flanco ascendente, y PRE y CLEAR se comportan correctamente, como en la Figura 6 y las Figuras7. Me preocupa porque mucha literatura (sitios web, etc.) dice que las entradas PRE y CLR son asíncronas y completamente independientes de la entrada en D y del reloj. ¿Alguien puede aclararme esto por favor?

    
pregunta Drummy

1 respuesta

1

Son PRESET y CLEAR asíncronos (activo bajo). En esta configuración, existe la restricción de que PRE y CLR no pueden estar activos (bajo) al mismo tiempo (o, si no, Q y Q 'son 1). Podría dar una prioridad si quisiera modificando un poco la topología.

Además, si PRE o CLR están activos (bajo) en el flanco ascendente del reloj, los estados de salida no se invertirán necesariamente (como se señaló). Pero, debido a que el pulso del detector de borde es estrecho, el PRE o el CLR se propagarán rápidamente a través de Q y Q 'después de que el pulso del detector de borde termine suponiendo que se mantengan durante la duración del pulso .

En esencia, lo que 'retiene' más tiempo ganará: o los datos pasarán si el pulso del detector de borde permanece activo por más tiempo que las señales PRE / CLR permanecen activas (bajo), o el PRE / Las señales CLR permanecerán activas durante más tiempo que el pulso del detector de borde y sobrescribirán lo que D ponga allí.

En la práctica, estas restricciones se representarían en los archivos de caracterización de la biblioteca. Habría un arco de configuración y retención que define el tiempo entre el reloj, d, PRE y CLR para evitar cualquier estado no deseado.

O, si el circuito se usara de una manera más personalizada, sus diseñadores deberían asegurarse de que comprendieron el funcionamiento del cierre de pulso (no es realmente un flip flop, imo) y cómo habilitarlo o restablecerlo correctamente.

Se puede decir que PRE y CLR son asíncronos fácilmente al observar el flujo de la señal. PRESET y CLR pasan a la salida sin ninguna activación por la señal CLK (lo que los haría sincrónicos).

Para probárselo usted mismo, suponga que el reloj no está alternando, y tanto PRESET como CLEAR son '1' (inactivo). Además, este circuito no puede tener tanto PRE como CLR bajos al mismo tiempo.

También asuma los estados iniciales para Q y Q ':

PRE = 1, CLEAR = 1
Q = 1, Q' = 0

Mientras no toques nada, todo permanecerá como está (enganchado).

Ahora, arrastre CLR hasta '0' sin cambiar el reloj o los datos.

Como se muestra en la imagen de arriba, esto borra Q de '1' a '0'. Y, el reloj no ha cambiado. Esto significa que el circuito es asíncrono. Desde aquí, la señal CLR puede inactivarse (devolverse alta) y el circuito seguirá manteniendo su estado.

Un pozo fácil de decir es la sincronización del reloj en relación con las señales de borrar / habilitar / reiniciar.

    
respondido por el jbord39

Lea otras preguntas en las etiquetas