Introducción a la lógica programable (2) - Flip-flops

En la primera lección de este curso de introducción a la lógica programable hablamos sobre las compuertas lógicas.

Veamos el tema siguiente:


El Flip-flop D

El flip-flop D es el "rey" de la lógica programable. A lo largo del curso, vamos a ver por qué.

Pero antes, es necesaria una aclaración muy importante. Hay dos tipos de lógica, la lógica asincrónica y la lógica sincrónica. Las compuertas lógicas, de las que hablamos antes, realizan siempre lógica asincrónica.

Los flip-flops pueden ser asincrónicos o síncronos. A día de hoy, para todo lo que es lógica programable, se prefiere la lógica sincrónica. A lo largo del curso vamos a ver por qué.

En la figura pueden ver un flip-flop D síncrono:

Figura 1 - Flip flop D síncrono

El flip-flop tipo D tiene dos entradas y una salida. La entrada "D" es la entrada de datos y la entrada "clk" (abreviatura de clock, reloj). La única salida está etiquetada "Q".

La señal de reloj, clk, es normalmente una onda cuadrada periódica. Uno de los parámetros más importantes de dicha señal es su frecuencia. Una señal periódica es una señal que se repite cada un tiempo denominado período y normalmente simbolizado con la letra T. La inversa del período es la frecuencia f =1/T.

En electrónica digital moderna es común trabajar con señales de períodos del orden de us y ns. Un microsegundo (us) es la millonésima parte de un segundo, y un nanosegundo es la milésima parte de un microsegundo, o la mil millonésima parte de un segundo.

Las frecuencias normalmente se miden en hertz o hercios (abreviado Hz). Una señal con período de 1 segundo tiene una frecuencia de 1Hz. Una señal con un período de 1us tiene una frecuencia de un millón de Hz, pero para no usar números tan grandes, se usa MHz. Una frecuencia de 1000MHz se suele abreviar 1GHz y corresponde a un período de 1ns.

En la figura siguiente pueden ver una señal típica de reloj. Por simplicidad, en muchos libros y herramientas de simulación digital se presenta a la señal de reloj como una onda cuadrada. Pero en la realidad, si medimos con un osciloscopio una señal de reloj veremos algo parecido a lo que se muestra en la figura, en que la onda pasa de uno a cero y de cero a uno con una cierta pendiente.

Figura 2 - Señal de reloj


La señal de reloj es una especie de barrera. Cuando la señal cambia de bajo a alto, es como si subiera la barrera. El estado de la señal D pasa a Q. Y nuevamente "baja la barrera". Mientras la "barrera está baja" no interesa lo que haga la señal D. La señal de salida Q permanece en el valor que estaba D cuando se "subió la barrera" (cuando la señal de reloj pasa de bajo a alto). Esto se muestra en el diagrama siguiente:

Figura 3 - Ondas en un FF síncrono de tipo D


En la figura 3 vemos la entrada de datos D, la salida de datos Q, y la señal de reloj CLK. En el primer flanco de CLK, la entrada D está en 1, por lo que un tiempo después del flanco, la salida Q también pasa a 1. En (2) la entrada sigue estando a 1, por lo que la salida Q también permanece en 1. Cuando llega el flanco (3), la entrada está a cero, por lo que la salida Q también cambia a cero. En (4) la entrada sigue en cero y la salida también.



Entre los pulsos (4) y (5) pasa algo interesante. La entrada D ha cambiado. Sin embargo, para cuando llega el pulso (5), la entrada a vuelto a nivel bajo. El pequeño pulso a la entrada no aparece a la salida. Esto puede parecer una desventaja, pero en la mayoría de los casos no lo es. Paciencia, ya se explicará en el resto del curso.

Cuando llega el pulso (6) la entrada está estabilizada en 1, por lo que la salida también pasa a 1.

El flanco de reloj es como el obturador de una cámara fotográfica. "Saca una foto" del estado de la entrada y mantiene el valor "fotografiado" en la salida hasta el próximo flanco.

Por último, tres conceptos muy importantes sobre el flip-flop síncrono D. Los veremos en la figura siguiente:


Figura 4 - Parámetros del FF tipo D

El primer parámetro es el tiempo de setup. Dijimos que el flanco de reloj es como el obturador de una cámara fotográfica. Pero para que la foto "no salga movida", la entrada D debe estar estable en un valor desde un tiempo tsetup, como se ve en la figura. Podemos ver que la entrada D está en 1 durante todo el tiempo desde la línea verde que marca el tiempo de setup hasta que llega el flanco del reloj.


El segundo parámetro es similar al setup, pero en este caso lo que se pide es que la señal no cambie un tiempo thold después de que el flanco de reloj ha llegado.

Por último, algo que ya vimos en la figura 3. A la salida Q le lleva un cierto tiempo estabilizarse. Ese tiempo recibe el nombre de tiempo de propagación (de la entrada a la salida) y en inglés lo podrán ver frecuentemente como tco (time from clock to output, tiempo desde el flanco de reloj a la salida).

Por último en la figura se ven dos casos malos, en que la señal no ha cumplido el requisito de setup o hold. Uds. quizá se preguntarán que pasará en esos casos. Lo veremos más adelante.

En el próximo capítulo hablaremos sobre fundamentos de Electrónica Digital y Lógica Programable.

¡Hasta la próxima!


Te interesa la tecnología de FPGAs? Te invito a visitar otro blog mío (en inglés)


Comentarios

Entradas populares de este blog

Introducción a la lógica programable (1) - Compuertas lógicas

Matemática Recreativa: Trepando las dimensiones (primera parte)

Introducción a la lógica de relés