
Figuur 1: Ringteller
Een ringteller is een speciaal soort schuifregister, ontworpen in een gesloten-lusformaat waarbij de uitvoer van de laatste flip-flop wordt teruggestuurd naar de eerste.Deze lusopstelling onderscheidt hem van standaard schuifregisters, waar de datastroom stopt na de laatste flip-flop.De werking van een ringteller draait om een stel flip-flops.Het aantal toestanden dat de teller direct kan vasthouden, hangt af van het aantal flip-flops dat in het circuit wordt gebruikt.Een 4-bits ringteller bevat bijvoorbeeld vier flip-flops.In praktische termen volgt elke flip-flop een specifieke volgorde, waardoor de ringteller belangrijke taken kan uitvoeren, zoals timing en sequencing in digitale systemen.
In een typische ringteller regelt een klokpuls (CLK) de werking van alle flip-flops tegelijkertijd, waardoor het een synchroon systeem wordt.Elke flip-flop heeft ook twee speciale ingangen – preset (PR) en clear (CLR) – die voorrang hebben op andere ingangen.Wanneer de vooraf ingestelde ingang een laag signaal ontvangt, wordt de uitgang van de flip-flop naar hoog gedwongen.Op dezelfde manier wordt, wanneer de clear-ingang een laag signaal ontvangt, de uitgang van de flip-flop teruggezet naar laag.Deze vooraf ingestelde en duidelijke commando's zorgen ervoor dat de uitgangen stabiel blijven en niet worden beïnvloed door andere ingangen of kloksignalen.

Figuur 2: 8-bits ringteller
Een 8-bits ringteller is een digitaal circuit dat bestaat uit acht D-type flip-flops die in een continue lus zijn gerangschikt.De uitvoer van de achtste flip-flop wordt teruggevoerd naar de invoer van de eerste, waardoor een ononderbroken cyclus ontstaat.Dankzij dit gesloten-lusontwerp kan de teller door een reeks verschillende toestanden stappen, waarbij elke toestand overeenkomt met een van de flip-flops die actief is.De 8-bits configuratie kan in totaal acht unieke toestanden verwerken, wat de complexiteit van de teller vergroot in vergelijking met kleinere configuraties.
De werking van de 8-bits ringteller begint door de eerste flip-flop in een actieve toestand te zetten, terwijl de overige flip-flops inactief zijn.Vervolgens wordt er op uniforme wijze een kloksignaal op alle flip-flops toegepast, zodat toestandsovergangen in het hele circuit tegelijkertijd plaatsvinden.Terwijl de klok pulseert, verschuift de actieve toestand van de ene flipflop naar de volgende in een voorspelbare cyclus.Dit opeenvolgende schakelen gaat door totdat de laatste flip-flop zijn uitvoer teruggeeft aan de eerste, waardoor de lus is voltooid.

Figuur 3: 4-bits ringteller
Om een 4-bits ringteller te laten werken, wordt deze doorgaans geïnitialiseerd met de startstatus '0001'.In deze opstelling is de eerste flip-flop (FF0) ingesteld op uitvoer '1', terwijl de andere drie flip-flops (FF1, FF2 en FF3) worden gewist naar '0'.Deze initiële configuratie zorgt ervoor dat slechts één flip-flop de '1'-status heeft, die vervolgens bij elke klokcyclus door de rest van de flip-flops zal circuleren.
Terwijl de klok pulseert, verschuift de '1' van FF0 naar FF1, vervolgens naar FF2, FF3 en uiteindelijk terug naar FF0, waardoor een zich herhalende lus ontstaat.Deze progressie gaat verder waarbij elke flip-flop om de beurt de '1'-status vasthoudt, terwijl de anderen '0' blijven.Dit patroon van toestandsveranderingen vormt de basiswerking van de ringteller en zorgt voor een voorspelbare volgorde terwijl deze door alle vier de flip-flops loopt.
Om het gedrag van de ringteller beter te begrijpen, kunnen golfvormsimulaties met behulp van tools als Verilog HDL op platforms zoals Xilinx nuttig zijn.Deze simulaties genereren een grafische weergave van de toestandsovergangen van de teller, zodat u kunt zien hoe de '1' bij elke klokpuls van de ene flip-flop naar de volgende beweegt.Tijdens één klokcyclus verschuift de '1' bijvoorbeeld van FFO naar FF1, en in de volgende cyclus beweegt hij naar FF2, totdat hij terugkeert naar FFO nadat hij FF3 heeft bereikt.Deze visuele hulpmiddelen zijn niet alleen nuttig voor het monitoren van de opeenvolgende verschuivingen, maar ook voor het bevestigen van de nauwkeurigheid van de timing en overgangen in het ontwerp.Ze bieden een duidelijk beeld van de werking van de belteller, wat geschikt is om te verifiëren dat het apparaat correct presteert in echte toepassingen.
Een waarheidstabel is een serieus hulpmiddel dat wordt gebruikt om de invoer- en uitvoerstatussen van een ringteller in kaart te brengen, waardoor een duidelijk overzicht wordt gegeven van hoe de teller in digitale circuits werkt.Voor een 4-bits ringteller laat de tabel zien hoe de '1'-toestand in een herhalende cyclus door elke flip-flopuitgang (Q0, Q1, Q2, Q3) beweegt.De ingangen, zoals de overheersende ingang (ORI) en de klokpuls (CLK), worden ook vermeld om te laten zien hoe deze de statusovergangen beïnvloeden.Deze tabel legt het cyclische gedrag van de teller vast, waarbij de '1' van de ene flip-flop naar de volgende gaat en uiteindelijk teruggaat naar het startpunt.
In elke klokcyclus verschuift de '1' van de ene uitgang naar de volgende, van Q0 naar Q1, Q1 naar Q2, Q2 naar Q3 en uiteindelijk terug naar Q0.Deze opeenvolgende beweging is de essentie van hoe een ringteller functioneert, en ondersteunt rechtstreeks de behoeften van systemen die afhankelijk zijn van herhaalde, voorspelbare reeksen.Apparaten zoals digitale horloges, rotatiesensoren en positie-encoders profiteren allemaal van deze cyclische werking, waarbij nauwkeurigheid en timing worden gebruikt.

Figuur 4: Verilog HDL-programma voor ringteller
Het volgende Verilog HDL-programma is ontworpen om het gedrag van een ringteller te modelleren met behulp van een modulaire aanpak.Elke module in de code komt overeen met een flip-flop in de ringteller, waarbij de uitvoer van de ene module rechtstreeks wordt ingevoerd in de invoer van de volgende.Deze keten van verbindingen wordt bestuurd door stijgende flankklokpulsen, die de toestandsovergangen over alle flip-flops synchroniseren, waardoor het systeem op een gecoördineerde manier werkt.
Ringtellers zijn er in twee hoofdtypen, elk met zijn unieke operationele kenmerken: de rechte ringenteller en de gedraaide ringenteller.Beide dienen verschillende doeleinden, afhankelijk van de behoeften van het digitale systeem.

Figuur 5: Rechte ringteller (one-hot-teller)
Een straight-ring-teller, vaak een "one-hot"-teller genoemd, werkt door een enkele '1' door een reeks flip-flops in een lus te sturen.Bij elke klokpuls gaat de '1' naar de volgende flip-flop terwijl alle andere flip-flops op '0' blijven staan.Dit eenvoudige, cyclische ontwerp is ideaal voor toepassingen die slechts één actieve toestand tegelijk vereisen, zoals basisreeksgeneratoren of schuifregisters.Het eenvoudige karakter van de rechte ringenteller zorgt voor gebruiksgemak en betrouwbaarheid in systemen waar een eenvoudig herhalend patroon nodig is.

Figuur 6: Gedraaide ringenteller (Johnson-teller)
De gedraaide ringenteller, ook wel Johnson-teller genoemd, voegt een aanzienlijke wijziging toe aan het basisontwerp.In deze versie wordt de uitgang van de laatste flip-flop omgekeerd voordat deze wordt teruggevoerd naar de ingang van de eerste flip-flop.Deze inversie creëert een reeks waarin een reeks enen wordt gevolgd door een reeks nullen, waardoor het aantal verschillende toestanden effectief wordt verdubbeld in vergelijking met de rechte ringteller.Als gevolg hiervan kan de Johnson-teller complexere taken aan, waardoor het een betere keuze is voor toepassingen die een breder scala aan toestanden vereisen, zoals digitale positie-encoders of meer geavanceerde sequencing-bewerkingen.
Het belangrijkste verschil tussen een ringteller en een Johnson-teller ligt in de manier waarop ze omgaan met de feedbacklus, die het aantal toestanden en het algehele gedrag van elke teller beïnvloedt.
Ringteller: Bij een ringteller wordt de uitvoer van de laatste flip-flop zonder enige wijziging rechtstreeks teruggevoerd naar de invoer van de eerste flip-flop.Door deze directe lus is het totale aantal toestanden gelijk aan het aantal flip-flops in de teller.Als er bijvoorbeeld vier flip-flops zijn, doorloopt de teller vier toestanden.Elke flip-flop houdt één klokcyclus een hoge waarde ('1') vast en blijft de rest van de tijd laag ('0'), waardoor een eenvoudige, zich herhalende reeks toestanden ontstaat.
Johnson Counter: Een Johnson-teller daarentegen introduceert omgekeerde feedback van de uitvoer van de laatste flip-flop terug naar de invoer van de eerste.Door deze inversie kan de teller meer toestanden genereren dan de ringteller, waardoor het aantal wordt verdubbeld.Elke flip-flop doorloopt twee fasen: eerst bevat hij een hoge ('1') en vervolgens een lage ('0'), voordat hij naar de tegenovergestelde toestand overschakelt.Dit betekent dat een Johnson-teller met vier flipflops acht staten zou doorlopen.Bovendien reduceert dit ontwerp de uitgangsfrequentie, waarbij de uitgangsfrequentie de helft bedraagt van die van het ingangskloksignaal.
Ringtellers hebben duidelijke voor- en nadelen die hun geschiktheid in digitale circuitontwerpen beïnvloeden.
Eenvoudig ontwerp: Een van de belangrijkste sterke punten van een ringenteller is de eenvoudige constructie.In tegenstelling tot andere tellers zijn er geen extra componenten zoals decoders nodig.Deze eenvoud maakt de implementatie eenvoudiger en kosteneffectiever, vooral in systemen die eenvoudige codering of decodering nodig hebben zonder complexe hardware.
Minder componenten: Dankzij de feedbacklusstructuur van een ringteller kan deze met minder componenten functioneren in vergelijking met andere tellertypen.Deze vermindering van het aantal onderdelen verlaagt niet alleen de kosten, maar verhoogt ook de betrouwbaarheid, omdat minder componenten minder risico op hardwarestoringen betekenen.
Beperkt aantal staten: Een belangrijke beperking van de ringteller is dat het aantal toestanden rechtstreeks verband houdt met het aantal flip-flops.Als je meer toestanden nodig hebt, moet je meer flip-flops toevoegen, wat misschien niet praktisch is in toepassingen die een groter aantal toestanden vereisen.
Geen zelfstartvermogen: Ringtellers kunnen doorgaans niet vanuit een willekeurige status starten.Ze hebben een specifieke vooraf ingestelde voorwaarde nodig om te kunnen werken, wat een nadeel kan zijn in systemen waar flexibiliteit en snelle opstart gewenst zijn.Dit betekent dat er mogelijk extra stappen of componenten nodig zijn om ervoor te zorgen dat de teller correct wordt geïnitialiseerd.
Ringtellers spelen een sleutelrol in diverse digitale systemen, dankzij hun eenvoudige maar effectieve cyclische werking.Hun vermogen om in een gecontroleerde volgorde door een vast aantal toestanden te bewegen, maakt ze zeer nuttig voor een reeks toepassingen.

Figuur 7: Frequentietelling en digitale klokken
Ringtellers worden vaak gebruikt in frequentietellers en digitale klokken omdat ze met precisie en betrouwbaarheid een bepaald aantal toestanden kunnen doorlopen.Dit maakt ze ideaal voor taken waarbij de tijd of frequentie nauwkeurig moet worden gevolgd, waardoor een stabiele en voorspelbare werking wordt gegarandeerd.

Figuur 8: Timers
In timingtoepassingen worden ringtellers gebruikt om intervallen te meten en specifieke gebeurtenissen te activeren.Door synchroon met een kloksignaal door hun statussen te gaan, bieden ze een eenvoudige manier om de timing te beheren, waardoor gebeurtenissen op het juiste moment plaatsvinden op basis van de huidige status van de teller.

Figuur 9: Eindige-toestandsmachines (FSM)
Ringtellers worden vaak geïntegreerd in eindige-toestandsmachines, vooral in omgevingen zoals ASIC (Application-Specific Integrated Circuit) en FPGA (Field-Programmable Gate Array) -ontwerp.Hun voorspelbare statusovergangen maken ze ideaal voor het controleren van de stroom van activiteiten in deze systemen, zodat elke statusverandering soepel en nauwkeurig wordt afgehandeld.

Figuur 10: Timingsignalen
Ringtellers zijn ook waardevol voor het genereren van timingsignalen, die handig zijn voor het coördineren van de werking van complexere circuits.Door deze signalen op een regelmatige, cyclische manier te produceren, zorgen ze ervoor dat verschillende delen van een circuit gesynchroniseerd blijven.

Figuur 11: Generatie van pseudo-willekeurige getallen
In cryptografische systemen worden ringtellers gebruikt om pseudo-willekeurige getallen te genereren, wat gevaarlijk is voor versleutelingsalgoritmen.Het vermogen van de tellers om voorspelbaar door toestanden te schakelen en toch de willekeur in de uitvoer te behouden, maakt ze nuttig in deze gevoelige toepassing.

Figuur 12: Circulair opslagbeheer
In geheugensystemen helpen beltellers bij het beheren van circulaire wachtrijen, waardoor ervoor wordt gezorgd dat gegevens efficiënt worden opgeslagen en opgehaald.Door hun cyclische aard kunnen ze de herhaalde cycli van gegevens op een gecontroleerde manier afhandelen, waardoor ze ideaal zijn voor het beheer van buffers en andere opslagsystemen die afhankelijk zijn van een continue gegevensstroom.
Ringtellers vertegenwoordigen een ultiem maar veelzijdig onderdeel in het ontwerp van digitale schakelingen, gekenmerkt door hun eenvoudige constructie en effectieve werking in een groot aantal toepassingen.Ondanks hun beperkingen, zoals een vast aantal toestanden en een gebrek aan zelfstartvermogen, maken de eenvoud en betrouwbaarheid van ringtellers ze noodzakelijk bij het ontwerp van moderne digitale systemen.
Johnson-tellers, ook wel twisted-ring-tellers genoemd, worden voornamelijk gebruikt in digitale elektronica voor het maken van vertragingstimers en het genereren van symmetrische vierkante golfvormen.Deze tellers vinden praktische toepassingen in digitale klokken voor tijdsequencing, in besturingssystemen als deel-door-N-tellers waar ze reeksbewerkingen beheren, en in het aansturen van numerieke displays waarbij ze cyclisch een reeks binaire waarden produceren.Operators vertrouwen vaak op Johnson-tellers vanwege hun eenvoud en betrouwbaarheid bij het produceren van een groot aantal staten met minder flip-flops dan andere tellers.
Ringtellers worden geclassificeerd op basis van hun operationele synchronisatie:
Synchrone belteller: Alle flip-flops worden aangestuurd door een gemeenschappelijk kloksignaal, waardoor overgangen over alle flip-flops gelijktijdig plaatsvinden.
Asynchrone (of rimpel) ringteller: De uitvoer van de ene flip-flop wordt de klokinvoer voor de volgende, wat leidt tot opeenvolgende overgangen die door de teller gaan.
Om een belteller effectief te gebruiken:
Initialisatie: Begin met het instellen van alle flip-flops op 0, behalve één, die op 1 moet worden ingesteld. Deze opstelling creëert een enkele '1' die door de ring circuleert.
Klokingang: Pas een klokpuls toe.Bij elke puls verschuift de '1' achtereenvolgens van de ene flipflop naar de volgende.
Bewakingsuitgangen: Elke flip-flop-uitgang kan worden gecontroleerd om de positie van de '1' in het circuit te volgen, wat handig is voor timing en sequentiecontrole
Ringtellers kunnen synchroon of asynchroon zijn, afhankelijk van hun ontwerp:
Synchrone belteller: Alle flip-flops veranderen gelijktijdig van status met het kloksignaal.
Asynchrone belteller: De flip-flops veranderen opeenvolgend van status na de activering van de voorgaande flip-flop, waardoor een rimpeleffect ontstaat.
De belangrijkste verschillen tussen een ringteller en een Johnson-teller zijn:
Geheugengebruik: Een ringteller met n flip-flops kan n staten vertegenwoordigen, terwijl een Johnson-teller 2n staten kan vertegenwoordigen, waardoor Johnson-tellers efficiënter worden in termen van staatsrepresentatie per flip-flop.
Circuitcomplexiteit: Johnson-tellers zijn complexer omdat ze extra bedrading en configuratie vereisen in vergelijking met ringtellers.
Uitgangsgolfvormen: Johnson-tellers genereren een complexere reeks uitgangsgolfvormen, wat voordelig kan zijn in toepassingen die gedetailleerde timingpatronen vereisen, zoals bij het genereren van golfvormen in communicatiesystemen.
Stuur een aanvraag, we zullen onmiddellijk reageren.
Op 2024/09/19
Op 2024/09/18
Op 8000/04/18 147757
Op 2000/04/18 111936
Op 1600/04/18 111349
Op 0400/04/18 83721
Op 1970/01/1 79508
Op 1970/01/1 66907
Op 1970/01/1 63040
Op 1970/01/1 63012
Op 1970/01/1 54081
Op 1970/01/1 52125