Der 4-Bit Zähler

Der 4-Bit Zähler besteht aus einer Aneinanderreihung von 4 T-Flip-Flops, die wir im Projekt 2 schon kennengelernt haben. Natürlich könnten wir diese jeweils einzeln aufrufen und dann einzeln zusammenschalten. Dies geht aber mit VHDL viel eleganter.
Zuerst einmal legen wir uns eine Top-Level-Entity mit vier Ausgängen ( A_out bis D_out ) einem Takteingang und einem Reseteingang an.



Die vier Ausgänge schalten wir auf die LEDR0 bis LEDR3, der Takteingang ist der Taster Key0, der Reseteingang der Taster Key1. Damit siehr unser Pin-Planer so aus:



Wir erweitern unser getaktetes Flipflop um den Ausgang Q_strich und einen Reset-Eingang.



Das eigendliche Flipflop sieht dann so aus:



Dieses speichern wir als flipflop.vhd in unseren Projektordner.

Nun erzeugen wir 4 Flipflops, wobei wir bei den letzten drei Flipflops den Eingang clk mit dem Ausgang Q des vorherigen Flipflops verbinden.



Zuerst einmal legen wir mit component die Ein- und Ausgänge von unserem Flipflop fest. Wir erzeugen zwei interne Signalebusse, Q und Q_strich, die jeweils eine Bandbreite von 4 bit (3 dowto 0) haben.

Wichtig: Die Sprungmarken flip0: flip1: und flip2: dürfen zwar beliebige Namen haben, müssen aber unbedigt verwendet werden!

Die Variabel i ist eine Zählvariabel, die von 0 bis 4 läuft ( 0 to 4). Wenn diese die Zahl 0 hat (Sprungmarke flip1:), dann wird als Eingang der Takteingang clk verwendet, reset wird mit reset verbunden und die beiden Ausgänge werden auf die internen Signalebusse Q und Q_strich gelegt.
Für die restlichen drei Flipflops (Sprungmarke flip2:) wird als Takteingang jeweils der Taktausgang Q von dem vorherigen Flipflop verwendet, die Ausgänge werden auf die internen Signalbusse Q bzw Q_strich gelegt.  Bei i = 4 wird die Zählschleife abgebrochen.

Zuletzt wird der Signalbus Q auf die Ausgangspins A_out bis D_out gelegt. Drückt man jetzt den ersten Taster (key0) so zählt unser Zähler jeweils um eins nach oben und gibt das Ergebnis im Binärcode auf die Leds aus.

Der VHDL-Quelltext ist als flipflop.txt und  zaehler_top.txt  zum Import  hinterlegt. Das gesamte Projekt kann als  4bit_zahler.zip heruntergeladen werden.