Sei sulla pagina 1di 17

El flip-flop J-K.

Contadores

En este captulo estudiaremos uno de los elementos ms importantes, si no el ms importante, en el arsenal de los bloques fundamentales de los circuitos lgicos conocidos como secuenciales. Este elemento es el flip-flop J-K y se representa de la manera siguiente:

Como

puede

verse

en

el

smbolo igual flip-flop

del

flip-flop que J-K el

J-K,

este

posee

dos R-S.

salidas complementarias Qy Q al Las caractersticas del

flip-flop las

son

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 posea 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 opuestoa aqul en el cual se encontraba anteriormente. Esto quiere decir que si antes de latransicin 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 despus de la transicin. Asimismo, si se encontraba en el estadoQ=0 antes de la transicin, entonces tomar el estado Q=1 despus de la transicin.

Obsrvese que la transicin de 0 a 1 en la terminal C no produce efecto alguno en la salida Q. Unicamente la transicin de 1 a 0 es la que puede producir efecto alguno. Puesto que es unacada de 1 a 0 o una transicin negativa la que produce esta accin, este flip-flop J-K es reconocido como uno accionado por una seal de reloj negativa en la terminal de reloj (clock).

Existen tambin en el mercado flip-flops J-K en los cuales la transicin que produce la accin en la terminal de salida Q es una transicin positiva de 0 a 1 y no la transicin negativa de 1 a 0 (precaucin: aqu no hay voltajes negativos involucrados). Estos flipflops J-K son conocidos en el mercado como flip-flops accionados por una seal de reloj positiva.

Obsrvese cuidadosamente que es nicamente una transicin en la terminal C la que puede producir accin alguna a la salida del flip-flop J-K. Si la entrada en la terminal C permanece constante, cualesquier variacin 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 tambin posee dos salidas complementarias,Q y Q, con la diferencia de que el flip-flop J-K no posee estados nodefinidos. Repasemos con la ayuda de grficos animados usando foquitos encendidos y apagados algunas de las caractersticas 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 posea 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 tambin permanecera en dicho estado sin importar el nmero de pulsos recibidos en la entrada C):

Veamos ahora lo que ocurre de acuerdo a la segunda caracterstica que nos dice que cuandoJ=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 caracterstica 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, entendindose tras esto que la misma secuencia se volver a repetir):

An ms interesante es la cuarta caracterstica 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 aqul en el cual se encontraba anteriormente:

El flip-flop J-K, al igual que todos los bloques fundamentales dentro de los circuitos lgicos, se construye utilizando funciones lgicas bsicas.

Consideramos a continuacin una configuracin hecha exclusivamente a base de flipflops J-K:

Para analizar cualesquier circuito lgico que contenga flip-flops J-K, la regla es extremadamente sencilla: Suponemos que todos los flip-flops J-K de la configuracin estn 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 flipflops J-K de la configuracin despus de haber ocurrido cada transicin. Continuamos el procedimiento hasta que todos los flip-flops J-K de la configuracin original hayan regresado al estado original Q=0.

Teniendo lo anterior en cuenta, empezamos suponiendo que la salida del primer flipflop J-K es Q1=0 y que la salida del segundo flip-flop J-K es tambin Q2=0. En otras palabras, el estado original de la configuracin es Q1Q2=00.

Vemos entonces en el diagrama de la configuracin cules son las entradas a cada flipflop J-K:

Al llevarse a cabo la primera transicin negativa en la terminal de entrada, el primer flip-flop J-K tomar el estado Q1=1, ya que antes de la transicin estaba condicionado por las entradas J=1 y K=0. Simultneamente, el segundo flip-flop J-K tomar el estado opuesto al que tena anteriormente, esto es, tomar el estado Q2=1, ya que antes de la

transicin

estaba

condicionado

por

las

entradas J=0

y K=0.

Por lo tanto, despus de la primera transicin la configuracin habr tomado el estadoQ1Q2=11. La situacin de la configuracin es ahora la siguiente:

Al llevarse a cabo la segunda transicin en la terminal de entrada, el primer flip-flop J-K tomar el estado Q1=0, ya que antes de la segunda transicin estaba condicionado por las entradas J=0 y K=1. Simultneamente, el segundo flip-flip J-K tomar el estado Q2=0, ya que antes de la segunda transicin estaba condicionado por las entradas J=0 y K=1.

Por lo tanto, despus de la segunda transicin la configuracin 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 podra 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 tambin como tabla de secuencias, la cual no nos dice cul es la salida del circuito para una cierta combinacin de entradas, sino que nos muestra cul 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 sern 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 informacin, 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 rengln 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 comnmente el estado de la mquina, simbolizado simplemente como Q. Cualquier circuito lgico con elementos de memoria en un momento dado est completamente determinado por el estado en el que estn 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 mquina. Y como el nmero de estos elementos es siempre una cantidad finita, estas mquinas son conocidas comnmente como mquinas de estado finito (finite state machines). A diferencia de la Tabla de Verdad en la cual el orden en el que estn 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 cul ser el siguiente estado Qn+1 al cual avanzar un contador en una transicin de estados cuando se encuentra dentro de cierto estado Qn. El avance del tiempo en una tabla de secuencias siempre debe ser ledo de arriba hacia abajo, y el paso de un rengln al siguiente debe ser ledo como la transicin de un estado a otro tras cada pulso en la seal 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 condicin inicial, decimos que es un contador mdulo-2. En general, si un contador requiere ntransiciones para regresar a la condicin inicial, decimos que es un contador mdulo-n. El trmino tcnico se ha tomado prestado directamente del campo de las matemticas, en donde tenemos aritmticas finitas mdulo-n en las cuales al ir contando hacia arriba la suma no se va acumulando indefinidamente sino que, al llegar al nmero n, el conteo comienza nuevamente otra vez de cero. (Es una lstima que aquellos

estudiantes que tienen problemas para entender las aritmticas modulares no tengan acceso a simuladores lgicos en los cuales con circuitos como los flip-flops J-K se pueden apreciar aritmticas modulares en accin. En otras palabras, el asunto de las aritmticas modulares no es un asunto meramente terico que inventaron unos matemticos ociosos que no tenan mejor cosa que hacer. Es algo que tiene aplicacin directa en la prctica, y aqu lo estamos viendo en accin.)

Obsrvese cmo en el contador estudiado todos los flip-flops J-K son activados simultneamente. Todo contador en el cual sus flip-flops J-K son accionados a un mismo tiempo con una seal de reloj comn a sus terminales de entrada de reloj C es conocido como un contador sncrono.

Existen tambin contadores en los cuales cada flip-flop J-K a travs de su terminal de salidaQ acciona la terminal C del flip-flop J-K que le sigue. Este tipo de contadores recibe el nombre de contador asncrono. Esta definicin se extiende hacia cualquier otro tipo de contadores y circuitos secuenciales de todo gnero basado no slo en el flipflop J-K sino en otros flip-flops derivados del flip-flop J-K. Por ejemplo, el siguiente circuito secuencial construdo con flip-flops del tipo D (derivable del flip-flop J-K segn se ver en la seccin de problemas resueltos) es un contador asncrono:

mientras que el siguiente contador es un contador sncrono (obsrvese cmo 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 captulo, veremos que es posible construr 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 Q1Q2Q1Q2 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, dinmicamente hablando, la siguiente:

Tan fcil es construr 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, dinmicamente tendramos algo como lo siguiente:

Aqu se podra objetar que mientras que un contador binario ascendente de cuatro bits sera el contador ideal para contar en un sistema hexadecimal, con 16 smbolos diferentes, puesto que un humano cuenta de diez en diez en el sistema decimal entonces tendra 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 sera 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 cdigo binario (conocido en literatura tcnica inglesa como contador binario BCD, del acrnimo Binary Coded Decimal). La secuencia de estados que recorrera un contador tal sera la siguiente:

Esto se puede lograr forzando al contador binario a que cuando trate de llegar al estado0101 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 vern en mayor detalle en la seccin 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 numrico 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 configuracin es Q1Q2Q3Q4=0000, cuyo equivalente decimal es 0. Despus de la primera transicin, el contador toma el estadoQ1Q2Q3Q4=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 ser1. Despus de la segunda transicin, 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. Despus de la tercera transicin, 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 anlisis, vemos que el contador produce una cuenta decimal ascendente ordenada que llega hasta el estado con un equivalente del nmero decimal 8. Puesto que el peso del contador esuna unidad - una unidad - dos unidades - cuatro unidades, representamos dicho peso como 1-1'-2-4. Obsrvese el uso de la comillla puesta en el peso correspondiente al segundo flip-flop que repite el mismo peso del primero. Ahora bien, para disear 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 captulo. El diseista deber estar alerta para determinar cul de todos producir el diseo ptimo para lograr la secuencia deseada.

Debemos mencionar tambin que todo contador que produzca una salida simtrica de pulsos en su ltimo flip-flop J-K es conocido como un contador simtrico. De no ser as, el contador es conocido como un contador asimtrico. (Definimos un tren simtrico de pulsos como aqul en el cual los unos y los ceros siempre ocurren de manera alternada, y cada 1 tiene la misma duracin de tiempo que un 0.) Aunque el flip-flop J-K es un elemento central para la construccin de contadores electrnicos, su uso no est limitado a este tipo de circuitos. Las aplicaciones de un bloque tan verstil como lo es el flip-flop J-K son tan amplias que estn limitadas nicamente por la imaginacin del diseista. Del flip-flop J-K se pueden obtener otros componentes ms sencillos y ms especializados como el flip-flop D y el flip-flop T. Aqu es en donde tenemos el punto de partida para la construccin de componentes funcionales ms especializados tales como el registro de transferencia (shift register), conocido tambin 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 mxima capacidad, tras lo cual podemos enviarlos juntos hacia afuera en forma paralela o inclusive en forma serial a la vez que vamos reintroduciendo la informacin de nuevo al registro de desplazamiento para otro uso posterior. Esta accin la podemos esquematizar de la siguiente manera en un circuito lgico que podemos suponer que se ha construdo 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 penltimo 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 accin de los siguientes pulsos de reloj. Puesto que este es un registro de transferencia en el cual la informacin binaria entra en forma serial (por la izquierda) y sale en forma serial (por la derecha), este tipo de registro es serial o siso (serial-input conocido como de entrada-serial salidaserial-output).

Suponiendo que hayamos construdo 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 grfico dinmico de la siguiente manera la salida serial de la palabra binaria 1011 empezando el bit que est ms 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 vaco 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 paralleloutput):

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):

Disear un registro de transferencia con flip-flops J-K o cualquier otro tipo de flip-flop es un asunto relativamente fcil. El problema general en el diseo de circuitos secuenciales consiste en, dada una tabla de secuencias, disear un circuito lgico 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 altsimos de un componente tan bsico como el inversor lgico NOT construdo a base de lentos relevadores electromecnicos o de componentes ms rpidos pero an ms costosos como los tubos electrnicos al vaco, disear un circuito secuencial con la menor cantidad terica posible de componentes era un asunto de la ms alta prioridad, y para ello se invertan muchas horas de estudio refinando al mximo tcnicas como el mapa de Karnaugh para poder obtener los diseos ms econmicos posibles. Pero el dramtico abaratamiento de los circuitos integrados en donde se implementan las funciones lgicas bsicas ha hecho posibles otros recursos ms prcticos de diseo que no enfatizan tanto aquellas herramientas tericas de tan laborioso acceso que inclusive estaban fuera del alcance de la mayora de los tcnicos por ser impartidas en cursos a nivel universitario en las carreras de ingeniera elctrica, ingeniera electrnica y ciencias computacionales.

Supngase que se desea construr una mquina 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 estadoQ1Q2Q3=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 construr fcilmente un contador de este tipo con flip-flops J-K. O

mejor an, 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 seal de reloj de la duracin deseada en la terminal de entrada Reloj para ver trabajar a nuestro secuenciador. Existe otra alternativa de diseo, explorada en la seccin de problemas resueltos de este captulo, 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 microelectrnica no solo ha hecho posible que un tcnico pueda lograr lo mismo que lo que antes requera a un ingeniero para lograr, ha hecho obsoletos muchos de los conocimientos tan arduamente adquiridos por este ingeniero que hoy en da nos sirven nicamente como ejercicio intelectual, un ejercicio intelectual muy interesante pero de dudosa utilidad en la prctica.

Potrebbero piacerti anche