Un contador Moebius (Möbius, también conocido como twisted ring counter, switch-tail ring counter, walking ring counter, Johnson counter) es un tipo de contador de anillo (o ring counter) que modifica un solo bit en cada cambio de estado. Puede ser fácilmente implementado mediante un registro de desplazamiento conectando el complemento de la salida del registro a la entrada. De esta forma circula un stream de unos seguido de un stream de ceros a lo largo del anillo.

Este artículo explica cómo implementarlo utilizando flip-flops (o biestables) de tipo JK.



En este ejemplo se implementará un contador Möbius módulo 6 (de 3 bits), el cual tiene la siguiente tabla de transiciones:

Partiendo del estado 0, en la primera transición ingresa el primero de una serie de tres 1's en la posición menos significativa. Se observa que el contador comienza en el estado 0, y pasa por los estados 1, 3, 7, 6 y 4 sucesivamente, para volver al 0 y comenzar nuevamente. De esta forma, con 3 bits se implementa un contador módulo 6 (pasa por 6 estados). Con lo cual sobran dos combinaciones, o estados, por los que el contador nunca pasará: estos son 2 y 5.

En el diseño se utiliza un flip-flop JK para cada bit A, B y C del contador. La tabla de verdad del flip-flop JK es la siguiente:

JKQ(n)Q(n+1)
0000
0011
0100
0110
1001
1011
1101
1110

Funciona exactamente igual que un flip-flop SR excepto que para las entradas J=1 y K=1 se comporta como toggle.

Para implementar todas las transiciones de estado posibles es necesario utilizar los siguientes valores para las entradas J y K respectivamente ('x' es don't care):

Como todo circuito secuencial, a partir de las entradas y el estado actual se deben modelar las funciones de excitación y las salidas. En un contador, el estado actual es la salida, con lo cual no es necesario modelar ninguna salida. Por otro lado no posee entradas (el contador cambia automáticamente de estado en cada tic de reloj). Esto significa que sólo se deberán modelar las funciones de excitación (entradas a los elementos de memoria, en este caso flip-flops JK).

A partir de la tabla de estados del contador, junto con esta tabla de transiciones del flip-flop JK, se deben modelar las funciones de excitación para las entradas J y K de los 3 flip-flops: JA, KA, JB, KB, JC, KC.

Comenzar analizando las transiciones de uno de los flip-flops, por ejemplo A:

En cada cambio de estado se analiza qué valores deberán tomar J y K. A modo de ejemplo, en el estado 011 del contador el flip-flop A deberá cambiar su estado de 0 a 1:

Esto significa que en el estado 011 las entradas JA y KA deberán excitarse con 1 y don't care respectivamente para que en el siguiente pulso de reloj se produzca el cambio de transición deseado. Se cargan estos valores en sendos mapas de Karnaugh:

Se requieren 6 mapas de Karnaugh, uno para cada función de excitación. Tanto 'x' como '*' son don't care, simplemente se dibujan con símbolos diferentes para discriminar los opcionales del problema de aquellos originados por el tipo de flip-flop utilizado.

Al finalizar la carga, el resultado son las siguientes funciones de excitación:

La siguiente figura demuestra el circuito de la implementación utilizando flip-flops JK sincronizados por reloj (señal clk):

Referencias


Tal vez pueda interesarte


Compartí este artículo