Versuch 03: Digitaler Entwurf mit einem FPGA Board
Ansteuerung einer Siebensegment-Anzeige
Projekterstellung, Simulation und Implementierung


Länge: 35:20
0:0:45 BASYS3 Board und Vivado

0:2:35 Start Vivado

0:4:0 Source Dateien speichern

0:5:0 Constraints file

0:6:37 Arbeitsumgebung

0:7:30 Analyse Quellcode

0:9:0 Ausgänge und Eingänge

0:9:45 Schaltungsblock

0:10:22 Verbindungen

0:12:0 Constraints file: Verbindungen des Bausteins

0:14:20 Start Simulation

0:15:35 Simulationsanweisungen

0:16:44 Stimulus process

0:16:50 Eingangskombinationen

0:18:54 Simulation durchführen

0:20:19 Simulationsergebnis

0:22:10 Darstellung der Null

0:24:10 Screenshot/Foto

0:25:33 Start Implementierung

0:28:54 Bitstream

0:29:10 Open target29:30 Program device

0:30:15 Verifikation auf dem Board

0:31:44 Dokumentation

0:34:55 Submit

Hinweise zur Durchführung


Lesen Sie vor dem Versuch die Anleitung. Dokumentieren Sie jeden Versuch in einer Ausarbeitung, Bildschirmkopien der Ergebnisse (<alt> <Druck>, <cmd> <F14> ) und Ihren persönlichen Erfahrungen. Bitte beachten Sie folgende Hinweise:
  • Elektronikbauteile sind gefährdet durch elektrische Entladungen (ESD). Bevor Sie die Bauteile oder Komponenten des Boards berühren, berühren Sie bitte einen Massepunkt zwecks Entladung. Verwenden Sie ESD Schutzmaßnahmen. Berühren Sie bitte auch nicht eine andere Person, welche gerade mit Elektronikkomponenten / Bauteilen hantiert.
 

3 Aufgabenstellung


3.1 Entwicklungsumgebung


Sie verwenden das BASYS 3 Board der Fa. Digilent und die Entwicklungsumgebung Xilinx Vivado.
Revisionsstand der Tools (SS2020): BASYS3 Board, Xilinx Vivado HLx Webpack on Windows 10 PC.

Das Program Vivado:




Nach dem Start des Programms sehen Sie folgendes Fenster.



Je nach der Version kann die Ansicht etwas variieren, aber Sie finden immer die folgenden Bereiche.
Nehmen Sie sich Zeit überall einmal darauf zu klicken und die Funktionen kennen zu lernen. Der Computer explodiert nicht!

Erstellen eines digitalen Designs


Als erstes wird ein Projekt erstellt und diesem Projekt werden alle VHDL, Schematic Dateien und eine ucf Datei zugeordnet. VHDL und Schematic Dateien enthalten die Schaltkreisbeschreibung. Eine ucf Datei enthält die Zuordnung von Signalnamen zu physikalischen Pins des FPGAs. Dann wird festgelegt welche Datei die Gesamtfunktion des Schaltkreises beschreibt (set as root). Danach wird entweder der Arbeitsschritt Simulation oder Implementierung durchgeführt.



Bei der Simulation untersucht man das zeitliche Schaltverhalten bei verschiedenen vorgegebenen Eingangssignalen. Es gibt spezielle VHDL Dateien die das zeitliche Verhalten der Eingangssignale beschreibt. Ein Gerüst für diese Datei kann automatisch erzeugt werden (VHDL Test Bench). Durch die Aktion Simulate Behavioral Model, wird der Syntax aller Dateien des Projects und die korrekte Zuordnung von Verbindungen geprüft. Dann wird ein Simulator gestartet, der das Zeitverhalten der benutzten Signale darstellt. Normalerweise überprüft man hier die Wahrheitstabelle einer digitalen Schaltung, wobei man alle möglichen Eingangskombinationen anlegt.

Simulation




Wenn die Simulation erfolgreich ist, führt man den Schritt Implementierung durch. Er besteht aus den Unterschritten Synthesis, Implement Design, Generate Programming File. Bei der Synthesis werden wieder alle Dateien auf korrekten Syntax überprüft und auf VHDL Konstrukte abgebildet. Beim Schritt Implement Design wird dann versucht diese VHDL Konstrukte auf einfache Logikblöcke abzubilden und im FPGA zu platzieren und zu verdrahten (Map, Place and Route). Als letztes wird dann die gefundene Lösung in einen Bitstream umgewandelt, der in das FPGA zur Konfiguration geladen wird.

Program Device





3.2 Aufgabenbeschreibung:


Für das Basys 3 Board entwerfen und testen Sie ein VHDL-Programm, mit welchen Sie die Segmente CA, CB…CG und den Dezimalpunkt DP der "Four digit 7-segment display" (4) mit AN0 (=rechtes Displayzeichen) ansteuern. Dabei wählen die "Slide switches" (5) SW0 bis SWR3 eine Hexadezimalzahl aus.

Im Projekt werden die Schiebeschalter SW0 bis SW3 als Dualzahl interpretiert und die entsprechende Hexadezimalzahl mit der Siebensegmentanzeige angezeigt.



Sie führen folgende Aufgaben durch:
Teil Aufgabe
1 Erstellung eines neuen Projektes mit Vivado HLx Webpack.
Hinzufügen der Logikbeschreibung mit Hilfe von vorbereiteten VHDL Dateien.
Hinzufügen der Anschlussbelegung mit Hilfe einer XDC Datei.
2 Zeitliche Simulation der Logikschaltung
Erstellen einer Simulationsdatei und einer Testvektorliste.
Dazu wird eine VHDL Test Bench erstellt.
Simulation der Schaltung und Interpretation des Ergebnisses.
3 Implementierung der Schaltung auf dem Board
Die Logikschaltung wird in eine Netzliste und ein Bitfile umgewandelt.
Das Bitfile wird auf das Board transferiert.
Alle möglichen Schalterstellungen werden ausprobiert und das Ergebnis auf der Siebensegmentanzeige beobachtet.

 

 

3.3 Details zur Siebensegment-Anzeige


Die Anodenanschlüsse der Leuchtdioden der sieben Segmente + Dp eines Digits sind zu einem einzigen Anodenanschluss ANx zusammenfasst. Sämtliche Kathodenanschlüsse der 4 Digits sind parallel geschaltet. Sollen mehrer Digits mit unterschiedlichenZeichen angezeigt werden, dann müssen die Steuersignal zeitlich gemultiplext werden.

 

 

3.4 Versuchsdurchführung


Teil 1: Erstellung eines Projektes zur Ansteuerung einzelner Segmente einer Siebensegment-Anzeige

 


Starten Sie das Programm Vivado auf dem Desktop. Bitte warten Sie bis das Programm startet, ein Doppelklick auf die Verknüpfung reicht.
Klicken Sie auf Create Project um ein neues Projekt zu erstellen.



Drücken Sie auf Next.



Geben Sie Ihrem Projekt einen Namen, z.B.: DT_V03_Grp<Gruppennummer>_<Name>.
Verwenden Sie kein Leerzeichen, kein Bindestrich, keine Umlaute und keine sonstigen Sonderzeichen.
Unterstriche sind erlaubt.



Bestätigen Sie mit Next.



Stellen Sie die Target und Simulator language auf VHDL.
Aktivieren Sie: 'Copy sources into project'

Laden Sie die folgenden Dateien in ein lokales Verzeichnis.
VERSUCH3.vhd
HEX2LEDAX.vhd
Test_V3.vhd
Basys3_Master.xdc

Klicken Sie auf Add Files.


Wählen Sie mit gedrüchter Strg Taste die Dateien VERSUCH3.vhd und HEX2LEDAX.vhd aus.
Test_V3.vhd benötigen Sie erst später für die Simulation.
Bestätigen Sie mit OK. Der Haken für 'Copy sources into project' muß gesetzt sein. Klicken Sie auf Next.




Drücken Sie auf Add Files und fügen Sie die Datei Basys3_Master.xdc hinzu
Aktivieren Sie 'Copy cobstraints files into project'.
Klicken Sie auf Next



Sie müssen zu guter letzt noch den passenden FPGA Chip des Boards auswählen.
Suchen Sie im Feld Search nach "xc7a35tcpg236-1" und drücken Sie auf Next.




Das Feld bestätigen Sie mit Finish.



Doppelklicken Sie auf die VERSUCH3.vhd Datei im Sources Bereich.
Danach wird Ihnen der Quellcode dieser Datei auf der rechte Seite angezeigt.
Machen Sie sich mit dem Inhalt vertraut und beantworten Sie folgende Fragen.

Zählen Sie die Eingänge und Ausgänge auf:



Welcher Schaltungsblock (COMPONENT) wird hier verwendet (Name)?

 


Wie sind die Eingänge und Ausgänge des Schaltungsblocks verbunden?




Durch Doppelklick unter Constraints im Sources Bereich auf die Datei Basys3_Master.xdc wird der Quelltext der Pinbelegungsdatei dargestellt.
Hier werden die Namen der Signale mit den Pins des Bausteins verbunden.
Kommentare werden durch das # Zeichen deaktiviert bzw. durch entfernen von # aktiviert.
Mit welchem Pin des Bausteins ist dp verbunden?


 

 

Teil 2: Simulation einer Ansteuerung einzelner Segmente einer Siebensegment-Anzeige

 

Öffnen Sie mit einem Doppelklick auf Simulation Sources die Auflistung der Simulationsdateien.

Mit einem Rechtsklick -> Add Sources im Bereich Sources fügen Sie eine Simulationdatei hinzu. Bestätigen Sie mit Next.

Im darauffolgendem Fenster klicken Sie auf Add File und fügen Sie die Datei Test_V3.vhd hinzu.
Bestätigen Sie mit OK und Finish.
Mit einem Doppelklick auf die Simulationsdatei Test_V3 wird der Quellcode der Simulation geöffnet.
Fügen Sie ab Zeile 65 genug Zeilen ein, um alle möglichen Kombinationen von sw(3 downto 0) zu erzeugen.
Zusätzlich kopieren Sie die eingefügten Simulationszeilen in das folgende Feld.

Eingabe Simulationsanweisungen:



Nun müssen Sie die Simulationszeit von 1000ns auf 1600ns abändern. Klicken Sie auf Flow -> Settings -> Simulation Settings.
Gehen Sie zum Reiter Simulation. Bestätigen Sie nach der Änderung mit OK.
Mit einem Klick auf Run Simulation -> Run Behaviorial Simulation wird die Simulation gestartet.





Unter Scope kann man die Schaltungsblöcke auswählen, von denen man Signale sehen möchte.
Unter Objects kann man dann Signale ins Simulationsfenster zur Darstellung schieben.
Oben gibt es die Simulationswerkzeuge:
Damit kann man die Simulation neu starten oder weiter simulieren.

Öffnen Sie mit einem Klick auf die Dreiecke sw, led und seg. Jetzt drücken Sie noch auf die Schaltfläche "Zoom Fit".
Vergleichen Sie ihr Ergebniss mit dem vorherigen Bild. Fügen Sie einen Screenshot ihres Ergebnis ein.



Verhalten sich die Eingangssignale "sw" und die Ausgangssignale "led" und "seg" wie erwartet?
Welches Verhalten erwarten Sie von den Signalen?
Welche Segmente müssen bei welcher Zahl leuchten?





Teil 3: Impementierung einer Ansteuerung einzelner Segmente einer Siebensegment-Anzeige

Zur Inbetriebnahme des Boards gibt es im Internet das Reference Manual
Jetzt können Sie den Versuch auf das Board implementieren.

Wie lange dauert es [s], bis dieser Schritt abgeschlossen ist?
Stoppen Sie die Zeit mit der Uhr oder sehen Sie im Design Summary Report nach.

Klicken Sie dafür auf Generate Bitstream und warten Sie bis die Datei erzeugt wurde (drehendes grünes Rad oben rechts).
Sollte dort kein grüner Haken erscheinen, dann haben Sie einen Fehler im Quellcode.
Falls kein Fehler erscheint können Sie weitermachen, ansonsten bessern Sie den Fehler aus.

Falls das Basys3 Board nicht am PC angesteckt und angeschaltet sein sollte, so machen Sie das.

Drücken Sie auf Open Hardware Manager -> Open Target -> Auto Connect. Warten Sie bis sich das Fenster geschlossen hat.



Anschließenend drücken Sie auf Program Device -> xc7a35t_0.
Im neuen Fenster bestätigen Sie mit Program.

Testen Sie nun die Funktion. Setzen Sie die Schiebeschalter und beobachten die Ausgangsfunktion. Passt alles?
Dokumentieren Sie hier Ihre Testergebnisse mit Wahrheitstabelle und Kommentar.



Achtung: Sie arbeiten im nächsten Versuch weiter an diesem Projekt.
Sichern Sie Ihre Daten!!!

In Vivado sehen Sie am oberen Rand das aktuelle Verzeichnis in dem Sie arbeiten.
Machen Sie eine Kopie ihres Verzeichnisses auf einen USB-Stick.


Bitte geben Sie Gruppennummer und Namen ein:


Drucken Sie diese Seite für Ihre Unterlagen als pdf Datei aus. Verwenden Sie den Drucker pdf Creator.

Last Saved:




Submit     Recall     Save     Print