Fundamentos de Lógica Digital
Fundamentos de Lógica Digital
Fundamentos de Lógica Digital
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.
(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.
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.
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.
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:
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.
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".)
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):
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.