Entendiendo la función D flip flop - lo que hace esta cosa

1

Estoy tratando de entender qué hace un flip flop en D en el contexto de la construcción de una tabla de verdad, por lo que puedo diseñar un circuito síncrono de división por cinco. Es decir, contar hasta cinco y reiniciar.

Sé que necesito 3 bits para hacer esto. Así que Q0, Q1 y Q2 serán mis bits.

Ahora, cuando construyo una tabla de verdad, se ve así:

$$ \ begin {array} {lll | lll} \ text {Q0} & \ text {Q1} & \ text {Q2} & \ text {D0} & \ text {D1} & \ text {D2} \\ \ hline 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & ? &erio; ? &erio; ? \\ 0 & 1 & 1 & ? &erio; ? &erio; ? \\ 1 & 0 & 0 & ? &erio; ? &erio; ? \\ 1 & 0 & 1 & ? &erio; ? &erio; ? \\ 1 & 1 & 0 & ? &erio; ? &erio; ? \\ 1 & 1 & 1 & ? &erio; ? &erio; ? \\ \ end {array} $$ etcétera ...

Esa es la cosa. Sé que los estados que quiero en el lado Q deberían ir de 0 a 7 en binario, pero no puedo entender lo que está sucediendo en el flip flop.

Es decir, tomamos la entrada del reloj como 0 para comenzar, por lo que la primera entrada del flip flop D es 0 0, y esa salida (Q y Q ') es entonces 0 0, y después de eso el reloj es 1 , por lo que el bit Q 'ahora es 1 y el bit Q (el que vuelve a D) ahora es 0, y luego ?????

dosifica la entrada 0 1 - ¿qué pasa? Traté de seguir el razonamiento dado en la conferencia y estoy al final de mi ingenio.

Sé que esto puede parecer algo para principiantes, pero realmente he intentado buscar cosas en línea y no sirve de nada, porque todos parecen utilizar una terminología diferente. Así que imagina que soy el estudiante más tonto y tonto que hayas conocido.

Y sí, se supone que debo usar chancletas D.

    
pregunta Jesse

5 respuestas

1

Pregunta provocativa: ¿has intentado buscar en Google para Flip-flop D counter ? Encontré esto .

El truco es que si realimenta la salida invertida del flip flop a la entrada, obtendrá un circuito que divide la frecuencia del reloj en dos.

El principio no es tan difícil de entender. El flip flop D replica la entrada D a la salida Q cuando el reloj sube. La salida invertida es la opuesta: si la conecta a la entrada, en cada ciclo de reloj, la entrada se invertirá y, por lo tanto, la salida. Esto sucede en cada flanco ascendente, por lo que cada dos flancos de reloj (ascendente y descendente) tiene un borde de salida (ascendente o descendente).

En cascada tres flip flops y tomando sus salidas como los tres bits del valor, obtienes un contador base-8. Puede verlo en la tabla de verdad: Q0 cambia en cada recuento, Q1 cada dos y así sucesivamente.

Es difícil (¿imposible?) describir el comportamiento solo con tablas de verdad, pero básicamente D0 = Q0 ', D1 = Q1' y D2 = Q2 '. Luego, CLK1 = Q0 y CLK2 = Q1.

    
respondido por el clabacchio
0

Simple. La salida del flip flop es exactamente la misma que la entrada en el ciclo del reloj anterior. D significa demora.

Si desea contar, necesita una lógica combinatoria "más 1" que alimente las salidas de vuelta a las entradas.

    
respondido por el Michael Fox
0

Jesse, te aconsejaría que lo construyas como una máquina de estados síncrona. La Q (sus salidas de flip-flop) es el estado actual. La D (las entradas de tus flip-flops) es el estado siguiente. Deberá crear una lógica que, cuando el estado actual sea "0" (000), generará un "1" (001) al estado siguiente (las entradas D). Y desde "1" generarías un "2" (001 a 010) y así sucesivamente.

Puede reconocer que existen otras opciones para hacer un contador binario, como sincronizar un flip-flop desde el flip-flop anterior y alimentar a cada entrada del flip-flop la salida invertida del mismo flip-flop. Eso se llamaría un contador binario en cascada, que es más simple que la versión síncrona (y como tal, muy atractivo en pequeños proyectos de bricolaje), pero es más lento y rompe la regla de diseño síncrono de alimentar a cada flip flop el mismo reloj señal. Y la observación de reglas de diseño sincrónico a menudo se requiere en el diseño del producto para hacer que los productos sean más portátiles y tolerantes a fallas.

    
respondido por el PkP
0

Jesse -

Creo que veo tu problema. Lo que hay que recordar es que la regla para un D FF es muy simple: en cada flanco ascendente del reloj, la entrada se transfiere a la salida. Eso es. Así que cuando tu escribas

"Lo que me cuesta trabajo es que si está sincronizado, las entradas de los relojes a más de un flip flop D son todas iguales, ¿no? Así que D flip flop # 1 da salida a la barra Q, que es uno y Q es cero, pero la barra Q se alimenta nuevamente a D y, por lo tanto, Q se convierte en 1. Bueno, está bien, pero el segundo flip-flop D en la cadena tiene la misma entrada de reloj y probablemente la misma configuración inicial, y para que wold escupiera lo mismo, "

está en lo correcto, suponiendo que la entrada en ambos flipflops es la misma. En su lugar, desea utilizar su lógica para configurar cada flip-flop para proporcionar la salida adecuada (diferente) cuando llegue el siguiente borde.

Para un contador de 2 bits, esto se ve como

simular este circuito : esquema creado usando CircuitLab

Si creas una tabla de verdad, verás que lsb (Q0) voltea todos los relojes, y el msb (Q1) se convierte en 1 para los códigos 01 y 10. Comprueba que este es un contador binario de 2 bits. Extendiendo la lógica a 3 bits, con Q0 y Q1 convirtiéndose en 0 cada vez que Q2 se convierte en 1 se deja como ejercicio.

Mientras estamos en ello, debes acostumbrarte a etiquetar tu bit 0 menos significativo (como en Q0). En tu tabla de verdad propuesta tienes el orden invertido. Este hábito hará que la vida sea más fácil cuando se trata de aritmética.

El enfoque síncrono es más complejo que simplemente alimentar la salida de cada FF al reloj del siguiente (que producirá un contador binario). Sin embargo, es mucho más poderoso y directo cuando se trata de hacer algo más complicado que un simple contador binario, y soluciona una gran cantidad de problemas colectivamente llamados retardo de sesgo. Simplemente confíe en mi palabra: al final de su curso, debería estar cubriendo eso, pero no se preocupe por eso por ahora.

    
respondido por el WhatRoughBeast
-1

Bueno, D flipflip es uno que emitirá cualquier entrada que se alimente. Algo así como si uno ingresa un lógico cuando el reloj sube (o al revés), entonces almacenará uno y entregará uno. hasta la próxima transición.

Es básicamente un flipflop SR. Los datos van a la entrada S y los datos invertidos van a la entrada R

    
respondido por el Habeeb Rahman

Lea otras preguntas en las etiquetas