Un biestable (flip-flop en inglés), es un multivibrador capaz de permanecer en uno de dos estados posibles durante un tiempo indefinido en ausencia de perturbaciones. Esta característica es ampliamente usada en electrónica digital para memorizar información. El paso de un estado a otro se realiza variando sus entradas. Dependiendo del tipo de dichas entradas los biestables se dividen en:
Si las entradas de control dependen de la de sincronismo se denominan síncronas y en caso contrario asíncronas. Por lo general, las entradas de control asíncronas prevalecen sobre las síncronas.
La entrada de sincronismo puede ser activada por nivel (alto o bajo) o por flanco (de subida o de bajada). Dentro de los biestables síncronos activados por nivel están los tipos RS y D, y dentro de los activos por flancos los tipos D, T y JK.
Los biestables síncronos activos por flanco (flip-flop) se crearon para eliminar las deficiencias de los latches (biestables asíncronos o sincronizados por nivel).
Un biestable puede usarse para almacenar un bit. La información contenida en muchos biestables puede representar el estado de un secuenciador, el valor de un contador, un carácter ASCII en la memoria de un ordenador, o cualquier otra clase de información.
Un uso corriente es el diseño de máquinas de estado finitas electrónicas. Los biestables almacenan el estado previo de la máquina que se usa para calcular el siguiente.
El T es útil para contar. Una señal repetitiva en la entrada de reloj hace que el biestable cambie de estado por cada transición alto-bajo si su entrada T está a nivel 1. La salida de un biestable puede conectarse a la entrada de reloj de la siguiente y así sucesivamente. La salida final del conjunto considerado como una cadena de salidas de todos los biestables es el conteo en código binario del número de ciclos en la primera entrada de reloj hasta un máximo de 2n-1, donde n es el número de biestables usados.
Uno de los problemas con esta configuración de contador (ripple counter en inglés) es que la salida es momentáneamente inválida mientras los cambios se propagan por la cadena justo después de un flanco de reloj. Hay dos soluciones a este problema. La primera, es muestrear la salida sólo cuando se sabe que es válida. La segunda, más compleja y ampliamente usada, es usar un tipo diferente de contador síncrono, que tiene una lógica más compleja para asegurar que todas las salidas cambian en el mismo momento predeterminado, aunque el precio a pagar es la reducción de la frecuencia máxima a la que puede funcionar.
Una cadena de biestables T como la descrita anteriormente también sirve para la división de la frecuencia de entrada entre 2n, donde n es el número de biestables entre la entrada y la última salida.
El Flip-flop D (Delay) resulta muy útil cuando se necesita almacenar un único bit de datos (1 o 0). Si se añade un inversor a un flip-flop SR obtenemos un flip-flop D básico. El funcionamiento de un dispositivo activado por el flanco negativo es, por supuesto, idéntico, excepto que el disparo tiene lugar en el flanco de bajada del impulso del reloj. Recuerde que Q sigue a D en cada flanco del impulso de reloj.
Para ello, el dispositivo de almacenamiento temporal es de dos estados (alto y bajo), cuya salida adquiere el valor de la entrada D cuando se activa la entrada de sincronismo, C. En función del modo de activación de dicha entrada de sincronismo, existen dos tipos:
La ecuación característica del biestable D que describe su comportamiento es:
Q+ = D
D | Q | Q+ |
---|---|---|
0 | x | 0 |
1 | x | 1 |
Flip-Flop tipo T (toggle) se obtiene del tipo JK cuando las entradas J y K se conectan para proporcionar una entrada única designada por T. El flip-flop T, por lo tanto, tiene sólo dos condiciones. Cuando T = 0 (J = K = 0) una transición de reloj no cambia el estado del flip-flop. Cuando T = 1 (J = K = 1) una transición de reloj complementa el estado del flip-flop. Su unidad básica se dibuja a continuación que, como actúa por "niveles" de amplitud (0-1) recibe el nombre de Flip-Flop T activado por nivel (FF-T-AN). Cuando no se especifica este detalle es del tipo Flip-Flop T maestro-esclavo (FF-T-ME).
Características del funcionamiento del flip flop T: El flip flop T cambia de estado (toggle), cada vez que la entrada de reloj se dispara. • Si el reloj se pasa de (0) a (1), el valor que almacena el flip flop permanece igual. • Si el valor del bit ‘T’ es (1) el valor de la salida cambia, al (0). • Un flip flop T se puede construir a partir de un flip flop JK, conectando ambos pines juntos. Este montaje presenta un flip flop tipo T implementado con compuertas XOR (arriba) y con compuertas NAND (abajo).
Q+ = T XOR Q
T | Q | Q+ |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
El flip-flop JK es versátil y es uno de los tipos de flip-flop más usados. Su funcionamiento es idéntico al del flip-flop SR en las condiciones SET, RESET y de permanencia de estado. La diferencia está en que el flip-flop JK no tiene condiciones no válidas como ocurre en el SR.
Este dispositivo de almacenamiento es temporal que se encuentra dos estados (alto y bajo), cuyas entradas principales, J y K, a las que debe el nombre, permiten al ser activadas:
Si no se activa ninguna de las entradas, el biestable permanece en el estado que poseía tras la última operación de borrado o grabado. A diferencia del biestable RS, en el caso de activarse ambas entradas a la vez, la salida adquirirá el estado contrario al que tenía.
La ecuación característica del biestable JK que describe su comportamiento es:
Q+ = J*!Q + !K*Q
J | K | Q | Q+ |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | x | 0 |
1 | 0 | x | 1 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
Flip flop tipo Set-Reset
S | R | Q | Q+ |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 |
0 | 0 | 1 | 1 |
1 | 1 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 1 | 0 |