# Comptador d'anell

Un comptador d'anell és un tipus de comptador format per biestables connectades a un registre de desplaçament, amb la sortida de l'última xancleta alimentada a l'entrada del primer, fent una estructura "circular" o "anell".
Hi ha dos tipus de comptadors d'anells:
* Un comptador d'anell directe, també conegut com a comptador one-hot, connecta la sortida de l'últim registre de desplaçament a la primera entrada del registre de desplaçament i fa circular un bit d'un (o zero) al voltant de l'anell.
* Un comptador d'anell retorçat, també anomenat comptador d'anells de cua d'interruptor, comptador d'anells ambulants, comptador de Johnson o comptador de cinta de Möbius, connecta el complement de la sortida de l'últim registre de desplaçament a l'entrada del primer registre i fa circular un flux d'uns seguit de zeros al voltant de l'anell.

## Seqüències de comptadors d'anells de quatre bits

| Straight ring counter | Straight ring counter | Straight ring counter | Straight ring counter | Straight ring counter | Johnson counter | Johnson counter | Johnson counter | Johnson counter | Johnson counter |
| State | Q0 | Q1 | Q2 | Q3 | State | Q0 | Q1 | Q2 | Q3 |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
| 2 | 0 | 0 | 1 | 0 | 2 | 1 | 1 | 0 | 0 |
| 3 | 0 | 0 | 0 | 1 | 3 | 1 | 1 | 1 | 0 |
| 0 | 1 | 0 | 0 | 0 | 4 | 1 | 1 | 1 | 1 |
| 1 | 0 | 1 | 0 | 0 | 5 | 0 | 1 | 1 | 1 |
| 2 | 0 | 0 | 1 | 0 | 6 | 0 | 0 | 1 | 1 |
| 3 | 0 | 0 | 0 | 1 | 7 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |

## Propietats

Els comptadors d'anells s'utilitzen sovint en el disseny de maquinari (per exemple, disseny ASIC i FPGA) per crear màquines d'estat finit. Un comptador binari requeriria un circuit sumador que és substancialment més complex que un comptador d'anell i té un retard de propagació més elevat a mesura que augmenta el nombre de bits, mentre que el retard de propagació d'un comptador d'anell serà gairebé constant independentment del nombre de bits del codi.
Les formes rectes i retorçades tenen propietats diferents i avantatges i desavantatges relatius.
Un desavantatge general dels comptadors d'anell és que són codis de menor densitat que les codificacions binàries normals dels números d'estat. Un comptador binari pot representar 2 $^N$ estats, on N és el nombre de bits del codi, mentre que un comptador d'anell recte només pot representar N estats i un comptador de Johnson només pot representar 2 N estats. Això pot ser una consideració important en les implementacions de maquinari on els registres són més cars que la lògica combinacional.
Els comptadors de Johnson de vegades es veuen afavorits, perquè ofereixen el doble d'estats de recompte a partir del mateix nombre de registres de desplaçament, i perquè són capaços d'inicialitzar-se des de l'estat de tots zeros, sense requerir que el primer bit de recompte s'injecti externament a l'inici. -amunt. El comptador de Johnson genera un codi en què els estats adjacents només difereixen en un bit (és a dir, tenen una distància de Hamming d'1), com en un codi Gray, que pot ser útil si el patró de bits es mostrarà de manera asíncrona.
Quan es necessita una representació totalment descodificada o one-hot de l'estat del comptador, com en alguns controladors de seqüència, es prefereix el comptador d'anell recte. La propietat one-hot significa que el conjunt de codis està separat per una distància de Hamming mínima de 2, de manera que es pot detectar qualsevol error d'un sol bit (com qualsevol patró d'error que no sigui activar un bit i apagar un bit).
De vegades s'utilitzen registres de desplaçament bidireccionals (utilitzant multiplexors per prendre l'entrada de cada flip-flop del seu veí esquerre o dret), de manera que es poden fer comptadors d'anells bidireccionals o amunt-abaix.

## Esquemes lògics

El comptador d'anell recte té l'estructura lògica que es mostra aquí:
En lloc de la línia de restabliment que configura el patró inicial d'one-hot, l'anell recte de vegades es fa autoinicialitzar mitjançant l'ús d'una porta de retroalimentació distribuïda a totes les sortides, excepte aquesta última, de manera que es presenta un 1 a l'entrada quan no hi ha 1 en cap etapa que no sigui l'última.
Cal tenir en compte la petita bombolla que indica la inversió del senyal Q de l'últim registre de desplaçament abans de retroalimentar-se a la primera entrada D, convertint-se en un comptador de Johnson.

## Història

Abans dels dies de la informàtica digital, els comptadors digitals s'utilitzaven per mesurar les taxes d'esdeveniments aleatoris com ara les desintegracions radioactives a partícules alfa i beta. Els comptadors ràpids de "preescala" van reduir la taxa d'esdeveniments aleatoris a taxes més manejables i regulars. Els comptadors d'anells de cinc estats es van utilitzar juntament amb els escaladors dividits per dos per fer escaladors de dècades (potència de deu) abans de 1940, com els desenvolupats per CE Wynn-Williams.
Els primers comptadors d'anells utilitzaven només un element actiu (tub de buit, vàlvula o transistor) per etapa, basant-se en la retroalimentació global en lloc de les xancles biestables locals, per suprimir estats diferents dels estats d'un calent, per exemple a la presentació de patents de 1941. de Robert E.Mumma de la National Cash Registor Company. Wilcox P. Overbeck va inventar una versió que utilitzava múltiples ànodes en un sol tub de buit, En reconeixement del seu treball, els comptadors d'anells de vegades es coneixen com "anells Overbeck" (i després de 2006, de vegades com a "comptadors Overbeck", ja que la Viquipèdia va utilitzar aquest terme des del 2006 fins al 2018).
L'ENIAC va utilitzar l'aritmètica decimal basada en comptadors d'un anell calent de 10 estats. Les obres de Mumma a NCR i Overbeck al MIT es trobaven entre les obres d'art anterior examinades per l'oficina de patents en invalidar les patents de J. Presper Eckert i John Mauchly per a la tecnologia ENIAC.

## Aplicacions

Les primeres aplicacions dels comptadors d'anell van ser com a preescaladors de freqüència (per exemple, per al comptador Geiger i instruments d'aquest tipus), com a comptadors per comptar les ocurrències de patrons en criptoanàlisi (per exemple, a la màquina de trencament de codis Heath Robinson i l'ordinador Colossus), i com a acumulador. elements del comptador per a l'aritmètica decimal en ordinadors i calculadores, utilitzant bi-quinari (com en el Colossus) o un calent de deu estats (com en el ENIAC) representacions.
Els comptadors d'anells rectes generen codis d'un calent totalment descodificats que sovint s'utilitzen per habilitar una acció específica en cada estat d'un cicle de control cíclic. Els codis one-hot també es poden descodificar des d'un comptador de Johnson, utilitzant una porta per a cada estat.
A més de ser una forma alternativa eficaç de generar codis d'un sol calent i pre-escaladors de freqüència, un comptador de Johnson també és una manera senzilla de codificar un cicle d'un nombre parell d'estats que es poden mostrejar de manera asíncrona sense problemes, ja que només un bit canvia a l'hora. un temps, com en un codi Gray. Els primers ratolins d'ordinador utilitzaven codificacions de Johnson o Gray de 2 bits cap amunt (bidireccional) per indicar el moviment en cadascuna de les dues dimensions, tot i que en els ratolins aquests codis no eren generalment generats per anells de xancletes (sinó per electromecànics o codificadors de quadratura òptica). Un codi Johnson de 2 bits i un codi Gray de 2 bits són idèntics, mentre que per a 3 o més bits els codis Gray i Johnson són diferents. En el cas de 5 bits, el codi és el mateix que el codi de de per a dígits decimals.
Un comptador d'anells ambulants, també anomenat comptador de Johnson, i unes quantes resistències poden produir una aproximació sense errors d'una ona sinusoïdal. Quan es combina amb un prescaler ajustable, aquest és potser l'oscil·lador de control numèric més senzill. Dos d'aquests comptadors d'anells són potser la manera més senzilla de generar la codificació de canvi de freqüència o modulació per fase contínua que s'utilitza en la senyalització multifreqüència de doble to o modulació per tons i els primers tons de mòdem.

## Referències

* ↑ «Ring Counter in Digital Logic» (en anglès americà), 26-06-2018. [Consulta: 5 febrer 2025].
* ↑ «Ring Counter in Digital Electronics - Javatpoint» (en anglès). [Consulta: 5 febrer 2025].
* ↑ «Ring Counters | Shift Registers | Electronics Textbook» (en anglès). [Consulta: 5 febrer 2025].
* ↑ «Ring Counter: A Type of Shift Register Counter | Electrical4U» (en anglès americà), 09-05-2024. [Consulta: 5 febrer 2025].