Inhaltsverzeichnis:

VHDL-Stoppuhr - Gunook
VHDL-Stoppuhr - Gunook

Video: VHDL-Stoppuhr - Gunook

Video: VHDL-Stoppuhr - Gunook
Video: EE2902 stopwatch in vhdl 2024, Juli
Anonim
VHDL-Stoppuhr
VHDL-Stoppuhr

Dies ist ein Tutorial zum Erstellen einer Stoppuhr mit VHDL und einer FPGA-Platine, wie einem Basys3 Atrix-7 Board. Die Stoppuhr kann von 00,00 Sekunden bis 99,99 Sekunden zählen. Es verwendet zwei Tasten, eine für die Start-/Stopp-Taste und eine andere für die Reset-Taste. Die Zahlen werden auf der Sieben-Segment-Anzeige der Platine mit ihren Anoden und Kathoden angezeigt. Es werden drei verschiedene Dateien benötigt, damit diese Stoppuhr funktioniert.

Schritt 1: Hardware/Software

  • Basys3 Atrix-7 FPGA-Board
  • Vivado Design Suite von Xilinx
  • USB 2.0 A-Stecker auf Micro-B-Stecker

Schritt 2: Blockdiagramm

Blockschaltbild
Blockschaltbild

Die Gesamtstoppuhr hat drei Eingänge und zwei Ausgänge. Die drei Eingänge sind Start/Stopp, Reset und Clock. Start/Stopp und Reset sind Tasten und die Uhr ist die 100MHz-Uhr des Boards. Die beiden Ausgänge sind die Anoden und Kathoden für die Siebensegmentanzeige.

Das erste Modul (Taktteiler) hat einen Eingang und zwei Ausgänge. Der Eingang ist der 100MHz Takt des Boards und die Ausgänge sind zwei separate Takte, einer läuft mit 480Hz und der andere läuft mit 0,5MHz.

Das zweite Modul (Display) hat fünf Eingänge und zwei Ausgänge. Die Eingänge sind der 100-MHz-Takt der Platine, die beiden Takte des Taktteilermoduls und die Start-/Stopp- und Reset-Tasten. Die Ausgänge sind die Anoden und Kathoden.

Das letzte Modul (modelliert durch das gesamte Blockschaltbild) hat drei Eingänge und zwei Ausgänge. Dies ist die Datei, die alles zusammenbringt. Die Eingänge sind die 100MHz des Boards und die Start/Stop- und Reset-Tasten. Die Ausgänge sind die Anoden und Kathoden, die die Siebensegmentanzeige steuern. Alle Ein- und Ausgänge befinden sich physikalisch auf der Platine für das letzte Modul.

Schritt 3: Zustandsdiagramm

Zustandsdiagramm
Zustandsdiagramm

Das obige Bild zeigt das Zustandsdiagramm für die Funktionsweise der Stoppuhr. Das Drücken der Reset-Taste hat keinen Einfluss auf den Zustand der Stoppuhr. Der nächste Zustand wird durch die Start/Stopp-Taste bestimmt. Der Start/Stopp ist "HIGH", wenn er gedrückt wird, aber nicht, wenn er gedrückt gehalten wird, und "LOW", wenn der Knopf zurückgeprallt ist oder gedrückt wird, nachdem er kurz auf "HIGH" gedrückt wurde.

Wenn die Stoppuhr zählt und der Start/Stopp-Knopf auf „HIGH“geht, hört sie auf zu zählen. Wenn die Stoppuhr gestoppt wird und der Start/Stopp-Knopf auf „HIGH“geht, beginnt sie erneut zu zählen. Wenn der Start/Stopp-Knopf in beiden Zuständen auf "LOW" steht, bleibt er in dem Zustand, in dem er sich gerade befindet.

Schritt 4: Taktteilermodul

Das Taktteilermodul hat einen Eingang, den 100MHz-Takt der Platine, und zwei Ausgänge, den 480Hz- und den 0,5MHz-Takt. Der 480-Hz-Takt wird verwendet, um alle LEDs der Siebensegmentanzeige gleichzeitig "an" zu halten, indem die vier schnell durchgeschaltet werden. Der 0,5-MHz-Takt wird verwendet, damit die Stoppuhr tatsächlich in Centisekunden zählt.

Schritt 5: Anzeigemodul

Dieses Anzeigemodul hat fünf Eingänge, den 100-MHz-Takt der Platine, die beiden Takte des Taktmoduls und die Start-/Stopp- und Reset-Tasten sowie zwei Ausgänge, die Anoden und Kathoden. Dieses Modul hat auch die "Logik" für das Zählen der Stoppuhr und enthält die endliche Zustandsmaschine.

Schritt 6: Bindungsmodul

Dieses letzte Modul ist dasjenige, das die anderen beiden Module zusammenführt. Es hat drei Eingänge, den 100-MHz-Takt der Platine und die Start-/Stopp- und Reset-Tasten, und zwei Ausgänge, die Anoden und Kathoden. Der 100-MHz-Takt geht an das Taktteilermodul und das Anzeigemodul, und die Start-/Stopp- und Reset-Tasten gehen an das Anzeigemodul. Die Ausgänge des Taktteilermoduls (480Hz und 0,5MHz) gehen auf die beiden Takteingänge des Anzeigemoduls. Die Ausgänge des Anzeigemoduls (Anoden und Kathoden) gehen zu den Ausgängen des letzten Moduls.

Schritt 7: Einschränkungen

Einschränkungen
Einschränkungen

Die beiden Eingänge können beliebige Tasten auf dem Basys3 Atrix-7 FPGA Board sein und die Ausgänge sind die vier Anoden und die acht Kathoden (weil Sie auch einen Dezimalpunkt zwischen Sekunden und Millisekunden wollen) für die Sieben-Segment-Anzeige.

Schritt 8: Fertig

Laden Sie das Programm auf Ihr Basys3 Atrix-7 FPGA Board und drücken Sie Ihre Start/Stopp-Taste, um die Stoppuhr in Gang zu setzen!