A continuación calculamos el número decimal equivalente producido por este contador según el peso asignado a cada flip-flop J-K:
El contador proporcionado no puede ser un contador con peso 1-1'-2-5, ya que en el orden en el cual ocurren las transiciones estas no dan un total que asciende continuamente de uno en uno. Después de 6 unidades acumuladas el conteo salta hasta 8, regresa a 7 y salta hasta 9, como se ha destacado en números rojos en la última tabla.
PROBLEMA: Construír una tabla de secuencias para un contador con peso 1-1'-3-6.
La especificación proporcionada requiere del uso de cuatro flip-flops J-K, cada uno con salidas Q1, Q1', Q3 y Q6 respectivamente especificadas según el peso que se le va a dar a cada combinación. La tabla de secuencias que requiere un circuito de esta naturaleza es la siguiente:
PROBLEMA: Construír una tabla de secuencias para un contador con peso 1-2-2'-4.
Empezando, como siempre, con el estado "0000", y yendo hacia arriba en conteo ascendente, la tabla de secuencias deberá ser como la que se muestra a continuación:
Puesto que este contador recorre 10 estados diferentes antes de regresar a la condición original Q1Q2Q2'Q4=0000, se puede utilizar como un contador decimal.
PROBLEMA: Encontrar el peso de un contador (o, lo que es lo mismo, determinar los pesos A, B, C y D de los flip-flops con los que está construído) cuya tabla de secuencias es la siguiente:
Podemos determinar el peso de este contador con la ayuda de la siguiente tabla:
La metodología para la construcción de esta tabla es que para la determinación del peso de cada uno de los flip-flops del contador hay que seguir paso a paso cada uno de sus estados, asignándole un peso numérico a cada flip-flop según se vaya requiriendo, con la asignación acumulativa yendo de la izquierda hacia la derecha en la tabla.
Al inicio, con todos los flip-flops en el estado "0", no hay ninguna contribución de ellos al peso numérico del contador, el cual se puede decir que se encuentra en el estado cero.
Cuando el contador ha salido del estado "0000" y ha pasado al estado "1000", como el conteo debe ser siempre ascendente esto significa que tenemos que darle al primer flip-flop un peso numérico de 1, lo cual es puesto en la columna "Conclusión" dándole a A el peso A=1.
Cuando el contador pasa del estado "1000" al estado "0100", si hemos de mantener la cuenta decimal ascendente esto significa que tenemos que darle al segundo flip-flop un peso numérico de 2. Cada vez que se "encienda" el segundo flip-flop con un "1" contribuirá un peso numérico de 2, lo cual es puesto en la columna "Conclusión" dándole a B el peso B=2.
Cuando el contador pasa del estado "0100" al estado "1100", el conteo decimal acumulativo es 3, porque cada uno de los dos primeros flip-flops contribuye con un peso numérico de 1 y de 2, respectivamente, o sea que 1+2=3.
Cuando el contador pasa del estado "1100" al estado "1010", puesto que el número decimal que sigue debe ser 4 y el primer flip-flop ya está contribuyendo con un peso numérico de 1, esto significa que el tercer flip-flop necesariamente debe tener un peso numérico de 3, lo cual es puesto en la columna "Conclusión" dándole a C el peso C=3.
Procediendo de la misma manera, concluímos que el cuarto flip-flop también tiene que tener un peso numérico de 3 al igual que el tercer flip-flip, lo cual es puesto en la columna "Conclusión" dándole a D el peso D=3. Entonces el contador tiene un peso de 1-2-3-3', en donde ponemos la comilla en el cuarto elemento para distinguirlo del tercer elemento que también tiene el mismo peso numérico.
PROBLEMA: El Glitch. Obtener la salida obtenida por la siguiente configuración bajo un tren simétrico de pulsos en la terminal de entrada C. Suponiendo que cada elemento lógico introduce un pequeño retardo de tiempo, ¿qué diferencia habrá entre la salida actual y la salida calculada inicialmente? (Sugerencia: Ignorar el retardo de tiempo introducido por el bloque NOR, el cual es irrelevante para lo que se descubrirá en este problema.)
Puesto que se están usando las salidas QA y QB, es conveniente suponer que la configuración está inicialmente en el estado QAQB=00. Empezando con esta suposición y trabajando sobre el diagrama esquemático del circuito, encontramos que los estados del mismo en las transiciones que se llevan a cabo ocurren en el siguiente orden:
Primera transición: El estado es QAQB=10.
Segunda transición: El estado es QAQB=01.
Tercera transición: El estado es QAQB=11.
Cuarta transición: El estado es QAQB=00.
A la cuarta transición el circuito regresa a su estado original QAQB=00, de modo que no es necesario continuar con el análisis.
El siguiente paso es construír una tabla de secuencias usando la información obtenida:
A continuación se muestra el diagrama de tiempos para esta secuencia (el diagrama en el primer renglón corresponde a la entrada de los pulsos de "reloj", el segundo renglón corresponde a la salida QA, el tercer renglón corresponde a la salida QB y el cuarto renglón corresponde a la salida del NOR):
Considerando que cada elemento lógico introduce un pequeño retardo de tiempo (el flip-flop A con respecto a la señal de entrada y el flip-flop B con respecto a la señal que le está siendo puesta por el flip-flop A), el diagrama de tiempos actual será como sigue ignorando el retardo de tiempo introducido por el propio bloque NOR (obsérvese el desfase entre QA y QB y la consecuencia del desfase entre estas señales al entrar al NOR, considerando que cuando ambas entradas a un NOR son "0" la salida del NOR se vuelve "1"):
Comparando la salida actual con la salida esperada idealmente, se puede apreciar la presencia de unos "picos" (encuadrados en línea roja) que no aparecían en el cálculo original. Cada "pico" se conoce como un glitch. Puesto que todos los circuitos lógicos en existencia poseen un retardo de tiempo inherente en su construcción, existen innumerables diseños que irremediablemente producirán glitches. La forma de determinar si un diseño puede producir glitches o no es seguir el método utilizado en este problema, que consiste en obtener el diagrama de tiempos para dicho diseño y luego aplicar los retardos de tiempo señalados en las hojas de las especificaciones técnicas para los elementos usados en el diseño. Cualquier posibilidad de glitch aparecerá inmediatamente de esta manera.
Si un diseño produce glitches, existen varias alternativas para remediar el problema, entre las cuales está utilizar otro tipo de diseño (los circuitos secuenciales síncronos en general tienen menos posibilidades de padecer este tipo de problema que los circuitos secuenciales asíncronos) o introducir retardos de tiempo donde sea necesario para eliminar los glitches. Naturalmente, si todo está bajo el control de un "reloj maestro", siempre es posible usar dicho control para esperar el tiempo suficiente para que los glitches hayan desaparecido al estabilizarse el sistema en cierto estado.
PROBLEMA: Dado el siguiente contador, contestar las preguntas que se dan:
1) ¿Cuál es el módulo del contador?
2) ¿Cuál es el peso del contador?
Empezamos suponiendo que la configuración está inicialmente en el estado Q1Q2Q3Q4=0000. Trabajando sobre el diagrama del circuito, encontramos que los estados después de cada una de las transiciones que cambian al estado del contador son:
Primera transición: El estado es Q1Q2Q3Q4=1000.
Segunda transición: El estado es Q1Q2Q3Q4=0100.
Tercera transición: El estado es Q1Q2Q3Q4=1100.
Cuarta transición: El estado es Q1Q2Q3Q4=0110.
Quinta transición: El estado es Q1Q2Q3Q4=1110.
Sexta transición: El estado es Q1Q2Q3Q4=0101.
Séptima transición: El estado es Q1Q2Q3Q4=1101.
Octava transición: El estado es Q1Q2Q3Q4=0111.
Novena transición: El estado es Q1Q2Q3Q4=1111.
Décima transición: El estado es Q1Q2Q3Q4=0000.
Puesto que el contador recorre diez estados diferentes para regresar a la condición inicial, es un contador módulo-10.
Procedemos ahora a determinar el peso del contador:
Para la determinación del peso, seguimos paso a paso cada estado del contador, asignándole un peso numérico a cada flip-flop según se vaya requiriendo, con la asignación acumulativa yendo de la izquierda hacia la derecha.
Al inicio, con todos los flip-flops en el estado "0", no hay ninguna contribución al peso numérico del contador, el cual se puede decir que se encuentra en el estado cero.
Cuando el contador ha salido del estado "0000" pasa al estado "1000", y como el conteo debe ser decimal ascendente, esto significa que tenemos que darle al primer flip-flop un peso numérico de 1, lo cual es puesto en la columna "Conclusión".
Cuando el contador pasa del estado "1000" al estado "0100", si hemos de mantener la cuenta decimal ascendente esto significa que tenemos que darle al segundo flip-flop un peso numérico de 2. Cada vez que se "encienda" el segundo flip-flop con un "1" contribuirá un peso numérico de 2, lo cual es puesto en la columna "Conclusión".
Cuando el contador pasa del estado "0100" al estado "1100", el conteo decimal acumulativo es 3, porque cada uno de los dos primeros flip-flops contribuye con un peso numérico de 1 y de 2, respectivamente, o sea que 1+2=3.
Cuando el contador pasa del estado "1100" al estado "0110", puesto que el número decimal que sigue debe ser 4, y el segundo flip-flop ya está contribuyendo con un peso numérico de 2, esto significa que el tercer flip-flop necesariamente debe tener también un peso numérico de 2.
Procediendo de la misma manera, concluímos que el cuarto flip-flop debe tener un peso numérico de 4.
Entonces, el peso del contador es 1-2-2'-4.
Estudiando el contador, se nota que está compuesto por dos secciones. La primera es básicamente un contador módulo-2 (o contador binario) realizada por el primer flip-flop. La segunda que le sigue es básicamente un contador módulo-5 (o contador quinario) realizada por los siguientes tres flip-flops. Por lo tanto, este contador recibe el nombre de contador bi-quinario y su importancia radica en que es un contador base 10 o base decimal.
PROBLEMA: El Bucket Brigade. Analizar el siguiente circuito construyendo una tabla de secuencias para el mismo. Supóngase que al empezar el circuito está en el estado Q1Q2Q3Q4=1000. (Obsérvese que, en contra de lo acostumbrado en los circuitos lógicos anteriores, estamos usando la salida complementaria del primer flip-flop y no su salida normal Q) ¿Cuál es el módulo de este contador?
Siendo la condición inicial Q1Q2Q3Q4=01000, los estados sucesivos después de cada transición serán los siguientes:
Primera transición: El estado es Q1Q2Q3Q4=0100.
Segunda transición: El estado es Q1Q2Q3Q4=0010.
Tercera transición: El estado es Q1Q2Q3Q4=0001.
Cuarta transición: El estado es Q1Q2Q3Q4=1000.
La tabla de secuencias que resume el comportamiento del circuito es la siguiente:
Puesto que el contador recorre cuatro estados diferentes para así regresar a la condición inicial, es un contador módulo-4. Todos los elementos de esta configuración (con la excepción del primero, el cual está "invertido" en sus conexiones con respecto a los demás) están conectados de igual manera. Esto sugiere que se puede construír un contador módulo-N cualesquiera utilizando un número N de flip-flops para construírlo bajo esta configuración, aunque la salida del circuito no será simétrica. Nótese que el Bucket Brigade se puede usar como un contador de anillo.
El nombre "Bucket Brigade" deviene del significado de la palabra inglesa "bucket" que significa "cubeta", o sea, "la brigada de la cubeta", en referencia a una cubeta de agua que se iban pasando los miembros de la brigada del uno al otro haciéndola de bomberos para tratar de apagar un incendio, excepto que aquí la "cubeta" es un "1" lógico.
PROBLEMA: Diseñar, empleando el método que sea, un contador que produzca la siguiente secuencia:
Puesto que cada uno de los estados mostrado por la tabla de secuencias es diferente, no habiendo un estado igual a otro, este problema se presta a su resolución retroalimentando la salida de una memoria ROM a su entrada, de modo tal que cada estado contenido en cualquier domicilio sea a su vez el domicilio del ROM que contenga el siguiente domicilio que la vez será el siguiente estado del contador.
De la tabla de secuencias podemos primeramente construír la tabla requerida de la memoria ROM:
Esta es la especificación del ROM. Podemos acomodar los valores en la forma acostumbrada, con los domicilios en orden binario ascendente:
Con esto tenemos todo lo necesario para "quemar" un ROM y construír, agregando una compuerta de flip-flops D, el circuito secuencial deseado.
PROBLEMA: Diseñar, empleando el método que sea, un contador que produzca la siguiente secuencia:
Aunque a primera vista pueda resultar tentador recurrir a la técnica de emplear un ROM en el cual cada estado sea el domicilio del ROM que contenga el siguiente domicilio que la vez sea el siguiente estado del contador, una inspección detallada de la tabla de secuencias revela que esto no será posible, ya que del segundo renglón que además de ser el estado "000" correspondería al domicilio "000" en donde tenemos el siguiente estado "010" (que a su vez sería el domicilio del siguiente estado) se contraviene con el séptimo renglón en el cual se le pide al domicilio "000" apuntar a otro estado, hacia el estado "001". En pocas palabras, se le pediría al mismo domicilio del ROM apuntar hacia dos domicilios diferentes, y esto es algo que el ROM no puede hacer. Esto nos lleva a considerar utilizar un contador binario ascendente conectando sus salidas hacia un circuito lógico combinatorio o hacia un ROM. Lo haremos primero tratando de conectar las salidas del contador binario hacia un circuito combinatorio. Con esto, estamos requiriendo hacer la siguiente conversión de una secuencia binaria a una secuencia prefijada de antemano:
Esto es relativamente fácil de lograr mediante una red de lógica combinatoria que transforme los estados de la secuencia binaria en los estados de la secuencia dada. Cada valor requerido para formar la secuencia deseada se puede obtener a través de los minterms producidos por los estados de la secuencia binaria como se muestra a continuación (obsérvese que a estas alturas estamos hablando ya no de una tabla de secuencias sino en realidad de tres Tablas de Verdad diferentes):
Para Q'1 tenemos, usando minterms:
Q'1 = Q1Q2Q3 + Q1Q2Q3
Q'1 = Q1Q2(Q3 + Q3)
Q'1 = Q1Q2
Q'1 = (Q1 + Q2)'
Q'1 = Q1Q2(Q3 + Q3)
Q'1 = Q1Q2
Q'1 = (Q1 + Q2)'
Esta es una función NOR (obsérvese el uso de la notación alterna al final para indicar el inverso).
Q'2 = Q1Q2Q3 + Q1Q2Q3 + Q1Q2Q3 + Q1Q2Q3
Q'2 = (Q1 + Q1)Q2Q3 + (Q1 + Q1)Q2Q3
Q'2 = Q2Q3 + Q2Q3
Q'2 = (Q1 + Q1)Q2Q3 + (Q1 + Q1)Q2Q3
Q'2 = Q2Q3 + Q2Q3
Esta es una función OR-EXCLUSIVO.
Q'3 = Q1Q2Q3 + Q1Q2Q3
Q'3 = Q1Q3(Q2 + Q2)
Q'3 = Q1Q3
Q'3 = Q1Q3(Q2 + Q2)
Q'3 = Q1Q3
Esta es una función AND.
El diagrama del contador se muestra a continuación:
PROBLEMA: ¿Cuántos estados denegados tiene un Bucket Brigade de 4 bits? ¿De n bits? ¿De 5 bits? ¿De 6 bits?
Comparamos primero la secuencia natural del Bucket Brigade de 4 bits:
con todos sus estados posibles:
Podemos ver que hay doce posibles estados denegados. Conociendo la forma en la cual trabaja el Bucket Brigade, observamos que no hay ninguna manera en la cual se pueda "sacar" por sí solo de cualquiera de los doce posibles estados denegados. Concluímos pues que un Bucket Brigade de 4 bits tendrá doce estados denegados.
En general, un Bucket Brigade de n bits tendrá una secuencia natural de n estados, esto de un total de 2n estados posibles. Tendrá por lo tanto 2n-n estados denegados.
Sobre esta fórmula general, un Bucket Brigade de 5 bits tendrá 25-5 = 27 estados denegados.
Del mismo modo, un Bucket Brigade de 6 bits tendrá 26-6 = 58 estados denegados.
PROBLEMA: Analizar el siguiente contador.
Suponiendo que el contador está inicialmente en la condición Q1Q2Q3Q4=0000 al empezar, observamos al trabajar sobre el diagrama en cada etapa lo siguiente:
Primera transición: El estado es Q1Q2Q3Q4=1000.
Segunda transición: El estado es Q1Q2Q3Q4=0100.
Tercera transición: El estado es Q1Q2Q3Q4=1100.
Cuarta transición: El estado es Q1Q2Q3Q4=0010.
Quinta transición: El estado es Q1Q2Q3Q4=1010.
Sexta transición: El estado es Q1Q2Q3Q4=0110.
Séptima transición: El estado es Q1Q2Q3Q4=1110.
Octava transición: El estado es Q1Q2Q3Q4=0001.
Novena transición: El estado es Q1Q2Q3Q4=1001.
Décima transición: El estado es Q1Q2Q3Q4=0000.
La secuencia nos revela inmediatamente que este es un contador binario decimal con peso 1-2-4-8; esto es, un contador binario BCD.
Este tipo de contador desempeña un papel vital en el uso práctico de los circuitos lógicos, ya que nos permite contar en el sistema decimal usando una secuencia binaria. Si a la terminal "reloj" la designamos "contar" y a la terminal de "salida" la designamos "llevar", funcionalmente el circuito presentará el siguiente aspecto:
Si conectamos las salidas del contador binario BCD a un indicador luminoso de siete segmentos mediante un decodificador, tendremos una unidad de conteo digital decimal:
Esta unidad es el bloque fundamental de los contadores electrónicos usados en las carátulas digitales de los televisores, de los hornos de microondas, de los relojes despertadores, de los sintonizadores de radio, en fin, las aplicaciones son inagotables.
Para construír un contador de 3 dígitos decimales, por ejemplo, basta con conectar tres unidades como la de arriba en serie. La terminal "llevar" de la primera unidad se conecta a la terminal "contar" de la segunda unidad y la terminal "llevar" de la segunda unidad se conecta a la terminal "contar" de la tercera unidad. La terminal "llevar" de la tercera unidad se puede utilizar para indicar un sobreflujo S. Tomando en cuenta que un conteo ascendente procede de derecha a izquierda, el contador aparecerá de la siguiente manera:
La terminal de sobreflujo se puede utilizar para "limpiar" el contador además de indicar la presencia del mismo sobreflujo.
Un diseño de este tipo no sería muy útil en la práctica porque este contador es asíncrono, los flip-flops J-K que lo componen no son activados simultáneamente por la misma señal de "reloj", y por lo tanto no es el circuito más rápido posible. Se puede modificar este diseño para convertirlo en un contador binario BCD síncrono. Y se puede refinar aún más para convertirlo en un contador que no sólo sea capaz de contar "hacia arriba" (up counter) sino también hacia abajo (down counter). Como puede suponerse, el diseño final de algo como lo último resultará algo elaborado. Afortunadamente, no es necesario esforzarse en un proyecto de esta naturaleza, ya que es posible adquirir en el mercado a un precio sumamente bajo un circuito integrado que tenga todas estas virtudes, como el 4510:
en el cual las salidas BCD Q1, Q2, Q4 y Q8 aparecen en las terminales 6, 11, 14 y 2, respectivamente, con la terminal de "contar" (reloj) en la terminal 15 y la terminal de "llevar" (Carry Out) en la terminal 7. El conteo será ascendente si la terminal 10 (Up/Down) tiene puesto un "cero" y será descendente si tiene puesto un "1". El contador se puede "cargar" con un número predeterminado a través de las terminales 4, 12, 13 y 3, identificadas como L1, L2, L4 y L8, para lo cual hay que poner un "1" momentáneamente en la terminal 1 (Load); y también puede ser puesto en "ceros" poniendo un "1" en la terminal 1 (RST).
PROBLEMA: Derivar para un flip-flop J-K las ecuaciones Boleanas de sus entradas J y K en función de Qn (el estado del flip-flop J-K previo a una transición) y de Qn+1 (el estado del flip-flop J-K después de que ha ocurrido una transición al siguiente estado).
La postulación de este problema puede al principio parecer desconcertante, dado que hasta este momento hemos estado acostumbrados a pensar en J y K como entradas que sirven para condicionar al flip-flop J-K hacia su siguiente estado. Sin embargo, en principio, no hay nada que nos detenga para llevar a cabo este procedimiento. Una forma de verlo es como el tratar de determinar los valores que deben tener J y K para producir las transiciones deseadas de un estado a otro.
Más importante aún es la sutileza de lo que está por llevarse a cabo, ya que vamos a transformar una tabla de secuencias en una Tabla de Verdad. Aquí veremos que el paso que separa una tabla de secuencias para un circuito secuencial de una Tabla de Verdad es en realidad un paso muy endeble.
Empezamos pues usando una tabla de secuencias que describa en forma completa las propiedades del flip-flop J-K:
Con un simple reacomodo de las columnas podemos ver a J y K como "salidas" Boleanas en función de las "entradas" Qn y Qn+1:
Obtenemos primero J en función de Qn y Qn+1 de por medio de minterms:
J = QnQn+1 + QnQn+1 + QnQn+1 + QnQn+1
J = Qn(Qn+1 + Qn+1) + QnQn+1
J = QnQn+1 + Qn
J = Qn(Qn+1 + Qn+1) + QnQn+1
J = QnQn+1 + Qn
Obtenemos ahora K usando el mismo procedimiento:
K = QnQn+1 + QnQn+1 + QnQn+1 + QnQn+1
K = QnQn+1 + Qn(Qn+1 + Qn+1)
K = Qn + QnQn+1
K = QnQn+1 + Qn(Qn+1 + Qn+1)
K = Qn + QnQn+1
PROBLEMA: Diseñar, usando flip-flops J-K, un contador síncrono cuya secuencia natural de estados sea la siguiente:
Una inspección preliminar de este problema nos indica que tratar de llevar a cabo su solución por intuición únicamente puede ser bastante difícil. Optamos entonces por recurrir a un método más formal desprovisto de "trucos".
Para empezar, podemos preparar unas tablas de secuencias en las cuales relacionamos los estados del contador previos a una transición con los estados del contador después de que ha ocurrido una transición:
Usando minterms, encontramos que para este contador:
Q1n+1 = Q1nQ2n + Q1nQ2n
Q1n+1 = Q1n(Q2n + Q2n)
Q1n+1 = Q1n
Q2n+1 = Q1nQ2n + Q1nQ2n
Q1n+1 = Q1n(Q2n + Q2n)
Q1n+1 = Q1n
Q2n+1 = Q1nQ2n + Q1nQ2n
Usando los resultados del problema anterior, podemos obtener las entradas requeridas por el primer flip-flop J-K del contador:
J1 = Q1nQ1n+1 + Q1n
J1 = Q1n(Q1n) + Q1n
J1 = Q1n
J1 = Q1n(Q1n) + Q1n
J1 = Q1n
K1 = Q1n + Q1nQ1n+1
K1 = Q1n + Q1nQ1n
K1 = Q1n
K1 = Q1n + Q1nQ1n
K1 = Q1n
Obtenemos ahora las entradas requeridas por el segundo flip-flop J-K del contador:
J2 = Q2nQ2n+1 + Q2n
J2 = Q2n(Q1nQ2n +Q1nQ2n) + Q2n
J2 = Q2nQ1nQ2n + Q1nQ2n + Q2n
J2 = Q1nQ2n + Q2n
J2 = Q2n(Q1nQ2n +Q1nQ2n) + Q2n
J2 = Q2nQ1nQ2n + Q1nQ2n + Q2n
J2 = Q1nQ2n + Q2n
Usando el mapa de Karnaugh, es posible simplificar aún más esta expresión:
J2 = Q1n + Q2n
Ahora procedemos a la obtención de K2:
K2 = Q2n + Q2nQ2n+1
K2 = Q2n + Q2n(Q1n + Q2n)(Q1n + Q2n)
K2 = Q2n + Q2n(Q1nQ1n + Q1nQ2n + Q1nQ2n + Q2nQ2n)
K2 = Q2n + Q2n(Q1nQ2n + Q1nQ2n)
K2 = Q2n + Q1nQ2n
K2 = Q2n + Q2n(Q1n + Q2n)(Q1n + Q2n)
K2 = Q2n + Q2n(Q1nQ1n + Q1nQ2n + Q1nQ2n + Q2nQ2n)
K2 = Q2n + Q2n(Q1nQ2n + Q1nQ2n)
K2 = Q2n + Q1nQ2n
Esta expresión también se puede simplificar usando el mapa de Karnaugh:
K2 = Q1n + Q2n
Tomando en cuenta los resultados obtenidos, el diseño del contador toma el siguiente aspecto:
Observamos que en el primer flip-flop J-K, las salidas complementarias están conectadas de modo invertido a las entradas J y K. Esto ocasiona que el primer flip-flop J-K actúe como un simple divisor binario o flip-flop T. Pero podemos obtener la misma acción con J=0 y K=0, lo cual simplifica el diseño. En general, cuando las salidas están conectadas en forma inversa a las entradas, estas entradas se pueden reemplazar con la condición J=0 y K=0, aprovechando la enorme versatilidad del flip-flop J-K para ello. El segundo flip-flop se presta también a esta simplificación. El diseño toma entonces el siguiente aspecto:
La siguiente simplificación es obvia. El diseño toma por fin su aspecto final:
PROBLEMA: Derivar para un flip-flop D la ecuación de su entrada D en función de Qn (el estado del flip-flop D previo a una transición) y de Qn+1 (el estado del flip-flop D después de que ha ocurrido una transición al siguiente estado).
Tomando en cuenta las propiedades del flip-flop D, desarrollamos primero una tabla de secuencias que describa el comportamiento para el cual queremos encontrar su expresión Boleana:
Usando minterms, la "salida" D del flip-flop en función de Qn y de Qn+1 será:
D = QnQn+1 + QnQn+1
D = Qn+1(Qn + Qn)
D = Qn+1
D = Qn+1(Qn + Qn)
D = Qn+1
PROBLEMA: En un problema anterior se pidió diseñar, utilizando flip-flops J-K, un contador capaz de poder generar la siguiente tabla de secuencias:
Resolver el mismo problema usando flip-flops D.
Usando los resultados de los dos problemas anteriores, tenemos primero que las entradas requeridas por cada flip-flop D del contador están dadas por las siguientes relaciones:
D1 = Q1n+1
D1 = Q1n
D2 = Q2n+1
D1 = Q1n
D2 = Q2n+1
D2 = Q1nQ2n + Q1nQ2n
Podemos ver que para D2 la salida es simplemente la de un NOR-EXCLUSIVO.
El contador toma entonces el siguiente aspecto:
Notamos a simple vista que resulta más económico construír el contador del problema original con flip-flops J-K que con flip-flops D.
Sin embargo, éste es un caso particular. Recuérdese cómo resultaba más sencillo construír un registro de transferencia con flip-flops D que construírlo con flip-flops J-K.
No existe una regla general que nos indique de antemano qué tipo de flip-flop producirá el diseño más económico, el diseño que requiera una cantidad menor de componentes. En la práctica, es necesario ensayar varios diseños y seleccionar de entre ellos el mejor.
PROBLEMA: Determinar si el siguiente contador es simétrico o asimétrico.
Obtenemos primero la secuencia natural del contador que es la siguiente:
La salida del circuito está determinada por el último flip-flop, Q3. El diagrama de tiempos de la salida del último flip-flop, obtenida directamente de la secuencia del contador arriba expuesta, junto con los pulsos de "reloj" a la entrada del circuito que producen dicha salida, es como sigue:
Puesto que un contador es simétrico solo si la forma de la señal de salida es simétrica para una entrada igualmente simétrica y uniforme de pulsos, podemos ver que que el contador es asimétrico, con una asimetría 3:2.
No hay comentarios:
Publicar un comentario