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.

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. cualesquier variación en las terminales J yK no podrá producir efecto alguno en la salida Q del flip-flop J-K. si se encontraba en el estado Q=0 antes de la transición. Si la entrada en la terminal C permanece constante. 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. Q y Q. con la diferencia de que el flip-flop J-K no posee estados nodefinidos. El flip-flop J-K. Puesto que es una caída de 1 a 0 o una transición negativa la que produce esta acción. entonces tomará el estado Q=0 después de la transición. 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. 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. el flip-flop J-K también posee dos salidas complementarias. este flip-flop J-K es reconocido como uno accionado por una señal de reloj negativa en la terminal de "reloj" (clock). (3) Cuando J=0 y K=1. se construye utilizando funciones lógicas básicas. 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. 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. En forma similar al flip-flop R-S. Estos flipflops J-K son conocidos en el mercado como flip-flops accionados por una señal de reloj positiva. Consideramos a continuación una configuración hecha exclusivamente a base de flip-flops J-K: . al igual que todos los bloques fundamentales dentro de los circuitos lógicos.(2) Cuando J=1 y K=0. 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). Asimismo. entonces tomará el estado Q=1 después de la transición. (4) Cuando J=0 y K=0.

empezamos suponiendo que la salida del primer flip-flop JK es Q1=0 y que la salida del segundo flip-flop J-K es también Q2=0. La situación de la configuración es ahora la siguiente: . la regla es extremadamente sencilla: Suponemos que todos los flip-flops J-K de la configuración están en el estado Q=0. Continuamos el procedimiento hasta que todos los flip-flops J-K de la configuración original hayan regresado al estado original Q=0. esto es. 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 estado original de la configuración es Q1Q2=00. el primer flipflop J-K tomará el estado Q1=1. En otras palabras. el segundo flip-flop J-K tomará el estado opuesto al que tenía anteriormente. Por lo tanto. ya que antes de la transición estaba condicionado por las entradas J=0 y K=0. ya que antes de la transición estaba condicionado por las entradas J=1 y K=0. tomará el estado Q2=1.Para analizar cualesquier circuito lógico que contenga flip-flops J-K. 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. después de la primera transición la configuración habrá tomado el estado Q1Q2=11. Teniendo lo anterior en cuenta. Simultáneamente.

Por lo tanto. después de la segunda transición la configuración toma el estado Q1Q2=00. está encerrado en su propia "cajita". ya sea un "0" ó un "1". De este modo. pero que sin embargo no es tal. 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. Simultáneamente. 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. cada "bit" de información. sino que nos muestra cuál es la secuencia de un estado del circuito al siguiente estado. simbolizado simplemente como Q. Podemos resumir la secuencia de estados en una "tabla" que a primera vista podría asemejar una "Tabla de Verdad". el segundo flip-flip J-K tomará el estado Q2=0. Se trata de una tabla conocida como tabla de estados y también como tabla de secuencias. en forma ordenada. representa lo que llamamos comúnmente el estado de la máquina. los . lo cual incluye sus flip-flops R-S. En una tabla de secuencias. la cual no nos dice cuál es la salida del circuito para una cierta combinación de entradas.Al llevarse a cabo la segunda transición en la terminal de entrada. sus flip-flops J-K. el primer flip-flop J-K tomará el estado Q1=0. El circuito ha regresado a su estado original. ya que es conceptualmente diferente. ya que antes de la segunda transición estaba condicionado por las entradas J=0 y K=1. la cual podemos visualizar como representando un flip-flop J-K o cualquier otro tipo de flip-flop. 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. ya que antes de la segunda transición estaba condicionado por las entradas J=0 y K=1.

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 general. El término técnico se ha tomado "prestado" directamente del campo de las matemáticas.) Obsérvese cómo en el contador estudiado todos los flip-flops J-K son activados simultáneamente. 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. y aquí lo estamos viendo en acción. 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. estas máquinas son conocidas comúnmente como máquinas de estado finito (finite state machines). decimos que es un contador módulo-n. Y como el número de estos elementos es siempre una cantidad finita. 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. decimos que es un contador módulo-2. En otras palabras. 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. Puesto que el contador estudiado requiere dos transiciones para regresar a la condición inicial. 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. 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. Este tipo de contadores recibe el nombre de contador asíncrono. el conteo comienza nuevamente otra vez de cero. todos los registros y elementos de memoria de los que está hecha la máquina. la secuencia arriba mostrada se repetirá indefinidamente. 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". Por ejemplo.valores que hay en cada una de las "celdas" de su memoria RAM. Si continuamos aplicando transiciones negativas a la terminal de entrada reloj C. Circuitos hechos a base de flip-flops J-K como el que acabamos de estudiar son conocidos comunmente como contadores. si un contador requiere n transiciones para regresar a la condición inicial. El avance del tiempo en una tabla de secuencias siempre debe ser leído de arriba hacia abajo. (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. al llegar al número n. en fin. 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: . Es algo que tiene aplicación directa en la práctica.

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. Consideremos un contador cuya tabla de secuencias mostrando su secuencia natural de estados es la siguiente: . el contador parece llevar a cabo un conteo ascendente en el sistema decimal. Existe cierto tipo de contadores en los cuales si asignamos un cierto "peso" numérico a cada flip-flop J-K que los compone .

De no ser así. una unidad de peso al segundo flip-flop J-K de salida Q2. vemos que el contador produce una cuenta decimal ascendente ordenada que llega hasta el estado con un equivalente del número decimal 8. 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. Después de la segunda transición. Obsérvese el uso de la comillla puesta en el peso correspondiente al segundo flip-flop que repite el mismo peso del primero. 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 estado de la configuración es Q1Q2Q3Q4=0000. algunas de las cuales se discuten en los problemas resueltos correspondientes a este capítulo. el . el equivalente decimal del estado del contador será 1+2=3.dos unidades . representamos dicho peso como 1-1'-2-4. 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.Supongamos ahora que asignamos una unidad de peso al primer flip-flop J-K con salida Q1. el equivalente decimal del estado del contador será 1. Puesto que la salida del primer flip-flop J-K es Q1=1 y a su vez contribuye con un peso de una unidad.cuatro unidades.una unidad . Después de la tercera transición. Después de la primera transición. el contador toma el estado Q1Q2Q3Q4=1010. Ahora bien. Continuando el análisis. cuyo equivalente decimal es 0. para diseñar un contador hecho a base de flip-flops J-K existen varias alternativas. el contador toma el estado Q1Q2Q3Q4=1100. El diseñista deberá estar alerta para determinar cuál de todos producirá el diseño óptimo para lograr la secuencia deseada. el contador toma el estado Q1Q2Q3Q4=1000. el equivalente decimal del estado del contador será 1+1=2. Puesto que el peso del contador es una unidad . Puesto que la salida de los dos primeros flip-flops es 1 y cada uno contribuye con un peso de una unidad.

le toca su turno al penúltimo bit de la palabra binaria entrar al primer flipflop del registro de transferencia. y cada "1" tiene la misma duración de tiempo que un "0". conocido también como registro de desplazamiento y como registro de corrimiento.contador es conocido como un contador asimétrico. 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. 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.) Aunque el flip-flop J-K es un elemento central para la construcción de contadores electrónicos. En este componente podemos ir metiendo varios bits de uno en uno hasta llenarlo a su máxima capacidad. y . tras el primer "pulso de reloj". la palabra binaria va entrando al registro de desplazamiento hasta que está completamente dentro del registro. De este modo. a la vez que el bit que estaba en el primer flip-flop es desplazado hacia el segundo flip-flop hacia su derecha. el último bit correspondiente a la palabra binaria 1011 ha entrado ya en el primer flip-flip del registro de transferencia. 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. su uso no está limitado a este tipo de circuitos. (Definimos un tren simétrico de pulsos como aquél en el cual los "unos" y los "ceros" siempre ocurren de manera alternada. 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. 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). Al siguiente "pulso de reloj".

Se pueden concebir otros tres tipos de registros de transferencia.eventualmente empieza a salir del registro bajo la acción de los siguientes pulsos de reloj. este tipo de registro es conocido como de entrada-serial salida-serial o siso (serial-input serial-output). el que es conocido como de entradaserial salida-paralela o sipo (serial-input parallel-output): y el que es conocido como de entrada-paralela salida-serial o piso (parallel-input serialoutput): y el que es conocido como de entrada-paralela salida-paralela o pipo (parallel-input parallel-output): . 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).

El ROM tiene que tener grabada en su memoria la tabla de secuencias en . diseñar un circuito lógico que pueda producir en forma ordenada dicha tabla de secuencias. 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 registro de transferencia con flip-flops J-K o cualquier otro tipo de flip-flop es un asunto relativamente fácil. diseñar un circuito secuencial con la menor cantidad teórica posible de componentes era un asunto de la más alta prioridad. y así sucesivamente. todo bajo el control de un "pulso de reloj" maestro. 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. 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. 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. En otros tiempos. Podemos construír fácilmente un contador de este tipo con flip-flops J-K. conectando directamente las salidas Q del contador binario a las entradas A de domicilios de la memoria ROM. 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". Pero el problema general en el diseño de circuitos secuenciales consiste en. dada una tabla de secuencias. Si tenemos la tabla de secuencias a la mano. O mejor aún. tras esto al estado Q1Q2Q3=010 en el siguiente "pulso de reloj". llevando a cabo un conteo binario ascendente. ingeniería electrónica y ciencias computacionales. 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.

un ejercicio intelectual muy interesante pero de dudosa utilidad en la práctica. ha hecho obsoletos muchos de los conocimientos tan arduamente adquiridos por este ingeniero que hoy en día nos sirven únicamente como ejercicio intelectual. con la primera secuencia puesta como el dato localizable en el primer domicilio. y así sucesivamente. Existe otra alternativa de diseño. la segunda secuencia puesta como el dato localizable en el segundo domicilio. 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. 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 esta manera. 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. explorada en la sección de problemas resueltos de este capítulo. 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. .forma ordenada.

Sign up to vote on this title
UsefulNot useful