Inhaltsverzeichnis:
- Schritt 1: Materialien
- Schritt 2: Ein- und Ausgänge einstellen
- Schritt 3: Uhren herstellen
- Schritt 4: Zählen bis Zehn
- Schritt 5: Zahlen anzeigen
- Schritt 6: So zeigen Sie die Stoppuhr an
- Schritt 7: Alles zusammenbringen
- Schritt 8: Einschränkungen
- Schritt 9: Testen
Video: Grundlegende Stoppuhr mit VHDL und Basys3-Board - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Willkommen bei der Anleitung zum Bau einer Stoppuhr mit grundlegendem VHDL und Basys 3-Board. Wir freuen uns, unser Projekt mit Ihnen zu teilen! Dies war ein letztes Projekt für den Kurs CPE 133 (Digital Design) bei Cal Poly, SLO im Herbst 2016. Das Projekt, das wir gebaut haben, ist eine einfache Stoppuhr, die die Zeit startet, zurücksetzt und anhält. Es nimmt drei Taster auf der Basys3-Platine als Eingaben auf und die Uhrzeit wird auf der vierstelligen Sieben-Segment-Anzeige der Platine angezeigt. Die verstrichene Zeit wird im Format Sekunden: Zentisekunden angezeigt. Es verwendet die Systemuhr des Boards als Eingabe, um die verstrichene Zeit zu verfolgen und gibt die Zeit an die vier Stellen der Siebensegmentanzeige aus.
Schritt 1: Materialien
Die Materialien, die Sie für dieses Projekt benötigen:
- 1 Computer mit installiertem Vivado Design Suite WebPack von Xilinx (bevorzugen Sie Version 2016.2)
- 1 Digilent Basys3 Xilinx Artix-7 FPGA-Board
- 1 USB-Anschlusskabel
Schritt 2: Ein- und Ausgänge einstellen
Die obige Abbildung zeigt ein Blockschaltbild der obersten Ebene des Hauptmoduls der Stoppuhr. Die Stoppuhr nimmt die Eingänge "CLK" (Uhr), "S1" (Start-Taste), "S2" (Pause-Taste) und "RST" (Reset) auf und hat einen 4-Bit-Ausgang "Anodes", einen 7-Bit Ausgang "Segment" und einen Einzelbit-Ausgang "DP" (Dezimalpunkt). Wenn Eingang "S1" hoch ist, beginnt die Stoppuhr mit dem Zeitzählen. Wenn "S2" niedrig ist, hält die Stoppuhr die Zeit an. Wenn "RST" hoch ist, stoppt die Stoppuhr und stellt die Zeit zurück. Es gibt vier Submodule innerhalb der Schaltung: den Taktteiler, den Ziffernzähler, den Sieben-Segment-Anzeigetreiber und den Sieben-Segment-Anzeige-Encoder. Das Hauptmodul Stoppuhr verbindet alle Untermodule miteinander und mit den Ein- und Ausgängen.
Schritt 3: Uhren herstellen
Das Taktteilermodul nimmt einen Systemtakt auf und verwendet einen Teilereingang, um einen Takt mit einer Geschwindigkeit zu erzeugen, die nicht höher als die des Systemtakts ist. Die Stoppuhr verwendet zwei verschiedene Taktmodule, eines, das einen 500-Hz-Takt erzeugt und ein anderes, das einen 100-Hz-Takt erzeugt. Das Schema für den Taktteiler ist in der obigen Abbildung dargestellt. Der Taktteiler nimmt einen Einzelbit-Eingang "CLK" und einen 32-Bit-Eingang "Divisor" und den Einzelbit-Ausgang "CLKOUT" auf. "CLK" ist der Systemtakt und "CLKOUT" ist der resultierende Takt. Das Modul enthält auch ein NOT-Gatter, das das Signal "CLKTOG" umschaltet, wenn der Zähler den Wert des Divisors erreicht.
Schritt 4: Zählen bis Zehn
Der Ziffernzähler zählt jede Ziffer von 0 bis 10 und erzeugt einen weiteren Takt, damit die nächste Ziffer funktioniert, die oszilliert, wenn der Zählerstand 10 erreicht. Das Modul nimmt 3 Einzelbit-Eingänge "S", "RST" und "CLK" auf " und führt zu einer Einzelbit-Ausgabe "N" und einer 4-Bit-Ausgabe "D". Eingang "S" ist die Freigabe im Eingang. Die Uhr schaltet sich ein, wenn "S" hoch ist, und aus, wenn "S" niedrig ist. "RST" ist der Reset-Eingang, so dass die Uhr zurückgesetzt wird, wenn "RST" hoch ist. "CLK" ist der Takteingang für den Ziffernzähler. "N" ist der Taktausgang, der zum Eingangstakt für die nächste Ziffer wird. Ausgang "D" zeigt den Binärwert der Stelle an, an der sich der Zähler befindet.
Schritt 5: Zahlen anzeigen
Der Sieben-Segment-Anzeigecodierer codiert die vom Sieben-Segment-Anzeigetreibermodul empfangene Binärzahl und wandelt sie in einen Bitstrom um, der als '1' oder '0'-Werte für jedes Segment der Anzeige interpretiert wird. Die Binärzahl wird vom Modul als 4-Bit-Eingang „Ziffer“empfangen und ergibt den 7-Bit-Ausgang „Segmente“. Das Modul besteht aus einem Single-Case-Prozessblock, der jedem möglichen Eingabewert von 0 bis 9 einen bestimmten 7-Bit-Stream zuweist. Jedes Bit in den 7-Bit-Streams repräsentiert eines der sieben Segmente der Ziffern auf dem Display. Die Reihenfolge der Segmente im Stream ist „abcdefg“, wobei „0“die Segmente darstellen, die für die angegebene Nummer aufleuchten.
Schritt 6: So zeigen Sie die Stoppuhr an
In dem Sieben-Segment-Anzeigetreibermodul gibt es vier 4-Bit-Eingänge "D0", "D1", "D2" und "D3", die jeweils die vier anzuzeigenden Ziffern darstellen. Eingang "CLK" ist der Takteingang des Systems. Der Einzelbit-Ausgang "DP" stellt den Dezimalpunkt auf der Siebensegmentanzeige dar. Der 4-Bit-Ausgang „Anoden“bestimmt, welche Stelle der Siebensegmentanzeige angezeigt wird und der 4-Bit-Ausgang „temp“hängt vom Zustand des 2-Bit-Steuereingangs „SEL“ab. Das Modul verwendet 4 Multiplexer für den Steuereingang „SEL“und die drei Ausgänge; "Anoden", "Temp" und "DP".
Schritt 7: Alles zusammenbringen
Ein 'if'-Prozessblock, der vom 500-Hz-Takt abläuft, wird verwendet, um die Start- und Pause-Schaltflächen zu erstellen. Verknüpfen Sie anschließend alle Submodule im Stoppuhr-Hauptmodul, indem Sie die Komponenten jedes einzelnen Submoduls deklarieren und verschiedene Signale verwenden. Die Ziffern-Submodule nehmen den Taktausgang des vorherigen Ziffern-Submoduls auf, während das erste den 100-Hz-Takt aufnimmt. Die „D“-Ausgänge der Digit-Submodule werden dann die „D“-Eingänge des Siebensegment-Anzeigetreibermoduls. Und schließlich wird der "temp"-Ausgang des Siebensegment-Anzeigetreibermoduls zum "temp"-Eingang des Siebensegment-Encodermoduls.
Schritt 8: Einschränkungen
Verwenden Sie 3 Taster (W19, T17 und U18) für die Eingänge "RST", "S1" und "S2". W19 ist die Reset-Taste, T17 ist die Start-Taste (S1) und U18 ist die Pause-Taste (S2). Bei Verwendung von Port W5 ist auch eine Einschränkung für den Takteingang erforderlich. Denken Sie auch daran, diese Zeile zur Taktbeschränkung hinzuzufügen:
create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports {CLK}]
Verknüpfen Sie auch die Anoden und Segmente mit der Platine, damit die Stoppuhr auf der Sieben-Segment-Anzeige angezeigt wird, wie in der Einschränkungsdatei zu sehen.
Schritt 9: Testen
Stellen Sie sicher, dass Ihr Gerät funktioniert, indem Sie mit den drei Tasten spielen: Drücken und halten Sie sie in jeder möglichen Reihenfolge, um mögliche Probleme mit Ihrem Code zu finden.
Empfohlen:
Eine Stoppuhr mit Arduino herstellen – wikiHow
Wie man eine Stoppuhr mit Arduino macht: Dies ist eine sehr einfache Arduino 16 * 2 LCD-Display-Stoppuhr ……… Wenn Sie diese Anleitung mögen, abonnieren Sie bitte meinen Kanal https://www.youtube.com /ZenoModiff
Löten - Grundlegende Lötanleitung: 5 Schritte
Löten - Grundlegende Lötanleitung: Beim Löten werden zwei Metalle mit einem Lötkolben unter Verwendung eines Lötmittels verbunden, um eine zuverlässige elektrische Verbindung zu bilden. Dies ist eine grundlegende Lötanleitung für Anfänger zum Handlöten mit einem Lötkolben. Ich hoffe, es wird
Grundlegende Fotobearbeitung: 10 Schritte (mit Bildern)
Grundlegende Fotobearbeitung: In diesem anweisbaren gehe ich darüber nach, wie ich meine Fotos für meine instructables und für die Produkte in meinem Etsy-Shop bearbeite. Ich verbringe nicht viel Zeit damit, aber ich mache IMMER ein wenig an meinem Telefon oder Computer. Es gibt einige schnelle und einfache
Einfache grundlegende LED-Schaltung (Verwendung von LEDs): 4 Schritte
Einfache grundlegende LED-Schaltung (Verwendung von LEDs): Diese Anleitung führt zur Verwendung von LEDs und zur Herstellung einfacher grundlegender LED-Schaltungen, deren Strombegrenzungswiderstand für den Betrieb von LEDs mit 3V, 6V, 9V & 12V. Eine LED ist ein wichtiger Bestandteil in der Elektronik, sie wird für mehrere Indi
Digitale Stoppuhr mit 555 erstellen – wikiHow
Wie man eine digitale Stoppuhr mit 555 macht: Ich habe eine einfache Stoppuhr mit 3 Sieben-Segment-LED-Anzeigen erstellt, von denen Sie zuerst den 10. Teil der Sekunden anzeigen, einen zweiten und den dritten für ein Vielfaches von 10 Sekunden das Signal pro 1 Sekunde gibt, um