This is an old revision of the document!
Digitaltechnik Praktikum Versuch 4 - Kombinatorische Schaltung / Hierarchische Schaltung
Das Ziel dieses Versuchs ist die Beschreibung von kombinatorischen Schaltungen mit Hilfe von
- Booleschen AusdrĂŒcken
- with select Beschreibung
sowie die hierarchische Beschreibung von Schaltungen.
Als praktisches Beispiel soll eine Schaltung entworfen werden, die aus vier Eingangssignalen die Steuersignale fĂŒr eine Siebensegmentanzeige erzeugt. Die EingĂ€nge der Schaltung werden mit den Schaltern verbunden und die AusgĂ€nge werden mit der Siebensegmentanzeige verbunden.
Projekt aktualisieren
Um ihre lokalen Projektdateien mit eventuellen neuen Dateien auf dem git Server zu aktualisieren können sie im Verzeichnis âdigitaltechnikpraktikumâ
git pull
eingeben. Dann werden neue oder geÀnderte Daten vom git server geladen.
Beispiel ledcomb_rtl.vhd
Im Projektverzeichnis finden Sie als Beispiel fĂŒr die Darstellung von kombinatorischen Schaltungen die Datei . Dazu passend gibt es das Simulationsverzeichnis âsim/ledcombâ und das Syntheseverzeichnis âpnr/ledcombâ.
Die Schaltung ledcomb hat als EingĂ€nge die Schalter âSWâ. Die AusgĂ€nge sind die roten LEDs âLEDRâ und die grĂŒnen LEDs âLEDGâ. Die roten LEDS zeigen den Zustand der Schalter an. An den grĂŒnen LEDs werden verschiedene boolesche Funktionen dargestellt. In der Schaltung ledcomb gibt es weiterhin zwei Signale s0 und s1. Die Signale können wie Netze in einem Schaltplan verstanden werden.
- Skizzieren Sie die Schaltungen fĂŒr die AusgĂ€nge LEDG(0), LEDG(1), LEDG(2), LEDG(3)
- FĂŒr welche Schalterkombinationen leuchtet der Ausgang LEDG(0)?
- FĂŒr welche Schalterkombinationen leuchtet der Ausgang LEDG(1)?
- FĂŒr welche Schalterkombinationen leuchtet der Ausgang LEDG(2)?
- FĂŒr welche Schalterkombinationen leuchtet der Ausgang LEDG(3)?
- FĂŒr welche Schalterkombinationen leuchtet der Ausgang LEDG(4)?
- Der Ausgang LEDG(4) wird ĂŒber eine with .. select Anweisung beschrieben. Skizzieren Sie eine Schaltung, die die gleiche boolesche Funktion hat.
- ErlÀutern Sie wie die AusgÀnge LEDG(7..5) von den EingÀngen SW(9..6) abhÀngen.
In der Datei befindet sich die Testbench fĂŒr das Design in ledcomb.vhd. Starten Sie im Verzeichnis âsim/ledcombâ die Simulation der Schaltung. ErlĂ€utern Sie das Verhalten der AusgĂ€nge LEDG und LEDR im Simulator!
Wechseln Sie jetzt in das Verzeichnis âpnr/ledcombâ, starten Sie die Schaltungssynthese und laden Sie das Design auf das FPGA Board.
- PrĂŒfen Sie ob das Ergebnis im Simulator mit dem Verhalten auf dem Board ĂŒbereinstimmt.
- Welche Tests fehlen fĂŒr welche Schaltungsteile noch?
- PrĂŒfen Sie die fehlenden Tests auf dem Board nach.
- Wie und Warum unterscheiden sich die Dateien und ?
Beispiel hierarchisches Design
In der Datei finden Sie eine Schaltungsbeschreibung fĂŒr eine Schaltung, die die Anzahl der Einsen an den vier EingĂ€ngen zĂ€hlt. Zu der Schaltung gibt es eine Testbench . Wechseln Sie in das Verzeichnis âsim/cntonesâ und starten Sie die Simulation.
- Funktioniert die Schaltung fĂŒr die vorhandenen Testmuster in der Simulation?
Diese EinserzĂ€hlschaltung soll jetzt genutzt werden um die Anzahl der Einsen an den SW(3..0) und SW(9..6) zu zĂ€hlen. Das Ergebnis fĂŒr SW(3..0) soll an LEDG(2..0) und fĂŒr SW(9..6) an LEDG(7..5) dargestellt werden.
In der Datei finden Sie die Schaltungsbeschreibung, die die Schaltung cntones zweimal instantiiert und mit den entsprechenden EingĂ€ngen und AusgĂ€ngen verbindet. Dazu gibt es das Simulationsverzeichnis âsim/ledcntswâ und das Syntheseverzeichnis âpnr/ledcntswâ.
- ĂberprĂŒfen Sie die Funktion im Simulator
- An welcher Stelle ist festgelegt, dass jetzt zwei VHDL Dateien fĂŒr die Simulation notwendig sind?
- Synthetisieren Sie die Schaltung und ĂŒberprĂŒfen Sie die Schaltung auf dem Board.
Aufgabe Siebensegmentanzeige
Sie sollen eine Schaltung mit einer hierarchischen Schaltungsbeschreibung entwerfen, mit der die Schalter SW(3..0) als BinÀrdarstellung interpretiert als Hexadezimalzahl an HEX0 angezeigt wird. Weiterhin sollen die Schalter SW(9..6) als Hexdezimalzahl an HEX1 angezeigt werden.
- Erstellen Sie hierzu zunĂ€chst eine neue Datei bin2seg_rtl.vhd. Diese Schaltung bin2seg soll 4 EingĂ€nge bin_i(3..0) und sieben AusgĂ€nge seg_o(6..0) haben. Diese Schaltung macht die Ăbersetzung von BinĂ€rdarstellung in die Siebensegmentansteuerung.
- Erstellen Sie eine Testbench in der neuen Datei t_bin2seg.vhd um den Entwurf im Simulator zu ĂŒberprĂŒfen.
- Erstellen Sie das Simulationsverzeichnis âsim/bin2segâ mit den dazugehörigen Dateien um die Simulation durchzufĂŒhren.
- ĂberprĂŒfen Sie Ihr Design im Simulator
- ĂberprĂŒfen Sie Ihr Design auf dem FPGA Board
In der Datei de1_bin2seg_rtl.vhd soll das Design de1_bin2seg auf Basis der bin2seg Schaltung enthalten sein. Dort werden die Schalter und HEX0 und HEX1 AnschlĂŒsse vom FPGA Board mit der bin2seg Schaltung verbunden.
- Erstellen Sie die Datei de1_bin2seg_rtl.vhd
- Erstellen Sie eine Testbench t_de1_bin2seg.vhd
- Erstellen Sie ein Simulationsverzeichnis âsim/de1_bin2segâ mit den notwendigen Dateien
- ĂberprĂŒfen Sie das Design im Simulator
- Erstellen Sie ein Syntheseverzeichnis âpnr/de1_bin2segâ mit den zugehörigen Synthesedateien
- Synthetisieren Sie die Schaltung und laden Sie das Design auf das Board.
- ĂberprĂŒfen Sie die gewĂŒnschte Funktion auf dem Board