Automatenbeschreibung in VHDL
Um die Automatenbeschreibung in VHDL kennenzulernen gibt es ein Spiel im Projektverzeichnis. Dieses Spiel sollen Sie analysieren.
Im Kapitel wird die Beschreibung von Zustandsautomaten in VHDL beschreiben.
Analysieren Sie das Design 鈥溾€� und 鈥溾€�.
- Zeichnen Sie einen Schaltplan von de1_play_structure.vhd
- Beschreibt der Zustandsautomat in 鈥減lay_rtl.vhd鈥� einen Moore- oder einen Mealyautomaten? Warum?
- Welche Ein- und Ausg盲nge hat der Automat?
- Zeichnen Sie den Zustandsgraphen des Automaten anhand des VHDL Codes.
- Simulieren Sie den Automaten mit der vorbereiteten Testbench t_play im Verzeichnis sim/play
- Zeichnen Sie ein Timingdiagramm auf dem der 脺bergang vom Zustand 鈥渃hance_s鈥� in 鈥渉it0_s鈥� zu sehen ist.
- Beschreiben Sie wie das Spiel funktioniert! Machen Sie eine Skizze um das Spiel zu erl盲utern.
- Synthetisieren Sie das Design im Verzeichnis pnr/de1_play.
- Analysieren Sie den Zustandsautomaten mit 鈥淭ools 鈫� Netlist Viewer 鈫� State Machine Viewer鈥�. Schauen Sie im Tab 鈥淓ncoding鈥� nach.
- Wie viele Flipflops ben枚tigt der Zustandsautomat?
- 脛ndern Sie die Einstellung Assignments 鈫� Settings 鈫� Analysis & Synthesis Settings 鈫� More Settings 鈫� State Machine Settings und vergleichen Sie die Syntheseergebnisse bei 鈥渙ne-hot鈥� und 鈥渕inimal-bits鈥�.
Spiel erweitern
Im folgenden soll das Spiel modifiziert werden. Dazu sind hier einige Spielvarianten dargestellt. Zeichnen Sie f眉r den modifizierten Entwurf den Zustandsgraphen auf Papier. 脛ndern Sie den VHDL Code f眉r den Automaten und die Testbench des Automaten. Verifizieren Sie den Automaten im Simulator und auf dem FPGA.
Variante 1 - Wartesekunde
Modifizieren Sie das Spiel derart, dass bei einem Tastendruck nicht sofort mit der alternativen Blinkfolge begonnen wird, sondern erst nach Ablauf der Wartesekunde.
Variante 2 - Doppelklick
Um in die alternative Blinksequenz zu kommen soll man nicht einmal, sondern zweimal innerhalb von einer Sekunde den Taster dr眉cken.
Variante 3 - Langer Ausgang
Nach Erreichen der alternativen Blinksequenz soll man nicht sofort bei einem Tastendruck wieder in die Standardblinkfolge zur眉ckkehren. Stattdessen soll nach dem Tastendruck erst noch bis zum Ablauf der Wartesekunde die aktuelle LED wetterleuchten. Danach soll die andere LED aus der alternativen Blinksequenz f眉r eine Sekunde leuchten und erst dann soll wieder die Standardblinkfolge leuchten.
Variante 4 - Ausgang alle LEDs
Nach Erreichen der alternativen Blinksequenz durch einen Tastendruck soll die alternative Blinkfolge dann verlassen werden, wenn w盲hrend der Leuchtdauer jeder LED aus der alternativen Blinksequenz mindestens einmal die Taste gedr眉ckt wurde.
Variante 5 - Klick bei Eins blockt
Wenn w盲hrend der Standardblinkfolge w盲hrend der Leuchtdauer der ersten LED eine Taste gedr眉ckt wird, dann soll bei der n盲chsten m枚glichen Gelegenheit um mit einem Tastendruck die alternative Blinkfolge zu aktivieren, der Tastendruck wirkungslos bleiben. Durch Dr眉cken der Taste w盲hrend der Leuchtdauer der ersten LED wird also das Verlassen der Standardblinkfolge f眉r einen Durchgang blockiert und erst beim darauf folgenden Durchgang kann man wieder durch einen Tastendruck zum richtigen Zeitpunkt in die alternative Blinkfolge gelangen.
Variante 6 - Eins / Zwei / Drei
Man kommt in die alternative Blinkfolge, wenn man w盲hrend der Leuchtdauer der ersten LED die Taste dr眉ckt, dann bei der zweiten LED die Taste dr眉ckt und dann bei der dritten LED die Taste dr眉ckt. Wenn man das Dr眉cken bei einer LED verpasst, muss man wieder mit dem Dr眉cken bei der ersten LED anfangen.
Variante 7 - Zweimal vorher
Man kann die alternative Blinkfolge durch Tastendruck w盲hrend der Leuchtdauer der mittleren LED nur dann erreichen, wenn man w盲hrend der Leuchtdauer der zweiten LED genau zweimal die Taste gedr眉ckt hat.
Variante 8 - Spring dr眉ber
Wenn man w盲hrend der Leuchtdauer der zweiten LED den Taster dr眉ckt, dann wird nach Ablauf der Wartesekunde das Aufleuchten der mittleren LED 眉bersprungen.