FLIP-FLOPS Circuitos secuenciales Los circuitos digitales que hasta ahora se han considerado, han sido combinacionales, esto es, las salidas en cualquier momento dependen por completo de las entradas presentes en ese tiempo. Aunque cualquier sistema digital es susceptible de tener circuitos combinacionales, la mayoría de los sistemas que se encuentran en la práctica también incluyen elementos de memoria, los cuales requieren que el sistema se describa en términos de Lógica Secuencial. Un diagrama en bloques de un circuito secuencial consta de un circuito combinacional al que se conectan elementos de memoria para formar una trayectoria de retroalimentación. Los elementos de memoria son dispositivos capaces de almacenar dentro de ellos información binaria. La información binaria almacenada en los elementos de memoria se define como el estado del circuito secuencial. En los circuitos combinacionales las salidas son funciones que dependen únicamente de las entradas actuales al circuito. Pero sin embargo, en muchos sistemas digitales esto no es suficiente, siendo necesario además circuitos capaces de almacenar información, puesto que en ellos las salidas no quedan definidas únicamente por las entradas actuales, sino que dependen también de cuáles fueron los valores de éstas en el pasado. Se trata de los circuitos secuenciales. Ejemplos de la utilización de circuitos secuenciales podemos encontrarlos en la vida diaria: relojes digitales, sistemas de control de semáforos en rutas y líneas férreas, marcadores (deportes). Todos estos sistemas se caracterizan porque pueden ser descritos utilizando el llamado modelo de Huffman. Se trata de un modelo estructural que permite la descripción de un circuito secuencial genérico. Según el modelo, el circuito consta de dos partes: un circuito combinacional C y un conjunto de elementos de memoria M, como muestra la figura. Pues bien, el valor de las salidas depende, a través de la función de salida que implementa el circuito combinacional, no sólo de los valores actuales de las entradas, sino también del contenido actual de los elementos de memoria, En estos elementos, lo que se almacena es el llamado estado actual del sistema secuencial, que puede considerarse como su registro histórico, ya que da cuenta de su evolución anterior. El paso desde el estado actual del sistema a un estado siguiente, viene a su vez definido por la llamada función de transición de estados, que también dependerá no sólo de los valores actuales de las entradas, sino también del propio estado actual.
Centrándonos en la arquitectura de los computadores, componentes básicos como los registros, memorias y la unidad de control, constituyen circuitos secuenciales, aunque de muy diverso grado de complejidad. Los biestables. Clasificación. Un circuito flip-flop puede mantener un estado binario en forma indefinida (en cuanto se suministre potencia al circuito) hasta que recibe la dirección de una señal de entrada para cambiar de estado. La diferencia principal entre los diversos tipos de flip-flops esta en el número de entradas que poseen y en la manera en la cual las entradas afectan el estado binario. Las células elementales de memoria de los circuitos secuenciales se denominan biestables o Flip-Flop. Se caracterizan por ser capaces de adoptar dos estados estables, que se corresponden a los niveles lógicos "0" y "1", que perduran en el tiempo de un modo indefinido, aunque haya desaparecido la excitación que los originó. Es decir: son capaces de memorizar un bit de información. Una estructura con puertas lógicas que consigue el propósito anterior, es un biestable elemental que tiene únicamente dos posibilidades de almacenamiento: estado 0 (Q=O) y estado 1 (Q=1). La realimentación entre las salidas y las entradas garantiza la permanencia de la información almacenada (memorizada) en todo momento del funcionamiento electrónico normal (tensión y corrientes de alimentación adecuadas). Esto no ocurre en los sistemas combinacionales, donde la información a la salida de las puertas se desvirtúa necesariamente al eliminar las excitaciones de entrada. A las señales de control de los biestables se les llama CK (Clock). Estas señales son generalmente periódicas (aunque pueden no serlo) y gobiernan la transición de un estado a otro. Son señales de "sincronismo" que miden el tiempo del circuito. La sincronización es la técnica principal para hacer evolucionar un circuito secuencial, podemos añadir dos entradas asíncronas de reset CLR y set PRE. El objetivo de estas señales, es que al tener estos dispositivos información almacenada que en un momento dado puede ser desconocida, se hace necesario el poderlos inicializar a un valor conocido. Así con la señal CLEAR ponemos a 0 la salida y con la señal PRE a 1. Flip Flop tipo RS Como ya se menciono anteriormente, estos circuitos pueden construirse con compuertas NAND o dos compuertas NOR. Cada circuito forma un flip-flop básico, La conexión y el acoplamiento cruzado mediante la salida de una compuerta a la entrada de otra constituye una trayectoria de retroalimentación. Por esta razón los circuitos se clasifican como secuenciales asíncronos. Cada flip-flop tiene dos salidas Q y Q negada, y dos entradas, SET para ajustar y RESET para restaurar. A este tipo de flip-flop se les llama RS. La operación del FF RS disparado por flanco es similar a la operación analizada anteriormente, con la diferencia de que el cambio de estado se efectúa en el flanco de bajada del pulso de reloj. El estado S=R=1 es un estado prohibido. La tabla característica resume el comportamiento del FF tipo RS disparado por flanco negativo. S R Qn+1 0 0 Qn 0 1 0 1 0 1 1 1?
Flip Flop tipo J K Un flip-flop JK es un refinamiento del RS ya que el estado indeterminado del RS se soluciona en el JK. Las entradas J y K se comportan como las entradas S y R para ajustar y despejar el flipflop. Cuando se aplican señales de entrada en forma simultanea a J como a k, el flip-flop cambia a su estado complementario, esto es si Q=1, cambia a Q=0 y viceversa. La operación de un FF tipo J K es muy similar a la de un FF RS. La única diferencia es que no tiene un estado inválido. Para la condición J=K=1 el FF complementa el estado presente. La tabla característica resume el comportamiento del FF tipo J K disparado por flanco negativo. Flip Flop tipo D J K Qn+1 0 0 Qn 0 1 0 1 0 1 1 1 El flip-flop tipo D recibe esta denominación debido a su capacidad de transferir "datos" en el flipflop. En forma básica es un flip-flop RS con un inversor en la entrada R, El inversor agregado reduce el número de entradas de dos a uno. La operación de un FF tipo D es mucho mas simple. Sólo posee una entrada además de la del reloj. Se le denomina "data" y es muy útil cuando queremos almacenar un dato de un bit (0 o 1). Si hay un 1 en la entrada D cuando se aplica el pulso de reloj la salida Q toma el valor de 1 (SET) y lo almacena. Si hay un 0 en la entrada D, cuando se aplica el pulso de reloj la salida toma el valor de 0 (RESET) y lo almacena. El cambio en la salida del FF se efectúa en el flanco de bajada del reloj. La tabla característica resume el comportamiento del FF tipo D disparado por flanco negativo. D Qn+1 0 0 1 1 Flip Flop tipo T Sólo posee una entrada además de la del reloj. Se le denomina "toggle". Si hay un 0 en la entrada T, cuando se aplica el pulso de reloj la salida mantiene el valor del estado presente. Si hay un 1 se complementa. El flip-flop tipo T es una versión de una sola entrada del flip-flop JK, el flip-flop T se obtiene mediante un tipo JK si ambas entradas se unen. La denominación T proviene de la capacidad del flip-flop para conmutar (toggle), o cambiar de estado. Sin importar el estado presente del flip-flop, asume el estado complementario cuando ocurre el pulso de reloj mientras la entrada T es lógica 1 La tabla característica resume el comportamiento del FF tipo T disparado por flanco negativo.
T Qn+1 0 Qn 1 Para el caso de los FF disparados por flanco positivo la diferencia es que el cambio de estado ocurre en la subida del pulso de reloj. La diferencia básica entre flip flops disparados por flanco y los disparados por nivel, es que en los disparados por flanco los cambios se efectúan en el frente de bajada o en el de subida del pulso de reloj, y aunque las entradas cambien de valor durante la duración del pulso, no se efectúan cambios hasta el siguiente pulso de reloj. En los flip flops disparados por nivel en cambio, el flip flop responde a los cambios de las entradas mientras el pulso de reloj está en 1. En cuanto a la representación los FF disparados por nivel no poseen el símbolo > en la entrada de reloj. DISPARADO POR NIVEL DISPARADO POR FLANCO POSITIVO DISPARADO POR FLANCO NEGATIVO El estado de un flip flop cambia por un cambio momentáneo en sus entradas. Este cambio se denomina disparo. En los básicos (RS con compuertas NAND o NOR) se necesitaba un disparo de entrada definido por un cambio de nivel. Este nivel debe regresar a su nivel inicial antes de aplicar otro disparo. Los FF con reloj eran disparados por pulsos. La realimentación entre la circuitería combinacional y el elemento de memoria puede producir inestabilidad, haciendo que el FF pueda cambiar varias veces durante la duración de un pulso de reloj por lo que el intervalo de tiempo desde la aplicación del pulso hasta que ocurre la transición de la salida, es un factor crítico. Una manera de resolver este problema es hacer que los FF sean sensitivos a la transición del pulso más que a la duración. Una manera de hacerlo da origen los flip flops maestro esclavo. Flip-Flop maestro-esclavo Un flip flop maestro-esclavo se construye con dos FF, uno sirve de maestro y otro de esclavo. Durante la subida del pulso de reloj se habilita el maestro y se deshabilita el esclavo. La información de entrada es transmitida hacia el FF maestro. Cuando el pulso baja nuevamente a cero se deshabilita el maestro lo cual evita que lo afecten las entradas externas y se habilita el esclavo. Entonces el esclavo pasa al el mismo estado del maestro. El comportamiento del flip-flop maestro-esclavo que acaba de describirse hace que los cambios de estado coincidan con la transición del flanco negativo del pulso. Este tipo de biestables controlados por flanco se diseñan a partir de dos biestables elementales RS sin entrada de control, conectados en cascada, más cierta lógica combinacional, como se muestra en la figura. Uno de los biestables trabaja como maestro, y el otro como esclavo. Cuando CK está a 1, la información de entrada pasa al biestable maestro, mientras que el esclavo permanece cerrado, con lo que la salida no sufre variación. Cuando CK baja a 0 (flanco de bajada), la información del maestro pasa al esclavo y se cierra el maestro, con lo cual, los datos que en este instante estén en la entrada no pueden progresar, mientras que los datos que capturó el maestro y que ahora se transfieren al esclavo, son los que aparecen a la salida. Cuando CK vuelva a pasar a 1, se cerrará el esclavo con la información transferida anteriormente del maestro y que será la que esté presente en la salida, y éste se volverá a abrir. Luego la transferencia
completa de la información, desde la entrada a la salida, sólo tendrá lugar durante los flancos de bajada de la señal CK. Flip-Flop disparado por flanco: Otro tipo de FF que sincroniza el cambio de estado durante la transición del pulso de reloj es el flip flop disparado por flanco. Cuando la entrada de reloj excede un nivel de umbral específico, las entradas son aseguradas y el FF no se ve afectado por cambios adicionales en las entradas hasta tanto el pulso de reloj no llegue a cero y se presente otro pulso. Algunos FF cambian de estado en la subida del pulso de reloj, y otros en el flanco de bajada. Los primeros se denominaran Flip flop disparados por flanco positivo y los segundos Flip flops disparados por flanco negativo. La distinción entre unos y otros se indicará con la presencia o ausencia de una negación en la entrada de reloj como se muestra en la figura. El FF JK puede considerarse como el flip flop universal puesto que puede configurarse para obtener los demás flip-flops. En el cuadro a continuación se muestra el equivalente de cada uno de los tipos de flip flop en función del J K.
Circuitos sincrónicos y asincrónicos Hay dos tipos principales de circuitos secuenciales. Su clasificación depende del temporizado de sus señales. Un circuito secuencial asíncrono es un sistema cuyo comportamiento puede definirse por el conocimiento de sus señales en instantes discretos de tiempo. El comportamiento de un circuito secuencial asíncrono depende del orden en el cual cambian sus señales de entrada y puede afectarse en cualquier instante de tiempo. Los elementos de memoria que por lo común se utilizan en los circuitos secuenciales asíncronos son dispositivos de retardo de tiempo. La capacidad de memoria de un dispositivo de retardo de tiempo se debe al hecho de que toma un tiempo finito para que la señal se propague a través del dispositivo. Un sistema lógico secuencial asíncrono, por definición, debe emplear señales que afecten los elementos de memoria solo en instantes discretos de tiempo. Una forma de lograr este objetivo es usar pulsos de duración limitada a través del sistema, de modo que una amplitud de pulso represente la lógica 1 y otra amplitud (o la ausencia de pulso) represente la lógica 0. Los sistemas lógicos secuenciales asíncronos utilizan amplitudes fijas, como niveles de voltaje para señales binarias. La sincronización se logra a través de un dispositivo sincronizador llamado reloj maestro generador, el cual genera un tren periódico de pulsos de reloj. Los pulsos de reloj se distribuyen a través del sistema de tal forma que los elementos de memoria están afectados solo por la llegada del pulso de sincronización. Ejercitación: Complete el diagrama de tiempos para un flip flop JK: