Un contador de anillo es un tipo de contador compuesto de flip-flops conectados a un registro de desplazamiento , con la salida del último flip-flop alimentada a la entrada del primero, formando una estructura "circular" o "de anillo".
Hay dos tipos de contadores de anillos:
Los contadores de anillo se utilizan a menudo en el diseño de hardware (por ejemplo, diseño de ASIC y FPGA ) para crear máquinas de estados finitos . Un contador binario requeriría un circuito sumador que es sustancialmente más complejo que un contador de anillo y tiene un mayor retraso de propagación a medida que aumenta el número de bits, mientras que el retraso de propagación de un contador de anillo será casi constante independientemente del número de bits en el código.
Las formas rectas y torcidas tienen diferentes propiedades y ventajas y desventajas relativas.
Una desventaja general de los contadores en anillo es que son códigos de menor densidad que las codificaciones binarias normales de números de estado. Un contador binario puede representar 2 N estados, donde N es el número de bits en el código, mientras que un contador en anillo simple puede representar solo N estados y un contador Johnson puede representar solo 2 N estados. Esto puede ser una consideración importante en implementaciones de hardware donde los registros son más costosos que la lógica combinacional.
Los contadores Johnson son a veces los preferidos, porque ofrecen el doble de estados de conteo a partir del mismo número de registros de desplazamiento, y porque pueden autoinicializarse desde el estado de todos ceros, sin necesidad de que el primer bit de conteo se inyecte externamente al inicio. El contador Johnson genera un código en el que los estados adyacentes difieren en solo un bit (es decir, tienen una distancia de Hamming de 1), como en un código Gray , que puede ser útil si el patrón de bits se va a muestrear de forma asincrónica. [1]
Cuando se necesita una representación totalmente decodificada o de un solo bit del estado del contador, como en algunos controladores de secuencia, se prefiere el contador de anillo recto. La propiedad de un solo bit significa que el conjunto de códigos está separado por una distancia de Hamming mínima de 2, [2] por lo que cualquier error de un solo bit es detectable (al igual que cualquier patrón de error que no sea encender un bit y apagar un bit).
A veces se utilizan registros de desplazamiento bidireccionales (usando multiplexores para tomar la entrada para cada flip-flop de su vecino izquierdo o derecho), de modo que se pueden crear contadores de anillo bidireccionales o ascendentes-descendentes. [3]
El contador de anillo recto tiene la estructura lógica que se muestra aquí:
En lugar de que la línea de reinicio configure el patrón one-hot inicial , el anillo recto a veces se autoinicializa mediante el uso de una puerta de retroalimentación distribuida en todas las salidas excepto la última, de modo que se presenta un 1 en la entrada cuando no hay ningún 1 en ninguna etapa excepto la última. [4]
Un contador Johnson, llamado así por Robert Royce Johnson , es un anillo con una inversión; aquí hay un contador Johnson de 4 bits:
Tenga en cuenta la pequeña burbuja que indica la inversión de la señal Q del último registro de desplazamiento antes de realimentarla a la primera entrada D, lo que lo convierte en un contador Johnson.
Antes de la era de la computación digital, se utilizaban contadores digitales para medir tasas de eventos aleatorios, como la desintegración radiactiva en partículas alfa y beta. Los contadores rápidos de "preescalado" reducían la tasa de eventos aleatorios a tasas más manejables y más regulares. Los contadores de anillo de cinco estados se utilizaban junto con escaladores de división por dos para hacer escaladores de décadas (potencias de diez) antes de 1940, como los desarrollados por CE Wynn-Williams . [5]
Los primeros contadores de anillo usaban solo un elemento activo (tubo de vacío, válvula o transistor) por etapa, basándose en retroalimentación global en lugar de flip-flops biestables locales, para suprimir estados distintos de los estados one-hot, por ejemplo en la presentación de patente de 1941 de Robert E. Mumma de la National Cash Registor Company . [6] Wilcox P. Overbeck inventó una versión que usaba múltiples ánodos en un solo tubo de vacío, [7] [8] En reconocimiento a su trabajo, los contadores de anillo a veces se denominan "anillos Overbeck" [9] [10] (y después de 2006, a veces como "contadores Overbeck", ya que Wikipedia usó ese término desde 2006 hasta 2018).
El ENIAC utilizaba aritmética decimal basada en contadores de anillo de un solo estado de 10 estados. Los trabajos de Mumma en NCR y Overbeck en MIT se encontraban entre los trabajos de técnica anterior examinados por la oficina de patentes al invalidar las patentes de J. Presper Eckert y John Mauchly para la tecnología ENIAC. [11]
En la década de 1950, aparecieron los contadores de anillo con un flip-flop de dos tubos o de dos triodos por etapa. [12]
Robert Royce Johnson desarrolló varios contadores diferentes basados en registros de desplazamiento con el objetivo de crear diferentes cantidades de estados con la lógica de retroalimentación más simple posible, y solicitó una patente en 1953. [13] El contador Johnson es el más simple de ellos.
Las primeras aplicaciones de los contadores de anillo fueron como preescaladores de frecuencia (por ejemplo, para el contador Geiger y otros instrumentos similares), [5] como contadores para contar ocurrencias de patrones en criptoanálisis (por ejemplo, en la máquina de descifrado de códigos Heath Robinson y la computadora Colossus ), [14] y como elementos contadores acumuladores para aritmética decimal en computadoras y calculadoras, utilizando representaciones biquinarias (como en Colossus) o one-hot de diez estados (como en ENIAC ).
Los contadores de anillo recto generan códigos one-hot completamente decodificados que se utilizan a menudo para habilitar una acción específica en cada estado de un ciclo de control cíclico. Los códigos one-hot también se pueden decodificar a partir de un contador Johnson, utilizando una compuerta para cada estado. [15] [nb 1]
Además de ser una forma alternativa eficiente de generar códigos one-hot y preescaladores de frecuencia, un contador Johnson también es una forma sencilla de codificar un ciclo de un número par de estados que se pueden muestrear de forma asincrónica sin fallas, ya que solo cambia un bit a la vez, como en un código Gray . [16] Los primeros ratones de computadora usaban codificaciones Johnson o Gray de 2 bits arriba-abajo (bidireccionales) para indicar movimiento en cada una de las dos dimensiones, aunque en los ratones esos códigos no se generaban habitualmente mediante anillos de flip-flops (sino mediante codificadores de cuadratura electromecánicos u ópticos ). [17] Un código Johnson de 2 bits y un código Gray de 2 bits son idénticos, mientras que para 3 o más bits los códigos Gray y Johnson son diferentes. En el caso de 5 bits, el código es el mismo que el código Libaw–Craig para dígitos decimales. [18] [19] [20] [21] [22] [23] [24] [25]
Un contador de anillo móvil, también llamado contador Johnson, y algunas resistencias pueden producir una aproximación sin fallos de una onda sinusoidal. Cuando se combina con un prescaler ajustable , este es quizás el oscilador controlado numéricamente más simple . Dos de estos contadores de anillo móvil son quizás la forma más simple de generar la modulación por desplazamiento de frecuencia de fase continua utilizada en la señalización multifrecuencia de tono dual y los primeros tonos de módem . [26]
{{cite book}}
: Mantenimiento de CS1: errores de ISBN ignorados ( enlace )(519 páginas) [1][…] El anillo Overbeck se utiliza para suministrar pulsos temporizados dentro de circuitos informáticos de forma muy similar a como los disyuntores accionados por levas suministran pulsos temporizados en máquinas mecánicas. Consiste en un conjunto de disparadores con una entrada común desde la
línea de accionamiento del anillo
que transporta los pulsos suministrados por el tambor de proceso. […] Inicialmente, los disparadores se reinician en OFF con la excepción del disparador
de inicio
, que está ON. Cada pulso de entrada negativo apagará el disparador que está ON. La caída de voltaje en el pin 10 del disparador que se está apagando activará el siguiente disparador. Esto continúa a través de un anillo cerrado […]
Los contadores necesarios para X e Y simplemente cuentan a través de cuatro estados, en cualquier dirección (arriba o abajo), cambiando solo un bit a la vez (es decir, 00, 01, 11, 10). Este es un caso simple de un contador de código Gray o un contador Johnson (contador Moebius).(41 páginas)
{{cite book}}
: |work=
ignorado ( ayuda )