Sie sind auf Seite 1von 11

Fundamentos de Lógica Digital

jueves 8 de noviembre de 2007


6: 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 a0 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.

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 Q1=0 y que la salida del segundo flip-flop J-K es también Q2=0. En otras palabras, el
estado original de la configuración es Q1Q2=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 Q1=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 Q2=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


Q1Q2=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 Q1=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 Q2=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 Q1Q2=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 Qn+1 al cual
avanzará un contador en una transición de estados cuando se encuentra dentro de cierto
estado Qn. 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):

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 Q1,
una unidad de peso al segundo flip-flop J-K de salida Q2, dos unidades de peso al tercer
flip-flop J-K de salida Q3 y cuatro unidades de peso al cuarto flip-flop J-K de salida Q4.

Al empezar el conteo, el estado de la configuración es Q1Q2Q3Q4=0000, cuyo equivalente


decimal es 0. Después de la primera transición, el contador toma el estado
Q1Q2Q3Q4=1000. Puesto que la salida del primer flip-flop J-K es Q1=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 Q1Q2Q3Q4=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 Q1Q2Q3Q4=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). Se pueden
concebir otros tres tipos de registros de transferencia, 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. Pero 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 Q1Q2Q3=000 suba al estado Q1Q2Q3=001
en el siguiente "pulso de reloj", tras esto al estado Q1Q2Q3=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.

Das könnte Ihnen auch gefallen