Um die Automatenbeschreibung in VHDL kennenzulernen gibt es ein Spiel im Projektverzeichnis. Dieses Spiel sollen Sie analysieren.
Im Kapitel Reichardt, Digitaltechnik und digitale Systeme, Entwurf von Zustandsautomaten wird die Beschreibung von Zustandsautomaten in VHDL beschreiben.
Analysieren Sie das Design “play_rtl.vhd” und “de1_play_structure.vhd”.
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.
Modifizieren Sie das Spiel derart, dass bei einem Tastendruck nicht sofort mit der alternativen Blinkfolge begonnen wird, sondern erst nach Ablauf der Wartesekunde.
Um in die alternative Blinksequenz zu kommen soll man nicht einmal, sondern zweimal innerhalb von einer Sekunde den Taster drücken.
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.
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.
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.
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.
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.
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.