[[dtpr_versuch_4]]

This is an old revision of the document!


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.

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.

Im Projektverzeichnis finden Sie als Beispiel für die Darstellung von kombinatorischen Schaltungen die Datei ledcomb_rtl.vhd. 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.

  1. Skizzieren Sie die Schaltungen für die Ausgänge LEDG(0), LEDG(1), LEDG(2), LEDG(3)
  2. Für welche Schalterkombinationen leuchtet der Ausgang LEDG(0)?
  3. Für welche Schalterkombinationen leuchtet der Ausgang LEDG(1)?
  4. Für welche Schalterkombinationen leuchtet der Ausgang LEDG(2)?
  5. Für welche Schalterkombinationen leuchtet der Ausgang LEDG(3)?
  6. Für welche Schalterkombinationen leuchtet der Ausgang LEDG(4)?
  7. Der Ausgang LEDG(4) wird über eine with .. select Anweisung beschrieben. Skizzieren Sie eine Schaltung, die die gleiche boolesche Funktion hat.
  8. Erläutern Sie wie die Ausgänge LEDG(7..5) von den Eingängen SW(9..6) abhängen.

In der Datei t_ledcomb.vhd 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.

  1. Prüfen Sie ob das Ergebnis im Simulator mit dem Verhalten auf dem Board übereinstimmt.
  2. Welche Tests fehlen für welche Schaltungsteile noch?
  3. Prüfen Sie die fehlenden Tests auf dem Board nach.
  4. Wie und Warum unterscheiden sich die Dateien ledcomb_pins.tcl und ledsw_pins.tcl?

In der Datei cntones_rtl.vhd 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 t_cntones.vhd. Wechseln Sie in das Verzeichnis “sim/cntones” und starten Sie die Simulation.

  1. 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 ledcntsw_rtl.vhd 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”.

  1. Überprüfen Sie die Funktion im Simulator
  2. An welcher Stelle ist festgelegt, dass jetzt zwei VHDL Dateien für die Simulation notwendig sind?
  3. Synthetisieren Sie die Schaltung und überprüfen Sie die Schaltung auf dem Board.

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
  • dtpr_versuch_4.1396934450.txt.gz
  • Last modified: 2014/04/08 07:20
  • by beckmanf