miércoles, 3 de octubre de 2012

Contadores Sincronos

El termino síncrono indica que los eventos poseen una relación temporal fija entre ellos, es decir, que ocurren en el mismo instante de tiempo. Esto indica que en un contador síncrono los Flip-Flops siempre comparten la misma señal de reloj.

Contador Síncrono Binario de 2 bits

Para obtener un contador síncrono, se debe usar 2 Flip-Flops J-K. Como todo el reloj es común, no importa si es flanco de subida o bajada en los Flip-Flops, pero todos los Flip-Flops deben ser iguales. Entonces se debe conectar la señal de reloj a todos los Flip-Flops. Las entradas J y K del Flip-Flop cuya salida en Q0, es decir, J0 y K0 deben ir conectados a Vcc, esto va a permitir que esta salida siempre bascula. Luego se conecta Q0 a las entradas J1 y K1. La siguiente figura muestra la implementación del contador y los oscilogramas que dan como resultado de su funcionamiento.

En los oscilogramas, se puede apreciar mismo comportamiento que el contador síncrono de 2 bits, sin embargo, esta implementación tiene una mejora radical. Todos los Flip-Flops actúan en el mismo instante de tiempo, esto indica que el retardo de propagación de un estado a otro siempre es el mismo sin importar el estado en que se encuentre.

Contador Síncrono Binario de 4 bits

Para obtener un contador síncrono de 4 bits, se debe usar 4 Flip-Flops J-K. La implementación es igual que la anterior, es decir que el Flip-Flop cuya salida es Q2 tiene en sus entradas J2 y K2 una AND entre Q0 y Q1. La siguiente figura muestra la implementación del contador y los oscilogramas que dan como resultado de su funcionamiento.

En los oscilogramas, se puede apreciar mismo comportamiento que el contador síncrono de 4 bits, sin embargo, esta implementación tiene una mejora radical. Todos los Flip-Flops actúan en el mismo instante de tiempo, esto indica que el retardo de propagación de un estado a otro siempre es el mismo sin importar el estado en que se encuentre.

Contador Sincrono Ascendente Descendente

Un contador síncrono ascendente descendente, es aquel capaz de contar en una secuencia determinada en cualquier dirección. Suponiendo un contador binario de 3 bits, si es solo ascendente este contaría desde 0 a 7. Si se tiene un contador ascendente descendente, este contador puede contar de 0 a 7 y de 7 a 0, controlando la dirección por una entrada adicional.

En un contador síncrono, las entradas de J y K de cada Flip-Flop, depende de las salidas Q de los Flip-Flops anteriores produciendo un conteo ascendente. Para generar un conteo descendente, Las entradas J y K de cada Flip-Flop, deben depender de las salidas Q negado de los Flip-Flops.

Para diseñar un contador ascendente descendente binario de 3 bits, se debe tener en cuenta la siguiente tabla de secuencia.

CLKA/DQ2Q1Q0
0000
0001
0010
0011
0100
0101
0110
0111
0000
1000
1111
1110
1101
1100
1011
1010
1001
1000
1111

En esta tabla se puede apreciar que si la cuenta es ascendente, el estado siguiente de 1112 es 0002. Si la cuenta es descendente el estado siguiente de 0002 es 1112.

Con base en los conceptos anteriores, la implementación del contador se presenta en la siguiente figura.

En el oscilograma se observa que mientras la entrada A/D se encuentra en 0, el contador cuenta de forma ascendente y mientras la entrada A/D se encuentra en 1, el contador cuenta de forma descendente.

Diseño de Contadores Sincronos

Basado en el concepto de contador síncrono, es posible elaborar diseños para obtener una secuencia determinada. Esta secuencia, puede llegar a ser incluso un a secuencia aleatoria.

Para realizar el diseño del contador, es necesario seguir una serie de pasos. Para explicar el proceso de diseño, se plantea un contador de código Gray.

Paso 1 de diseño de contador: Tabla de Secuencia

Es necesario determinar la tabla de secuencia. La tabla de secuencia debe especificar en estricto orden los estados que tendrá el contador. Hay que tener en cuenta que el siguiente estado del último será siempre el primero. Es necesario también tener en cuenta que un estado tendrá únicamente un siguiente estado. La tabla de secuencia también determina el número de bits del contador y a su vez determina el número de Flip-Flops necesarios para el contador. Por cada bit en la tabla de secuencia, se requiere un Flip-Flop en la implementación del contador. Para el caso del contador de código Gray se usara 4 bits que implica usar 4 Flip-Flops. La tabla de secuencia del contador de código Gray es la siguiente:

CLKQ3Q2Q1Q0
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000
Paso 2 de diseño de contador: Tablas de transición de estados del Flip-Flop

Para la implementación del contador, es necesario escoger un tipo de Flip-Flop. Generalmente se elige Flip-Flop J-K gracias a sus 4 posibles estados. La tabla de transición de estados del Flip-Flop, determina que valores se requieren en las entradas J y K para obtener una transición de estado actual a un estado futuro. Un estado actual hace referencia al valor de la salida Q del Flip-Flop un instante antes de efectuar un flanco de reloj. Un estado futuro hace referencia al valor de la salida Q del Flip-Flop un instante despues de efectuar un flanco de reloj. Entonces la tabla de transición de estados del Flip-Flop J-K es la siguiente:

Transiciones
de Salida
Entradas
QtQt+1JK
000X
011X
10X1
11X0

La tabla anterior expone los siguientes casos:

  • Si el Flip-Flop tiene un estado presente Qt=0 y se desea obtener un estado futuro Qt+1=0 entonces se le debe proveer al Flip-Flop un estado de no cambio o un estado de reset. Esto indica que se le debe proveer un J=0, K=0 o J=0, K=1. Esto indica que necesariamente J debe ser 0 y K puede ser 0 o 1. Entonces se enuncia como J=0 y K=X.
  • Si el Flip-Flop tiene un estado presente Qt=0 y se desea obtener un estado futuro Qt+1=1 entonces se le debe proveer al Flip-Flop un estado de set o un estado de basculación. Esto indica que se le debe proveer un J=1, K=0 o J=1, K=1. Esto indica que necesariamente J debe ser 1 y K puede ser 0 o 1. Entonces se enuncia como J=1 y K=X.
  • Si el Flip-Flop tiene un estado presente Qt=1 y se desea obtener un estado futuro Qt+1=0 entonces se le debe proveer al Flip-Flop un estado de reset o un estado de basculacion. Esto indica que se le debe proveer un J=0, K=1 o J=1, K=1. Esto indica que necesariamente K debe ser 1 y J puede ser 0 o 1. Entonces se enuncia como J=X y K=1.
  • Si el Flip-Flop tiene un estado presente Qt=1 y se desea obtener un estado futuro Qt+1=1 entonces se le debe proveer al Flip-Flop un estado de no cambio o un estado de set. Esto indica que se le debe proveer un J=0, K=0 o J=1, K=0. Esto indica que necesariamente K debe ser 0 y J puede ser 0 o 1. Entonces se enuncia como J=X y K=0.
Paso 3 de diseño de contador: Mapas de Karnaugh

Los mapas de Karnaugh se usan para determinar la lógica requerida para las entradas J y K de cada Flip-Flop del contador. Se debe utilizar un mapa de Karnaugh para la entrada J y un mapa de Karnaugh para la entrada K. Cada celda del mapa de Karnaugh representa un estado de la tabla de secuencia establecida para el diseño. En cada celda del mapa de Karnaugh, se coloca el valor que requiere el Flip-Flop para obtener estado siguiente necesario. Por ejemplo: el primer estado de la tabla de secuencia es 00002 y el estado siguiente es 00012, entonces si se desea diseñar la salida Q0, se debe hacer una mapa de Karnaugh para J0 y un mapa de Karnaugh para K0. Para el mapa de Karnaugh de J0, se debe colocar en la celda que corresponde al valor 00002, lo que necesita J en un Flip-Flop J-K para que el estado futuro sea 1, dado un estado presente 0. Revisando la tabla de transición de estado del Flip-Flop J-K, se puede observar que el valor necesario es 1, entonces en la celda 0000 del Flip-Flop se coloca un 1. Se llena el mapa de Karnaugh en todas sus celdas. Se obtiene los siguientes mapas:

Paso 4 de diseño de contador: Expresiones Booleanas

Una vez se ha construido los mapas de Karnaugh, se hace la simplificación para obtener las expresiones Booleanas para J y K de cada Flip-Flop.

Paso 5 de diseño de contador: Implementación

Se implementa el contador con base en las expresiones Booleanas obtenidas en el paso anterior. La implementación se presenta en la siguiente figura.

En la implementación anterior, se ha implementado los resultados de los mapas de Karnaugh para cada una de las entradas del Flip-Flop. Los oscilogramas muestra la secuencia descrita en la tabla de secuencia.

Paso 6 de diseño de contador: Pruebas

Se puede probar el funcionamiento del contador con los oscilogramas, sin embargo la lectura de estos puede llegar a ser compleja. En la practica la forma mas adecuada de revisar el comportamiento del contador es usando un conversor binario – BCD, un decodificador manejador y dos displays que van a permitir visualizar los diferentes valores desde 0 hasta 15 decimal.

Contadores en Cascada

Los contadores en cascada son una implementación que permite conectar varios contadores para generar una secuencia de conteo de varios dígitos. Los contadores con los que se construye un contador en cascada, generalmente son contadores modulo 10, sin embargo, pueden ser de modulo menor. Adicionalmente, en un contador en cascada puede intervenir contadores de diferentes módulos. Un ejemplo puede ser un reloj digital. Para implementar un reloj digital, se requeriría un contador modulo 10 para las unidades de segundos, un contador modulo 6 para las decenas de segundos, un contador modulo 10 para las unidades de minutos, un contador modulo 6 para las decenas de minutos y un contador modulo 12 para las horas.

Para implementar un contador en cascada, es necesario partir de contadores previamente implementados preferiblemente síncronos. Para ello se puede hacer uso de diferentes circuitos integrados como el 74LS190.

Por ejemplo, se puede implementar un contador modulo 100 ascendente / descendente con base en dos contadores modulo 10. Para ello, entonces se utilizaría el contador 74LS190. Este contador tiene una salida que es RC (Riple clock), la cual se coloca en 0, cuando el valor del contador es el mayor y su cuenta es ascendente o cuando el valor del contador es el menor y su cuenta es descendente.

Entonces se podría obtener la secuencia deseada conectando los relojes de los dos contadores a un oscilador y la salida RC del contador del digito de menor peso o unidades a la entrada CE (chip enable) del contador del digito de mayor peso o decenas.

La implementación se presenta en la siguiente figura.

No hay comentarios:

Publicar un comentario