Projekt: SimpleState

Bisher wurden einfache Register und darauf basierende Zähler synthetisiert.

In diesem Projekt kommen State Machines,  im deutschen Sprachgebrauch auch Zustandsmaschinen oder endliche Automaten dazu.

State Machines werden für komplexeren Vorgänge benötigt und dienen bei entsprechender Programmierung auch der Les- und Wartbarkeit des VHDL-Codes.

Spezifikation

Es werden jetzt alle Taster verwendet. Sie haben die folgende Funktion:

Taster Funktion
0 F_Reset
1 F_Mode
2 F_Up
3 F_Down


Es werden jetzt alle LEDs verwendet. Nach der Bootphase haben sie die folgende Funktionen:

LED Funktion
0 Blinken (PWM Ausgang)
1 Activity
3..2 Mode anzeigen (siehe nächste Tabelle)


Intern werden folgende Modi definiert:

Mode Funktion LED Anzeige
M_Nop Nichts verändern 00
M_Freq Frequenz verändern 01
M_Duty Duty Cycle verändern 10
M_Phase Phase verändern 11


Die LED 0 soll blinken und die Parametrierung dazu soll über die Taster erfolgen.

Nr Name Spezifikation
1a Reset Nach dem Einschalten und nach F_Reset:
Taster 1..3 haben keinen Einfluss, gehe über in die Boot-Phase.
1b Boot Die LEDs blinken:
1. Sekunde: Alle an
2. bis 5. Sekunde: Led 0 bis Led 3 nacheinander
6. bis 7. Sekunde: Alle LEDs aus.
Gehe anschließend über zur Start-Phase.
1c Start Der Modus ist auf M_Freq
Die LED blinkt mit 1 Hz, 50 % Duty-Cycle und Phase 0
Das FPGA reagiert auf Taster 1 .. 3
2 F_Mode Der Modus wird zyklisch inkrementiert
3 F_Up Veränderung des Blinkparameters nach oben:
in M_Freq Frequenz mit 10 multiplizieren
in M_Duty Duty-Cycle um 1 % erhöhen
in M_Phase Duty-Phase um 1 % erhöhen
4 F_Down Veränderung des Blinkparameters nach unten:
in M_Freq Frequenz durch 10 dividieren
in M_Duty Duty-Cycle um 1 % vermindern
in M_Phase Duty-Phase um 1 % vermindern
5 Restart Die Ereignisse F_Up und F_Down starten die PWM neu, falls der Modus nicht M_Nop ist.
6 MinFreq Die minimale Frequenz ist 0,1 Hz im Normalbetrieb und 1 kHz in der Simulation.
7 MaxFreq Die maximale Frequenz 1 MHz
8 MinDuty Der minimale Duty-Cycle ist 0 %
9 MaxDuty Der maximale Duty-Cycle ist 100 %
10 MinPhase Die minimale Phase ist 0 %
11 MaxPhase Die maximale Phase  ist 99 %
12 Activity Die Activity-LED toggelt mit der Basisfrequenz zur Phase 0
13 ZyboSpeed Auf dem ZYBO Board läuft alles um den Faktor 1,25 schneller ab. Das heißt, auch für den ZYBO kann man von einem Takt von 100 MHz anstatt der 125 MHz ausgehen.
14 SimSpeed In der Simulation läuft die Bootphase um den Faktor 10000 schneller ab. Die Start Frequenz ist 1 kHz.

Neu in diesem Projekt

  • State Machines 
  • Hierarchisches Design
  • Verwendung von IPs

Diese Projekt ist in einzelne Schritte unterteilt in denen Stück für Stück das endgültige Modul erstellt wird.

Analyse der Aufgabenstellung

Letztendlich benötigt man um die Spezifikation zu erfüllen einen Rechtecksignalgenerator (PWM). Der PWM-Ausgang wird bei erreichen der Startphase gesetzt und bei erreichen der Stopphase (Startphase + Duty-Cycle) wieder zurückgesetzt.

Der Taktgeber für die PWM ist 100 * die eingestellte Frequenz.

Der Modus-Button verändert den Modus und entsprechend des eingestellten Modus werden die Parameter für die PWM verändert.

Weiter zur Vorbereitung