Altifigence Academy

30 / 63 · Konzept

Folgezustand eines Zählers und Resetpriorität

Inkrementieren, Halten, Reset und Umlauf gemeinsam spezifizieren und je Flanke berechnen.

Die Funktion zuerst als Folgezustand definieren

Ein frei laufender NN-Bit-Zähler mit synchronem reset und enable hat diese Funktion:

Ck+1={0rk=1(Ck+1) mod 2Nrk=0, ek=1Ckrk=0, ek=0C_{k+1}=\begin{cases} 0&r_k=1\\ (C_k+1)\bmod2^N&r_k=0,\ e_k=1\\ C_k&r_k=0,\ e_k=0 \end{cases}

ResetReset Steuerung zur Rückkehr in einen festgelegten Anfangszustand. Synchron/asynchron und Priorität gegenüber anderen Steuerungen müssen definiert werden. hat Vorrang, bei enable=0 wird gehalten. In der folgenden Visualisierung können Sie enable umschalten und so Inkrementieren und Halten vergleichen.

Wählen Sie bei anfänglichem q=11 reset=1: Zunächst wird nur der Folgezustand 00. Mit dem nächsten Taktschritt sehen Sie, wann sich der Speicher ändert. Geben Sie reset frei und durchlaufen Sie 00→01→10→11→00. Bei enable=0 schreitet nur die Flankenzahl fort; q bleibt unverändert.

Zustände vor und nach der steigenden Flanke vergleichen

Der synchrone reset hat Vorrang vor enable. Bei enable=0 bleibt der gespeicherte Wert erhalten. q=11; q_next = (q + 1) mod 4

Eine Vorhersagetabelle je Flanke erstellen

Startet ein 2-Bit-Zähler bei 3 und ist reset nur an der ersten Flanke 1, lauten die Zustände danach 0,1,2,3,0. Ein zwischen Flanken aktivierter synchroner Reset setzt das RegisterRegister Speichert einen Zustand aus mehreren Bits. Die synchronen Register dieses Kurses übernehmen festgelegte Eingaben an Taktflanken. Mehr erfahren nicht vor der steigenden FlankeSteigende Flanke Übergang des Takts von 0 auf 1. Nicht zu verwechseln mit dem gesamten hohen Pegelintervall CLK=1. Mehr erfahren sofort auf 0.

Flankereset davorAltes CNeues C
1130
2001
3012
4023
5030

Jede Spalte dokumentiert eine steigende FlankeSteigende Flanke Übergang des Takts von 0 auf 1. Nicht zu verwechseln mit dem gesamten hohen Pegelintervall CLK=1. Mehr erfahren. Eingänge gelten unmittelbar davor, Zustände mit „after“ unmittelbar nach der Aktualisierung. Die Spalten zeigen die Reihenfolge der Abtastungen, keine physische LaufzeitLaufzeit Zeit nach einer Eingangsänderung, bis der Ausgang auf dem richtigen Wert stabil ist. Logische Äquivalenz und zeitliche Eigenschaften sind getrennte Aussagen. Mehr erfahren. Anfangs 3; an der ersten Flanke hat reset Vorrang vor Inkrementieren. Die letzte Flanke führt von 3 nach 0.

Reset und Umlauf eines 2-Bit-Zählers
Wellenformdaten anzeigen
Wellenformdaten: Jedes Zeichen steht für ein Intervall, ein Punkt hält den vorherigen Zustand und p ist ein Taktzyklus.
SignalWellenformBuswerte
edge23452E0 → E1 → E2 → E3 → E4
reset10...
count before2345211 → 00 → 01 → 10 → 11
count after2345200 → 01 → 10 → 11 → 00

Resetarten nicht vermischen

if(rst) in always_ff @(posedge clk) ist synchron. Es entspricht keinem asynchronen Reset mit zusätzlicher Resetflanke in der Ereignisliste. Dessen Freigabe hat eigene Recovery/Removal-Bedingungen; wechseln Sie nicht bloß wegen eines schnelleren Rücksetzens die Resetart.

Bei einem periodischen Pulszähler ist auch der Pulszeitpunkt festzulegen: während des Maximalzustands oder für einen Zyklus nach der Rückkehr auf 0. Davon hängen Ausgangsgleichung und Beobachtungszeit ab.

Selbst ausprobieren

Ein 3-Bit-Zähler steht auf 7. Erst rst=0, en=0, dann rst=0, en=1: Welche Zustände folgen?

Erklärung lesen

Zuerst hält er 7, dann läuft er im 3-Bit-Bereich auf 0 um. Um 8 zu behalten, sind mehr Bits oder eine gesonderte Sättigungs-/Fehlerpolitik nötig.

Deine Auswahl gilt für diesen Browser. Du kannst sie jederzeit in der Fußzeile ändern.