Un contador en anillo es un tipo de contador compuesto por 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 anillas:
Los contadores de anillo se utilizan a menudo en el diseño de hardware (por ejemplo, diseño 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 recta y torcida tienen diferentes propiedades y ventajas y desventajas relativas.
Una desventaja general de los contadores de 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 del código, mientras que un contador de anillo directo puede representar sólo N estados y un contador Johnson puede representar sólo 2 N estados. Esta puede ser una consideración importante en implementaciones de hardware donde los registros son más caros que la lógica combinacional.
A veces se prefieren los contadores Johnson 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 inyectar externamente el primer bit de conteo al inicio. -arriba. El contador Johnson genera un código en el que los estados adyacentes difieren solo en un bit (es decir, tienen una distancia de Hamming de 1), como en un código Gray , lo que puede resultar útil si el patrón de bits se va a muestrear de forma asincrónica. [1]
Cuando se necesita una representación completamente decodificada o one-hot del estado del contador, como en algunos controladores de secuencia, se prefiere el contador de anillo recto. La propiedad one-hot 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 activar un bit y desactivar 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 puedan crear contadores de anillo bidireccionales o ascendentes y 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 establezca 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 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:
Observe la pequeña burbuja que indica la inversión de la señal Q del último registro de desplazamiento antes de retroalimentar la primera entrada D, lo que lo convierte en un contador Johnson.
Antes de los días de la informática digital, los contadores digitales se utilizaban para medir tasas de eventos aleatorios, como la desintegración radiactiva de partículas alfa y beta. Los contadores rápidos de "preescalado" redujeron la tasa de eventos aleatorios a tasas más manejables y más regulares. Antes de 1940 se utilizaban contadores de anillo de cinco estados junto con escaladores de división por dos para hacer escaladores de décadas (potencia de diez), como los desarrollados por CE Wynn-Williams . [5]
Los primeros contadores de anillo utilizaban solo un elemento activo (tubo de vacío, válvula o transistor) por etapa, basándose en la retroalimentación global en lugar de biestables biestables locales, para suprimir estados distintos de los estados calientes, por ejemplo en la solicitud de patente de 1941. de Robert E. Mumma de la Compañía Nacional de Cajas Registradoras . [6] Wilcox P. Overbeck inventó una versión que utiliza múltiples ánodos en un solo tubo de vacío, [7] [8] En reconocimiento a su trabajo, los contadores de anillos 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 de 2006 a 2018).
El ENIAC utilizó aritmética decimal basada en contadores de anillo único de 10 estados. Los trabajos de Mumma en NCR y Overbeck en MIT se encontraban entre los trabajos de la 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 contadores de anillo con un flip-flop de dos tubos o doble triodo por etapa. [12]
Robert Royce Johnson desarrolló varios contadores diferentes basados en registros de desplazamiento con el objetivo de crear diferentes números 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 de Heath Robinson y la computadora Colossus ), [14] y como acumulador. elementos contadores 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 directo generan códigos one-hot completamente decodificados que a menudo se utilizan 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 desde un contador Johnson, utilizando una puerta para cada estado. [15] [nota 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 en a la vez, como en un código Gray . [16] Los primeros ratones de computadora usaban codificaciones arriba-abajo (bidireccionales) de Johnson o Gray de 2 bits para indicar movimiento en cada una de las dos dimensiones, aunque en los ratones esos códigos generalmente no eran generados por anillos de flip-flops (sino por electro -codificadores de cuadratura mecá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 andante, también llamado contador Johnson, y algunas resistencias pueden producir una aproximación sin fallos de una onda sinusoidal. Cuando se combina con un preescalador ajustable , este es quizás el oscilador controlado numéricamente más simple . Dos de estos contadores de anillo ambulante son quizás la forma más sencilla de generar la manipulación por desplazamiento de frecuencia de fase continua utilizada en la señalización multifrecuencia de doble tono y en los primeros tonos de módem . [26]
{{cite book}}
: Mantenimiento 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 la misma manera que los disyuntores operados 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 pulsos suministrados por el tambor de proceso. […] Inicialmente, los disparadores se restablecen en APAGADO con la excepción del disparador
de inicio
, que está en ENCENDIDO. Cada pulso de entrada negativo apagará el disparador que está encendido. La caída del voltaje en el pin 10 del gatillo que se está apagando activará el siguiente gatillo. Esto continúa a través de un anillo cerrado […]
contadores necesarios para X e Y simplemente cuentan hasta 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 de Moebius).(41 páginas)
{{cite book}}
: |work=
ignorado ( ayuda )