You are on page 1of 27

Biestable

R1, R2 = 1 kΩ
R3, R4 = 10 kΩ

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.
1
Esta
característica es ampliamente utilizada 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:
 Asíncronos: sólo tienen entradas de control. El más empleado es el biestable RS.
 Síncronos: además de las entradas de control posee una entrada de sincronismo o de
reloj. 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 JK, T y D.
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).
Índice
 1 Biestable RS
o 1.1 Biestable RS (Set Reset) asíncrono
o 1.2 Biestable RS (Set Reset) síncrono
 2 Biestable D (Data o Delay)
 3 Biestable T (Toggle)
 4 Biestable JK
o 4.1 Biestable JK activo por flanco
o 4.2 Biestable JK Maestro-Esclavo
 5 Ejemplo con componentes discretos
 6 Aplicación
 7 Secuenciación y metaestabilidad
 8 Referencias
 9 Véase también
Biestable RS
Descripción


Cronograma del biestable RS.
Dispositivo de almacenamiento temporal de 2 estados (alto y bajo), cuyas entradas
principales permiten al ser activadas:
 R: el borrado (reset en inglés), puesta a 0 ó nivel bajo de la salida.
 S: el grabado (set en inglés), puesta a 1 ó nivel alto de la salida
 S: el mundo (stopen inglés)
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. En ningún caso deberían activarse ambas
entradas a la vez, ya que esto provoca que las salidas directa (Q) y negada (Q') queden con
el mismo valor: a bajo, si el flip-flop está construido con puertas NOR, o a alto, si está
construido con puertas NAND. El problema de que ambas salidas queden al mismo estado
está en que al desactivar ambas entradas no se podrá determinar el estado en el que
quedaría la salida. Por eso, en las tablas de verdad, la activación de ambas entradas se
contempla como caso no deseado (N. D.).
Biestable RS (Set Reset) asíncrono
Sólo posee las entradas R y S. Se compone internamente de dos puertas lógicas NAND o
NOR, según se muestra en la siguiente figura:

Biestables RS con puertas NOR (a), NAND (c) y sus símbolos normalizados respectivos
(b) y (d).
Tabla de verdad biestable RS
R S Q (NOR) Q' (NAND)
0 0 q N. D.
0 1 1 0
1 0 0 1
1 1 N. D. q
N. D.= Estado no deseado q= Estado de memoria
Biestable RS (Set Reset) síncrono

Circuito Biestable RS síncrono a) y esquema normalizado b).
Además de las entradas R y S, posee una entrada C de sincronismo cuya misión es la de
permitir o no el cambio de estado del biestable. En la siguiente figura se muestra un
ejemplo de un biestable síncrono a partir de una asíncrona, junto con su esquema
normalizado:
Su tabla de verdad es la siguiente:
Tabla de verdad biestable RS
C R S Q (NOR)
0 X X q
1 0 0 q
1 0 1 1
1 1 0 0
1 1 1 N. D.
X=no importa
Biestable D (Data o Delay)

Símbolos normalizados: Biestables D a) activo por nivel alto y b) activo por flanco de
subida.
El flip-flop D 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 S-R 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:
 Activo por nivel (alto o bajo), también denominado registro o cerrojo (latch en
inglés).
 Activo por flanco (de subida o de bajada).
La ecuación característica del biestable D que describe su comportamiento es:

y su tabla de verdad:
D Q Q
siguiente

0 X 0
1 X 1
X=no importa
Esta báscula puede verse como una primitiva línea de retardo o una retención de orden cero
(zero order hold en inglés), ya que los datos que se introducen, se obtienen en la salida un
ciclo de reloj después. Esta característica es aprovechada para sintetizar funciones de
procesamiento digital de señales (DSP en inglés) mediante la transformada Z.
Ejemplo: 74LS74
Biestable T (Toggle)

Símbolo normalizado: Biestable T activo por flanco de subida.
Dispositivo de almacenamiento temporal de 2 estados (alto y bajo). El biestable T cambia
de estado ("toggle" en inglés) cada vez que la entrada de sincronismo o de reloj se dispara
mientras la entrada T está a nivel alto. Si la entrada T está a nivel bajo, el biestable retiene
el nivel previo. Puede obtenerse al unir las entradas de control de un biestable JK, unión
que se corresponde a la entrada T. No están disponibles comercialmente.
La ecuación característica del biestable T que describe su comportamiento es:

y la tabla de verdad:
T Q Q
siguiente

0 0 0
0 1 1
1 0 1
1 1 0
Biestable 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 S-R en las condiciones SET, RESET y de permanencia de estado. La
diferencia está en que el flip-flop J-K no tiene condiciones no válidas como ocurre en el S-
R.
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:
 J: El grabado (set en inglés), puesta a 1 ó nivel alto de la salida.
 K: El borrado (reset en inglés), puesta a 0 ó nivel bajo de la salida.
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:

Y su tabla de verdad es:
J K Q Q
siguiente

0 0 0 0
0 0 1 1
0 1 X 0
1 0 X 1
1 1 0 1
1 1 1 0
X=no importa
Una forma más compacta de la tabla de verdad es (Q representa el estado siguiente de la
salida en el próximo flanco de reloj y q el estado actual):
J K Q
0 0 q
0 1 0
1 0 1
1 1

El biestable se denomina así por Jack Kilby, el inventor de los circuitos integrados en 1958,
por lo cual se le concedió el Premio Nobel en física de 2000.

Biestable JK activo por flanco

Símbolos normalizados: Biestables JK activo a) por flanco de subida y b) por flanco de
bajada
Junto con las entradas J y K existe una entrada C de sincronismo o de reloj cuya misión es
la de permitir el cambio de estado del biestable cuando se produce un flanco de subida o de
bajada, según sea su diseño. Su denominación en inglés es J-K Flip-Flop Edge-Triggered.
De acuerdo con la tabla de verdad, cuando las entradas J y K están a nivel lógico 1, a cada
flanco activo en la entrada de reloj, la salida del biestable cambia de estado. A este modo de
funcionamiento se le denomina modo de basculación (toggle en inglés).




Ejemplo: 74LS73

Biestable JK Maestro-Esclavo

Símbolos normalizados: Biestable JK Maestro-Esclavo a) activo por nivel alto y b) activo
por nivel bajo
Aunque aún puede encontrarse en algunos equipos, este tipo de biestable, denominado en
inglés J-K Flip-Flop Master-Slave, ha quedado obsoleto ya que ha sido reemplazado por el
tipo anterior.
Su funcionamiento es similar al JK activo por flanco: en el nivel alto (o bajo) se toman los
valores de las entradas J y K y en el flanco de bajada (o de subida) se refleja en la salida.




Otra forma de expresar la tabla de verdad del biestable JK es mediante la denominada tabla
de excitación:
q Q J K

0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0

Siendo q el estado presente y Q el estado siguiente.
La ecuación característica del flip flop jk es: Q(t+1)=JQ´+K´Q la cual se obtiene de la tabla
característica del flip flop.
Ejemplo con componentes discretos

Figura 1.- Circuito multivibrador biestable
Aunque, en general, los biestables utilizados en la práctica están implementados en forma
de circuitos integrados, en la Figura 1 se representa el esquema de un sencillo circuito
multivibrador biestable, realizado con componentes discretos, cuyo funcionamiento es el
siguiente:
Al aplicar la tensión de alimentación (Vcc), los dos transistores iniciaran la conducción, ya
que sus bases reciben un potencial positivo, TR-1 a través del divisor formado por R-3, R-4
y R-5 y TR-2 a través del formado por R-1, R-2 y R-6, pero como los transistores no serán
exactamente idénticos, por el propio proceso de fabricación y el grado de impurezas del
material semiconductor, uno conducirá antes o más rápido que el otro.
Supongamos que es TR-1 el que conduce primero. El voltaje en su colector disminuirá,
debido a la mayor caída de tensión en R-1, por lo que la tensión aplicada a la base de TR-2
a través del divisor formado por R-2, R-6, disminuirá haciendo que este conduzca menos.
Esta disminución de conducción de TR-2 hace que suba su tensión de colector y por tanto
la de base de TR-1, este proceso llevará finalmente al bloqueo de TR-2 (salida Y a nivel
alto).
Pero si ahora aplicamos un impulso de disparo de nivel alto por la entrada T, a través de los
condensadores C-1 y C-2 pasará a las bases de ambos transistores. En el caso de TR-1 no
tendrá más efecto que aumentar su tensión positiva, por lo que este seguirá conduciendo.
En la base de TR-2 el impulso hará que este transistor conduzca, realizándose un proceso
similar al descrito al principio, cuando el que conducía primero era TR-1, que terminará
bloqueando a este y dejando en conducción a TR-2 (salida Y a nivel bajo).
La secuencia descrita se repetirá cada vez que se aplique un impulso en T. La salida cambia
de estado con el impulso de disparo y permanece en dicho estado hasta la llegada del
siguiente impulso, momento en que volverá a cambiar.
La caída de tensión en la resistencia común de emisores (R-7) elimina la indecisión del
circuito y aumenta la velocidad de conmutación.
Aplicación
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 2
n-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 esta es válida. La segunda, más compleja y
ampliamente usada, es utilizar 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 2
n
, donde n es el número de biestables entre la entrada y la
última salida.
Secuenciación y metaestabilidad
Los biestables síncronos son propensos a sufrir un problema denominado metaestabilidad,
que ocurre cuando una entrada de datos o de control está cambiando en el momento en el
que llega un flanco de reloj. El resultado es que la salida puede comportarse de forma
imprevista, tardando muchas veces más de lo normal en estabilizarse al estado correcto, o
incluso podría oscilar repetidas veces hasta terminar en su estado estable. En un ordenador
esto puede suponer la corrupción de datos o causar un fallo de programa.
En muchos casos, la metaestabilidad en los biestables se puede evitar asegurándose de que
los datos y las entradas de control se mantienen constantes durante un periodo de tiempo
especificado antes y después del flanco de reloj, denominados setup time (t
su
) y hold time
(t
h
) respectivamente. Esos tiempos están establecidos en la hoja de datos del dispositivo en
cuestión, y son típicamente entre unos pocos nanosegundos y unos pocos cientos de
picosegundos para dispositivos modernos.
Desafortunadamente, no siempre es posible cumplir estos requisitos, porque los biestables
pueden estar conectados a entradas en tiempo real que son asíncronas, y pueden cambiar en
cualquier momento fuera del control del diseñador. En este caso, lo único que puede
hacerse es reducir la probabilidad de error a un determinado nivel, dependiendo de la
fiabilidad que se desee del circuito. Una técnica para reducir la incidencia es conectar dos o
más biestables en cadena, de forma que la salida de una se conecta a la entrada de la
siguiente, y con todos los dispositivos compartiendo la misma señal de reloj. De esta forma
la probabilidad de un suceso metaestable puede reducirse considerablemente, pero nunca
podrá eliminarse por completo.
Existen biestables robustos frente a la metaestabilidad, que funcionan reduciendo los
tiempos de setup y hold en todo lo posible, pero incluso estos no pueden eliminar por
completo el problema. Esto es debido a que la metaestabilidad es mucho más que un
problema de diseño. Cuando el flanco de reloj y la entrada de datos están suficientemente
juntos, el biestable tiene que elegir el evento que ocurrió antes. Y por más rápido que se
haga el dispositivo, siempre existe la posibilidad de que sucedan lo suficientemente juntos
como para que no se pueda detectar cual es el que ocurrió primero. Así pues, es
lógicamente imposible el construir un biestable a prueba de metaestabilidad.
Otro parámetro temporal importante de un biestable es el retardo reloj-a-salida (clock-to-
output t
CO
) o retardo de propagación (propagation delay t
P
), que es el tiempo que el
biestable tarda en cambiar su salida tras un flanco de reloj. El tiempo para una transición
alto-a-bajo (t
PHL
) es a veces diferente del de las transiciones de bajo-a-alto (t
PLH
).
Cuando se conectan biestables en cadena, es importante asegurar que el t
CO
del primero es
Flip-Flop J-K
El "flip-flop" J-K, es el más versátil de los flip-flops
básicos. Tiene el carácter de seguimiento de entrada
del flip-flop D sincronizado, pero tiene dos
entradas, denominadas tradicionalmente J y K. Si J
y K son diferentes, la salida Q toma el valor de J
durante la subida del siguiente pulso de
sincronismo.
Examinar Estructura Aplicaciones


Si J y K son ambos low (bajo), entonces no se produce cambio alguno. Si J y K son ambos
high (alto), entonces en la siguiente subida de clock la salida cambiará de estado. Puede
realizar las funciones del flip-flop set/reset y tiene la ventaja de que no hay estados
ambiguos. Puede actuar tambien como un flip-flop T para conseguir la acción de
permutación en la salida, si se conectan entre sí las entradas J y K. Esta aplicación de
permutar el estado, encuentra un uso extensivo en los contadores binarios.
El flip-flop J-K. Contadores




En este capítulo estudiaremos uno de los elementos más importantes, si no el más
importante, en el arsenal de los bloques fundamentales de los circuitos lógicos conocidos
como secuenciales. Este elemento es el flip-flop J-K y se representa de la manera
siguiente:


Como puede verse en el símbolo del flip-flop J-K, este posee dos salidas complementarias
Q y Q al igual que el flip-flop R-S.

Las características del flip-flop J-K son las siguientes:

(1) Cuando J=1 y K=1, al ir la entrada de la terminal de reloj C (clock) de 1 a 0 nada ocurre
y el flip-flop J-K retiene el estado que poseía anteriormente.

(2) Cuando J=1 y K=0, al ir la entrada C de 1 a 0 el flip-flop J-K tomará el estado Q=1
independientemente del estado en el que se encontraba anteriormente.

(3) Cuando J=0 y K=1, al ir la entrada C de 1 a 0 el flip-flop J-K tomará el estado Q=0
independientemente del estado en el que se encontraba anteriormente.

(4) Cuando J=0 y K=0, al ir la entrada C de 1 a 0 el flip-flop J-K tomará un estado opuesto
a aquél en el cual se encontraba anteriormente. Esto quiere decir que si antes de la
transición en la terminal C de 1 a 0 el flip-flop J-K se encontraba en el estado Q=1,
entonces tomará el estado Q=0 después de la transición. Asimismo, si se encontraba en el
estado Q=0 antes de la transición, entonces tomará el estado Q=1 después de la transición.

Obsérvese que la transición de 0 a 1 en la terminal C no produce efecto alguno en la salida
Q. Unicamente la transición de 1 a 0 es la que puede producir efecto alguno. Puesto que es
una caída de 1 a 0 o una transición negativa la que produce esta acción, este flip-flop J-K
es reconocido como uno accionado por una señal de reloj negativa en la terminal de “reloj”
(clock).

Existen también en el mercado flip-flops J-K en los cuales la transición que produce la
acción en la terminal de salida Q es una transición positiva de 0 a 1 y no la transición
negativa de 1 a 0 (precaución: aquí no hay voltajes negativos involucrados). Estos flip-
flops J-K son conocidos en el mercado como flip-flops accionados por una señal de reloj
positiva.

Obsérvese cuidadosamente que es únicamente una transición en la terminal C la que puede
producir acción alguna a la salida del flip-flop J-K. Si la entrada en la terminal C
permanece constante, cualesquier variación en las terminales J yK no podrá producir efecto
alguno en la salida Q del flip-flop J-K.

En forma similar al flip-flop R-S, el flip-flop J-K también posee dos salidas
complementarias, Q y Q, con la diferencia de que el flip-flop J-K no posee estados no-
definidos.

Repasemos con la ayuda de gráficos animados usando foquitos encendidos y apagados
algunas de las características del flip-flop J-K dadas arriba, empezando por la primera que
nos dice que cuando J=1 y K=1 entonces al ir la entrada de la terminal de reloj C (clock) de
1 a 0 nada ocurre y el flip-flop J-K retiene el estado que poseía anteriormente (en este
ejemplo, el flip-flop J-K se encuentra en el estado Q=1; y si se encontrara en el estado Q=0
también permanecería en dicho estado sin importar el número de pulsos recibidos en la
entrada C):


Veamos ahora lo que ocurre de acuerdo a la segunda característica que nos dice que cuando
J=1 y K=0, al ir la entrada C de 1 a 0 el flip-flop J-K tomará el estado Q=1
independientemente del estado en el que se encontraba anteriormente (en este caso se
supondrá que el flip-flop J-K está inicialmente en el estado Q=0):


Repasemos ahora lo que ocurre de acuerdo a la tercera característica que nos dice que
cuando J=0 y K=1, al ir la entrada C de 1 a 0 el flip-flop J-K tomará el estado Q=0
independientemente del estado en el que se encontraba anteriormente (en este caso se
supondrá que el flip-flop J-K está inicialmente en el estado Q=1, y para mayor simplicidad
visual se indicará únicamente el “final” de la secuencia de estados, entendiéndose tras esto
que la misma secuencia se volverá a repetir):


Aún más interesante es la cuarta característica que nos dice que cuando J=0 y K=0
entonces al ir la entrada C de 1 a 0 el flip-flop J-K tomará un estado opuesto a aquél en el
cual se encontraba anteriormente:


El flip-flop J-K, al igual que todos los bloques fundamentales dentro de los circuitos
lógicos, se construye utilizando funciones lógicas básicas.

Consideramos a continuación una configuración hecha exclusivamente a base de flip-flops
J-K:


Para analizar cualesquier circuito lógico que contenga flip-flops J-K, la regla es
extremadamente sencilla: Suponemos que todos los flip-flops J-K de la configuración están
en el estado Q=0. Aplicamos varias transiciones negativas en la terminal de entrada (o
terminal "reloj") C y hacemos una lista de los estados que adquieren los flip-flops J-K de
la configuración después de haber ocurrido cada transición. Continuamos el
procedimiento hasta que todos los flip-flops J-K de la configuración original hayan
regresado al estado original Q=0.

Teniendo lo anterior en cuenta, empezamos suponiendo que la salida del primer flip-flop J-
K es Q
1
=0 y que la salida del segundo flip-flop J-K es también Q
2
=0. En otras palabras, el
estado original de la configuración es Q
1
Q
2
=00.

Vemos entonces en el diagrama de la configuración cuáles son las entradas a cada flip-flop
J-K:


Al llevarse a cabo la primera transición negativa en la terminal de entrada, el primer flip-
flop J-K tomará el estado Q
1
=1, ya que antes de la transición estaba condicionado por las
entradas J=1 y K=0. Simultáneamente, el segundo flip-flop J-K tomará el estado opuesto al
que tenía anteriormente, esto es, tomará el estado Q
2
=1, ya que antes de la transición estaba
condicionado por las entradas J=0 y K=0.

Por lo tanto, después de la primera transición la configuración habrá tomado el estado
Q
1
Q
2
=11. La situación de la configuración es ahora la siguiente:


Al llevarse a cabo la segunda transición en la terminal de entrada, el primer flip-flop J-K
tomará el estado Q
1
=0, ya que antes de la segunda transición estaba condicionado por las
entradas J=0 y K=1. Simultáneamente, el segundo flip-flip J-K tomará el estado Q
2
=0, ya
que antes de la segunda transición estaba condicionado por las entradas J=0 y K=1.

Por lo tanto, después de la segunda transición la configuración toma el estado Q
1
Q
2
=00. El
circuito ha regresado a su estado original.

Podemos resumir la secuencia de estados en una “tabla” que a primera vista podría
asemejar una “Tabla de Verdad”, pero que sin embargo no es tal, ya que es
conceptualmente diferente. Se trata de una tabla conocida como tabla de estados y también
como tabla de secuencias, la cual no nos dice cuál es la salida del circuito para una cierta
combinación de entradas, sino que nos muestra cuál es la secuencia de un estado del
circuito al siguiente estado, en forma ordenada, de arriba hacia abajo:


Con el fin de evitar confusiones, se han dibujado las tablas de secuencias que serán
mostradas en este libro de un modo algo diferente a como se han dibujado las Tablas de
Verdad. En una tabla de secuencias, cada “bit” de información, ya sea un “0” ó un “1”, está
encerrado en su propia “cajita”, la cual podemos visualizar como representando un flip-flop
J-K o cualquier otro tipo de flip-flop. De este modo, cada renglón en una tabla de
secuencias representa en un momento dado el estado de todos los flip-flops de los que está
hecho el circuito, representa lo que llamamos comúnmente el estado de la máquina,
simbolizado simplemente como Q. Cualquier circuito lógico con elementos de memoria en
un momento dado está completamente determinado por el estado en el que están cada uno
de sus elementos de memoria, lo cual incluye sus flip-flops R-S, sus flip-flops J-K, los
valores que hay en cada una de las “celdas” de su memoria RAM, en fin, todos los registros
y elementos de memoria de los que está hecha la máquina. Y como el número de estos
elementos es siempre una cantidad finita, estas máquinas son conocidas comúnmente como
máquinas de estado finito (finite state machines).

A diferencia de la Tabla de Verdad en la cual el orden en el que están puestos los renglones
es un asunto sin trascendencia, en la tabla de secuencias el orden de los renglones tiene que
ser mantenido intacto para poder leer de la misma cuál será el siguiente estado Q
n+1
al cual
avanzará un contador en una transición de estados cuando se encuentra dentro de cierto
estado Q
n
. El avance del tiempo en una tabla de secuencias siempre debe ser leído de arriba
hacia abajo, y el paso de un renglón al siguiente debe ser leído como la transición de un
estado a otro tras cada “pulso” en la señal de entrada para la terminal de “reloj”. Si
continuamos aplicando transiciones negativas a la terminal de entrada reloj C, la secuencia
arriba mostrada se repetirá indefinidamente.

Circuitos hechos a base de flip-flops J-K como el que acabamos de estudiar son conocidos
comunmente como contadores.

Puesto que el contador estudiado requiere dos transiciones para regresar a la condición
inicial, decimos que es un contador módulo-2. En general, si un contador requiere n
transiciones para regresar a la condición inicial, decimos que es un contador módulo-n. El
término técnico se ha tomado “prestado” directamente del campo de las matemáticas, en
donde tenemos aritméticas finitas módulo-n en las cuales al ir contando hacia arriba la
suma no se va acumulando indefinidamente sino que, al llegar al número n, el conteo
comienza nuevamente otra vez de cero. (Es una lástima que aquellos estudiantes que tienen
problemas para entender las aritméticas modulares no tengan acceso a simuladores lógicos
en los cuales con circuitos como los flip-flops J-K se pueden apreciar aritméticas modulares
en acción. En otras palabras, el asunto de las aritméticas modulares no es un asunto
meramente teórico que inventaron unos matemáticos ociosos que no tenían mejor cosa que
hacer. Es algo que tiene aplicación directa en la práctica, y aquí lo estamos viendo en
acción.)

Obsérvese cómo en el contador estudiado todos los flip-flops J-K son activados
simultáneamente. Todo contador en el cual sus flip-flops J-K son accionados a un mismo
tiempo con una señal de “reloj” común a sus terminales de entrada de reloj C es conocido
como un contador síncrono.

Existen también contadores en los cuales cada flip-flop J-K a través de su terminal de salida
Q acciona la terminal C del flip-flop J-K que le sigue. Este tipo de contadores recibe el
nombre de contador asíncrono. Esta definición se extiende hacia cualquier otro tipo de
contadores y circuitos secuenciales de todo género basado no sólo en el flip-flop J-K sino
en otros flip-flops derivados del flip-flop J-K. Por ejemplo, el siguiente circuito secuencial
construído con flip-flops del tipo D (derivable del flip-flop J-K según se verá en la sección
de problemas resueltos) es un contador asíncrono:


mientras que el siguiente contador es un contador síncrono (obsérvese cómo la terminal de
reloj resaltada de color azul alimenta todas las entradas C de los flip-flops del contador):


En la parte que corresponde a la serie de problemas resueltos para este capítulo, veremos
que es posible construír de una manera muy sencilla un contador binario de conteo
ascendente con el simple hecho de conectar varios flip-flops J-K en cascada. Si denotamos
el estado de cada flip-flop J-K como Q, y conectamos cuatro flip-flops J-K en cascada,
entonces representando el estado del contador como Q
1
Q
2
Q
1
Q
2
y empezando el conteo
binario desde cero, usando foquitos para representar con cada foquito encendido el estado
de “1” y representando el estado de “0” con el foquito apagado la secuencia de estados que
revelan al contador como un contador binario ascendente es, dinámicamente hablando, la
siguiente:


Tan fácil es construír con flip-flops J-K un contador binario de conteo ascendiente como un
contador binario de conteo descendiente. Nuevamente, para el caso de un contador binario
de conteo descendiente de cuatro bits utilizando cuatro flip-flops J-K y utilizando foquitos
para visualizar el estado de cada flip-flop, dinámicamente tendríamos algo como lo
siguiente:


Aquí se podría objetar que mientras que un contador binario ascendente de cuatro bits sería
el contador ideal para contar en un sistema hexadecimal, con 16 símbolos diferentes, puesto
que un humano cuenta de diez en diez en el sistema decimal entonces tendría dificultades
para poder “comunicarse” con un contador binario puro que use cuatro flip-flops J-K y el
cual recorra 16 estados diferentes antes de regresar al estado “cero”. Lo ideal sería un
contador binario cuya secuencia de estados abarque únicamente diez estados diferentes en
lugar de 16, o sea, un contador binario que nos dé el equivalente de un decimal codificado
en código binario (conocido en literatura técnica inglesa como contador binario BCD, del
acrónimo Binary Coded Decimal). La secuencia de estados que recorrería un contador tal
sería la siguiente:


Esto se puede lograr forzando al contador binario a que cuando trate de llegar al estado
0101 dicho contador binario sea forzado o condicionado de alguna manera para entrar en el
estado 0000. Los detalles sobre las maneras en las cuales podemos lograr esto se verán en
mayor detalle en la sección de problemas resueltos.

Otro concepto clave es el de los contadores con peso. Existe cierto tipo de contadores en
los cuales si asignamos un cierto “peso” numérico a cada flip-flop J-K que los compone , el
contador parece llevar a cabo un conteo ascendente en el sistema decimal. Consideremos un
contador cuya tabla de secuencias mostrando su secuencia natural de estados es la
siguiente:


Supongamos ahora que asignamos una unidad de peso al primer flip-flop J-K con salida Q
1
,
una unidad de peso al segundo flip-flop J-K de salida Q
2
, dos unidades de peso al tercer
flip-flop J-K de salida Q
3
y cuatro unidades de peso al cuarto flip-flop J-K de salida Q
4
.

Al empezar el conteo, el estado de la configuración es Q
1
Q
2
Q
3
Q
4
=0000, cuyo equivalente
decimal es 0. Después de la primera transición, el contador toma el estado
Q
1
Q
2
Q
3
Q
4
=1000. Puesto que la salida del primer flip-flop J-K es Q
1
=1 y a su vez
contribuye con un peso de una unidad, el equivalente decimal del estado del contador será
1. Después de la segunda transición, el contador toma el estado Q
1
Q
2
Q
3
Q
4
=1100. Puesto
que la salida de los dos primeros flip-flops es 1 y cada uno contribuye con un peso de una
unidad, el equivalente decimal del estado del contador será 1+1=2. Después de la tercera
transición, el contador toma el estado Q
1
Q
2
Q
3
Q
4
=1010. Puesto el primer flip-flop
contribuye con un peso de una unidad y el tercer flip-flop contribuye con un peso de dos
unidades, el equivalente decimal del estado del contador será 1+2=3. Continuando el
análisis, vemos que el contador produce una cuenta decimal ascendente ordenada que llega
hasta el estado con un equivalente del número decimal 8. Puesto que el peso del contador es
una unidad - una unidad - dos unidades - cuatro unidades, representamos dicho peso
como 1-1'-2-4. Obsérvese el uso de la comillla puesta en el peso correspondiente al
segundo flip-flop que repite el mismo peso del primero.

Ahora bien, para diseñar un contador hecho a base de flip-flops J-K existen varias
alternativas, algunas de las cuales se discuten en los problemas resueltos correspondientes a
este capítulo. El diseñista deberá estar alerta para determinar cuál de todos producirá el
diseño óptimo para lograr la secuencia deseada.

Debemos mencionar también que todo contador que produzca una salida simétrica de
pulsos en su último flip-flop J-K es conocido como un contador simétrico. De no ser así, el
contador es conocido como un contador asimétrico. (Definimos un tren simétrico de pulsos
como aquél en el cual los “unos” y los “ceros” siempre ocurren de manera alternada, y cada
“1” tiene la misma duración de tiempo que un “0”.)

Aunque el flip-flop J-K es un elemento central para la construcción de contadores
electrónicos, su uso no está limitado a este tipo de circuitos. Las aplicaciones de un bloque
tan versátil como lo es el flip-flop J-K son tan amplias que están limitadas únicamente por
la imaginación del diseñista. Del flip-flop J-K se pueden obtener otros componentes más
sencillos y más especializados como el flip-flop D y el flip-flop T. Aquí es en donde
tenemos el punto de partida para la construcción de componentes funcionales más
especializados tales como el registro de transferencia (shift register), conocido también
como registro de desplazamiento y como registro de corrimiento. En este componente
podemos ir metiendo varios bits de uno en uno hasta llenarlo a su máxima capacidad, tras
lo cual podemos enviarlos juntos hacia afuera en forma paralela o inclusive en forma serial
a la vez que vamos reintroduciendo la información de nuevo al registro de desplazamiento
para otro uso posterior. Esta acción la podemos esquematizar de la siguiente manera en un
circuito lógico que podemos suponer que se ha construído con cuatro flip-flops J-K:


En este ejemplo, tras el primer “pulso de reloj”, el último bit correspondiente a la palabra
binaria 1011 ha entrado ya en el primer flip-flip del registro de transferencia. Al siguiente
“pulso de reloj”, le toca su turno al penúltimo bit de la palabra binaria entrar al primer flip-
flop del registro de transferencia, a la vez que el bit que estaba en el primer flip-flop es
desplazado hacia el segundo flip-flop hacia su derecha. De este modo, la palabra binaria va
entrando al registro de desplazamiento hasta que está completamente dentro del registro, y
eventualmente empieza a salir del registro bajo la acción de los siguientes pulsos de reloj.
Puesto que este es un registro de transferencia en el cual la información binaria entra en
forma serial (por la izquierda) y sale en forma serial (por la derecha), este tipo de registro es
conocido como de entrada-serial salida-serial o siso (serial-input serial-output).

Suponiendo que hayamos construído un registro de transferencia de cuatro bits y en el cual
se haya metido la palabra binaria 1011, entonces si imaginamos que hemos conectado
foquitos a las salidas Q de cada flip-flop J-K para representar el estado de “encendido”
(“1”) y “apagado” (“0”), entonces podemos representar con un gráfico dinámico de la
siguiente manera la salida serial de la palabra binaria 1011 empezando el bit que está más
hacia la derecha, lo cual dejará al registro de transferencia en el estado 0101 (suponiendo
que no le entra nada por la izquierda) tras el primer “pulso de reloj”, pasando al estado
0010 tras el segundo “pulso de reloj, y así sucesivamente hasta que los cuatro bits hayan
salido por la derecha y el registro de transferencia haya quedado completamente vacío con
puros ceros (foquitos apagados) al finalizar la secuencia de operaciones de transferencia de
bit por bit:


Se pueden concebir otros tres tipos de registros de transferencia, empezando por el que es
conocido como de entrada-serial salida-paralela o sipo (serial-input parallel-output):


y el que es conocido como de entrada-paralela salida-serial o piso (parallel-input serial-
output):


y el que es conocido como de entrada-paralela salida-paralela o pipo (parallel-input
parallel-output):


Diseñar un registro de transferencia con flip-flops J-K o cualquier otro tipo de flip-flop es
un asunto relativamente fácil. El problema general en el diseño de circuitos secuenciales
consiste en, dada una tabla de secuencias, diseñar un circuito lógico que pueda producir en
forma ordenada dicha tabla de secuencias, todo bajo el control de un “pulso de reloj”
maestro.

En otros tiempos, dados los costos altísimos de un componente tan básico como el inversor
lógico NOT construído a base de lentos relevadores electromecánicos o de componentes
más rápidos pero aún más costosos como los tubos electrónicos al vacío, diseñar un circuito
secuencial con la menor cantidad teórica posible de componentes era un asunto de la más
alta prioridad, y para ello se invertían muchas horas de estudio refinando al máximo
técnicas como el mapa de Karnaugh para poder obtener los diseños más económicos
posibles. Pero el dramático abaratamiento de los circuitos integrados en donde se
implementan las funciones lógicas básicas ha hecho posibles otros recursos más prácticos
de diseño que no enfatizan tanto aquellas herramientas teóricas de tan laborioso acceso que
inclusive estaban fuera del alcance de la mayoría de los técnicos por ser impartidas en
cursos a nivel universitario en las carreras de ingeniería eléctrica, ingeniería electrónica y
ciencias computacionales.

Supóngase que se desea construír una máquina secuencial que sea capaz de generar una
secuencia de ocho palabras de 4 bits cada palabra. Si tenemos la tabla de secuencias a la
mano, entonces todo lo que tenemos que hacer es proporcionar un contador binario de
conteo ascendente que empezando con el estado Q
1
Q
2
Q
3
=000 suba al estado Q
1
Q
2
Q
3
=001
en el siguiente “pulso de reloj”, tras esto al estado Q
1
Q
2
Q
3
=010 en el siguiente “pulso de
reloj”, y así sucesivamente, llevando a cabo un conteo binario ascendente. Podemos
construír fácilmente un contador de este tipo con flip-flops J-K. O mejor aún, lo podemos
comprar ya hecho dentro de un circuito integrado como el CD4520 (el cual incluye dos
contadores binarios ascendentes por el precio de uno):


Todo lo que tenemos que hacer ahora es agregarle una memoria ROM, conectando
directamente las salidas Q del contador binario a las entradas A de domicilios de la
memoria ROM. El ROM tiene que tener grabada en su memoria la tabla de secuencias en
forma ordenada, con la primera secuencia puesta como el dato localizable en el primer
domicilio, la segunda secuencia puesta como el dato localizable en el segundo domicilio, y
así sucesivamente. El circuito presenta así el siguiente aspecto:


Todo lo que tenemos que hacer ahora es aplicarle “pulsos” de la señal de reloj de la
duración deseada en la terminal de entrada “Reloj” para ver trabajar a nuestro
secuenciador.
Existe otra alternativa de diseño, explorada en la sección de problemas resueltos de este
capítulo, la cual consiste en utilizar una memoria ROM en la cual se recurre al “truco” de
retroalimentar las entradas del ROM con sus salidas, de modo tal que cada domicilio apunte
hacia una localidad que es otro domicilio del mismo ROM y a la vez la secuencia que
sigue. De esta manera, el abaratamiento de la microelectrónica no solo ha hecho posible
que un técnico pueda lograr lo mismo que lo que antes requería a un ingeniero para lograr,
ha hecho obsoletos muchos de los conocimientos tan arduamente adquiridos por este
ingeniero que hoy en día nos sirven únicamente como ejercicio intelectual, un ejercicio
intelectual muy interesante pero de dudosa utilidad en la práctica.