
Figur 1: Ringräknare
En ringräknare är en speciell typ av skiftregister, utformat i ett slutet slingaformat där utsignalen från den sista vippan skickas tillbaka till den första.Detta loopade arrangemang är det som skiljer det från standardskiftregister, där dataflödet stannar efter den sista vippan.Funktionen av en ringräknare kretsar kring en uppsättning flip-flops.Antalet tillstånd räknaren kan hålla beror direkt på hur många flip-flops som används i kretsen.Till exempel innehåller en 4-bitars ringräknare fyra flip-flops.Rent praktiskt följer varje flip-flop en specifik sekvens, vilket gör att ringräknaren kan hantera viktiga uppgifter som timing och sekvensering i digitala system.
I en typisk ringräknare styr en klockpuls (CLK) driften av alla vippor samtidigt, vilket gör det till ett synkront system.Varje flip-flop har också två speciella ingångar—preset (PR) och clear (CLR)—som har prioritet framför andra ingångar.När den förinställda ingången tar emot en låg signal, tvingar den vippans utgång till hög.På liknande sätt, när tömningsingången tar emot en låg signal, återställer den vippans utgång till låg.Dessa förinställda och tydliga kommandon säkerställer att utgångarna förblir stabila och opåverkade av andra ingångar eller klocksignaler.

Figur 2: 8-bitars ringräknare
En 8-bitars ringräknare är en digital krets som består av åtta vippor av D-typ anordnade i en kontinuerlig slinga.Utsignalen från den åttonde vippan matas tillbaka till ingången på den första, vilket skapar en obruten cykel.Denna slutna slingdesign tillåter räknaren att stega genom en serie distinkta tillstånd, där varje tillstånd motsvarar en av vipporna är aktiv.8-bitars konfigurationen kan hantera totalt åtta unika tillstånd, vilket ökar räknarens komplexitet jämfört med mindre konfigurationer.
Driften av 8-bitars ringräknaren börjar med att sätta den första vippan till ett aktivt tillstånd medan de återstående vipporna är inaktiva.En klocksignal appliceras sedan enhetligt på alla flip-flops, vilket säkerställer att tillståndsövergångar sker samtidigt över hela kretsen.När klockan pulserar skiftar det aktiva tillståndet från en vippa till nästa i en förutsägbar cykel.Denna sekventiella växling fortsätter tills den sista vippan skickar tillbaka sin utgång till den första, vilket fullbordar slingan.

Figur 3: 4-bitars ringräknare
För att driva en 4-bitars ringräknare initieras den vanligtvis med starttillståndet '0001'.I den här inställningen är den första vippan (FF0) inställd på utgång '1', medan de andra tre vipporna (FF1, FF2 och FF3) nollställs till '0'.Denna initiala konfiguration säkerställer att endast en vippa håller "1"-tillståndet, som sedan kommer att cirkulera genom resten av vipporna med varje klockcykel.
När klockan pulsar skiftar "1" från FF0 till FF1, sedan till FF2, FF3 och så småningom tillbaka till FF0, vilket skapar en upprepad loop.Denna utveckling fortsätter med varje flip-flop turas om att hålla "1"-tillståndet, medan de andra förblir "0".Detta mönster av tillståndsförändringar utgör den grundläggande operationen för ringräknaren, vilket säkerställer en förutsägbar sekvens när den cyklar genom alla fyra vipporna.
För att bättre förstå ringräknarens beteende kan vågformssimuleringar med verktyg som Verilog HDL på plattformar som Xilinx vara till hjälp.Dessa simuleringar genererar en grafisk representation av räknarens tillståndsövergångar, så att du kan se hur '1':an rör sig från en flip-flop till nästa med varje klockpuls.Till exempel, under en klockcykel växlar "1" från FF0 till FF1, och i nästa cykel flyttar den till FF2, och fortsätter tills den återgår till FF0 efter att ha nått FF3.Dessa visuella verktyg är inte bara användbara för att övervaka de sekventiella skiftningarna utan också för att bekräfta noggrannheten av timingen och övergångarna i designen.De ger en tydlig bild av hur ringräknaren fungerar, vilket är lämpligt för att verifiera att enheten fungerar korrekt i verkliga tillämpningar.
En sanningstabell är ett seriöst verktyg som används för att kartlägga ingångs- och utgångstillstånden för en ringräknare, vilket ger en tydlig översikt över hur räknaren fungerar i digitala kretsar.För en 4-bitars ringräknare visar tabellen hur "1"-tillståndet rör sig genom varje vippautgång (Q0, Q1, Q2, Q3) i en upprepad cykel.Ingångarna, såsom den överordnade ingången (ORI) och klockpulsen (CLK), är också listade för att visa hur de påverkar tillståndsövergångarna.Den här tabellen fångar räknarens cykliska beteende, där "1:an" går från en flip-flop till nästa och så småningom går tillbaka till startpunkten.
I varje klockcykel skiftar '1' från en utgång till nästa, från Q0 till Q1, Q1 till Q2, Q2 till Q3 och slutligen tillbaka till Q0.Denna sekventiella rörelse är kärnan i hur en ringräknare fungerar, och den stöder direkt behoven hos system som förlitar sig på upprepade, förutsägbara sekvenser.Enheter som digitala klockor, rotationssensorer och positionskodare drar alla nytta av denna cykliska operation, där noggrannhet och timing används.

Figur 4: Verilog HDL-program för ringräknare
Följande Verilog HDL-program är utformat för att modellera beteendet hos en ringräknare med hjälp av ett modulärt tillvägagångssätt.Varje modul i koden motsvarar en flip-flop i ringräknaren, med utdata från en modul direkt till ingången på nästa.Denna kedja av anslutningar styrs av klockpulser med stigande flanker, som synkroniserar tillståndsövergångarna över alla flip-flops, vilket säkerställer att systemet fungerar på ett koordinerat sätt.
Ringräknare finns i två huvudtyper, var och en med sina unika funktionsegenskaper: den raka ringräknaren och den vridna ringräknaren.Båda tjänar olika syften beroende på det digitala systemets behov.

Figur 5: Rak ringräknare (One-hot Counter)
En rak ringräknare, ofta kallad "one-hot"-räknare, fungerar genom att skicka en enda '1' genom en serie flip-flops i en loop.Med varje klockpuls flyttar '1:an' till nästa vippa medan alla andra vippor förblir på '0'.Denna enkla, cykliska design är idealisk för tillämpningar som kräver endast ett aktivt tillstånd åt gången, såsom grundläggande sekvensgeneratorer eller skiftregister.Den raka ringräknarens enkla karaktär säkerställer enkel användning och tillförlitlighet i system där ett enkelt repeterande mönster behövs.

Figur 6: Twisted Ring Counter (Johnson Counter)
Den tvinnade ringräknaren, även känd som en Johnson-räknare, lägger till en betydande modifiering av grunddesignen.I den här versionen inverteras utsignalen från den sista vippan innan den matas tillbaka till ingången på den första vippan.Denna inversion skapar en sekvens där en serie ettor följs av en serie nollor, vilket i praktiken fördubblar antalet distinkta tillstånd jämfört med den raka ringräknaren.Som ett resultat kan Johnson-räknaren hantera mer komplexa uppgifter, vilket gör den till ett bättre val för applikationer som kräver ett större antal tillstånd, såsom digitala positionskodare eller mer avancerade sekvenseringsoperationer.
Den största skillnaden mellan en ringräknare och en Johnson-räknare ligger i hur de hanterar återkopplingsslingan, vilket påverkar antalet tillstånd och det övergripande beteendet för varje räknare.
Ringräknare: I en ringräknare matas utsignalen från den sista vippan direkt tillbaka till ingången på den första vippan utan några ändringar.På grund av denna direkta loop är det totala antalet tillstånd lika med antalet flip-flops i räknaren.Till exempel, om det finns fyra vippor, kommer räknaren att gå igenom fyra tillstånd.Varje flip-flop har en hög ('1') under en klockcykel och förblir låg ('0') under resten av tiden, vilket skapar en enkel, upprepande sekvens av tillstånd.
Johnson-räknare: En Johnson-räknare, å andra sidan, introducerar inverterad feedback från utsignalen från den sista vippan tillbaka till ingången från den första.Denna invertering gör att räknaren kan generera fler tillstånd än ringräknaren – en fördubbling av antalet.Varje flip-flop går igenom två steg: först håller den en hög ('1') och sedan en låg ('0'), innan den växlar till det motsatta tillståndet.Detta betyder att en Johnson-räknare med fyra flip-flop skulle gå igenom åtta stater.Dessutom reducerar denna design utfrekvensen, med utfrekvensen som är hälften av den ingående klocksignalen.
Ringräknare har distinkta fördelar och nackdelar som påverkar deras lämplighet i digitala kretsdesigner.
Enkel design: En av de främsta styrkorna med en ringräknare är dess enkla konstruktion.Till skillnad från andra räknare kräver den inga ytterligare komponenter som avkodare.Denna enkelhet gör det enklare och mer kostnadseffektivt att implementera, särskilt i system som behöver grundläggande kodning eller avkodning utan komplex hårdvara.
Färre komponenter: Återkopplingsslingans struktur hos en ringräknare gör att den kan fungera med färre komponenter jämfört med andra räknaretyper.Denna minskning av delar sänker inte bara kostnaderna utan ökar också tillförlitligheten, eftersom färre komponenter innebär mindre risk för hårdvarufel.
Begränsat antal stater: En stor begränsning av ringräknaren är att antalet tillstånd är direkt kopplat till antalet flip-flops.Om du behöver fler tillstånd måste du lägga till fler flip-flops, vilket kanske inte är praktiskt i applikationer som kräver ett större antal tillstånd.
Ingen självstartsförmåga: Ringräknare kan vanligtvis inte starta från något godtyckligt tillstånd.De behöver ett specifikt förinställt villkor för att börja fungera, vilket kan vara en nackdel i system där flexibilitet och snabb start önskas.Detta innebär att extra steg eller komponenter kan krävas för att säkerställa att räknaren initieras korrekt.
Ringräknare spelar en nyckelroll i olika digitala system, tack vare deras enkla men effektiva cykliska drift.Deras förmåga att röra sig genom ett bestämt antal tillstånd i en kontrollerad sekvens gör dem mycket användbara över en rad applikationer.

Figur 7: Frekvensräkning och digitala klockor
Ringräknare används ofta i frekvensräknare och digitala klockor eftersom de kan cykla genom ett visst antal tillstånd med precision och tillförlitlighet.Detta gör dem idealiska för uppgifter som kräver exakt spårning av tid eller frekvens, vilket säkerställer stabil och förutsägbar drift.

Figur 8: Timers
I timingapplikationer används ringräknare för att mäta intervall och utlösa specifika händelser.Genom att gå igenom sina tillstånd synkroniserat med en klocksignal ger de ett enkelt sätt att hantera timing, vilket säkerställer att händelser inträffar i rätt ögonblick baserat på räknarens nuvarande tillstånd.

Figur 9: Finite-State Machines (FSM)
Ringräknare är vanligtvis integrerade i maskiner med ändligt tillstånd, särskilt i miljöer som ASIC (Application-Specific Integrated Circuit) och FPGA-design (Field-Programmable Gate Array).Deras förutsägbara tillståndsövergångar gör dem idealiska för att kontrollera flödet av operationer i dessa system, vilket säkerställer att varje tillståndsändring hanteras smidigt och korrekt.

Figur 10: Tidssignaler
Ringräknare är också värdefulla för att generera tidssignaler, vilka är användbara för att koordinera driften av mer komplexa kretsar.Genom att producera dessa signaler på ett regelbundet, cykliskt sätt, hjälper de till att säkerställa att olika delar av en krets förblir synkroniserade.

Figur 11: Generering av pseudo-slumptal
I kryptografiska system används ringräknare för att generera pseudoslumptal, vilket är farligt för krypteringsalgoritmer.Räknarnas förmåga att växla mellan tillstånd på ett förutsägbart sätt samtidigt som de bibehåller slumpmässighet i utdata gör dem användbara i denna känsliga applikation.

Figur 12: Cirkulär lagringshantering
I minnessystem hjälper ringräknare att hantera cirkulära köer, vilket säkerställer att data lagras och hämtas effektivt.Deras cykliska natur gör att de kan hantera den upprepade cyklingen av data på ett kontrollerat sätt, vilket gör dem idealiska för att hantera buffertar och andra lagringssystem som är beroende av kontinuerligt dataflöde.
Ringräknare representerar en ultimat men ändå mångsidig komponent i digital kretsdesign, kännetecknad av sin enkla konstruktion och effektiva drift över en mängd olika applikationer.Trots deras begränsningar, såsom ett fast antal tillstånd och brist på självstartsförmåga, gör ringräknarens enkelhet och tillförlitlighet dem nödvändiga i designen av moderna digitala system.
Johnson-räknare, även kända som tvinnade ringräknare, används främst inom digital elektronik för att skapa fördröjningstimer och generera symmetriska fyrkantsvågformer.Dessa räknare hittar praktiska tillämpningar i digitala klockor för tidssekvensering, i styrsystem som divide-by-N-räknare där de hanterar sekvensoperationer, och i att driva numeriska displayer där de cykliskt producerar en uppsättning binära värden.Operatörer förlitar sig ofta på Johnson-räknare för deras enkelhet och tillförlitlighet när det gäller att producera ett stort antal tillstånd med färre flip-flops än andra räknare.
Ringräknare klassificeras baserat på deras operativa synkronisering:
Synkron ringräknare: Alla flip-flops drivs av en gemensam klocksignal, vilket gör att övergångar sker samtidigt över alla flip-flops.
Asynkron (eller Ripple) ringräknare: Utsignalen från en flip-flop blir klockingången för nästa, vilket leder till sekventiella övergångar som rullar genom räknaren.
Så här använder du en ringräknare effektivt:
Initiering: Börja med att sätta alla flipflops till 0 utom en, som ska ställas in på 1. Denna inställning skapar en enda '1' som cirkulerar ringen.
Klockinmatning: Applicera en klockpuls.Med varje puls skiftar '1' från en flip-flop till nästa i sekvens.
Övervakning av utgångar: Varje flip-flop-utgång kan övervakas för att spåra positionen för '1' i kretsen, användbart för timing och sekvenskontroll
Ringräknare kan vara antingen synkrona eller asynkrona, beroende på deras design:
Synkron ringräknare: Alla flip-flops ändrar tillstånd samtidigt med klocksignalen.
Asynkron ringräknare: Vipporna ändrar tillstånd sekventiellt efter aktiveringen av den föregående vippan, vilket orsakar en rippeleffekt.
De viktigaste skillnaderna mellan en ringräknare och en Johnson-räknare är:
Minnesanvändning: En ringräknare med n vippor kan representera n tillstånd, medan en Johnson-räknare kan representera 2n tillstånd, vilket gör Johnson-räknare mer effektiva när det gäller tillståndsrepresentation per flip-flop.
Kretskomplexitet: Johnson-räknare är mer komplexa eftersom de kräver ytterligare ledningar och inställningar jämfört med ringräknare.
Utdatavågformer: Johnson-räknare genererar en mer komplex uppsättning utgångsvågformer, vilket kan vara fördelaktigt i applikationer som kräver detaljerade tidsmönster, såsom i vågformsgenerering i kommunikationssystem.
Skicka en förfrågan, vi svarar omedelbart.
på 2024/09/19
på 2024/09/18
på 8000/04/18 147757
på 2000/04/18 111937
på 1600/04/18 111349
på 0400/04/18 83721
på 1970/01/1 79508
på 1970/01/1 66913
på 1970/01/1 63053
på 1970/01/1 63012
på 1970/01/1 54081
på 1970/01/1 52130