kramann.info
© Guido Kramann

Login: Passwort:










6 Übung - Umgang mit der Hardware

6 (EN google-translate)

6 (PL google-translate)

Aufgabe 1

Vollziehen Sie alle Schritte aus dem Kapitel 4 "Getting Started" nach.

Schließen Sie das FPGA-Board erst an die USB-Schnittstelle an, nachdem Ihr Dozent Ihr Programm und Ihre Schaltung überprüft hat!

Aufgabe 2

a) Lesen Sie sorgfältig den Anfang von Kapitel 5.3 "Mustervergleich" und analysieren Sie den Quelltext zur ersten Variante des Mustervergleichers in Kapitel 5.3 (mustervergleich.vhd).

b) Bauen Sie die zugehörige Schaltung zu mustervergleich.vhd auf und testen dieses Projekt auf dem DLP-FPGA.

Schließen Sie das FPGA-Board erst an die USB-Schnittstelle an, nachdem Ihr Dozent Ihr Programm und Ihre Schaltung überprüft hat!

Aufgabe 3

Die nachfolgende Aufgabe ist angelehnt an Aufgabe 2. Auch hier wird ein einfacher logischer Schaltkreis umgesetzt. Diesmal jedoch sollen Entwurf und Umsetzung selbständig erfolgen.

Ein digitaler Binär-Dekoder ist eine Schaltung, die einen binärkodierten Eingang in Einzelsignale umwandelt.

Bei einem 2-Bit-Binär-Dekoder gibt es zwei Eingänge und vier Ausgänge. Es können hier testweise 2-Bit-Worte über Dipschalter eingestellt werden und jede Kombination resultiert in genau einem Ausgang, der logisch "high" ist.

Eingangs-Bit 1 Eingangs-Bit 0 Ausgang 3 Ausgang 2 Ausgang 1 Ausgang 0
0 0 0 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0
1 1 1 0 0 0

Tabelle 6-1: Logiktabelle zum 2-Bit-Binär-Dekoder.

  • Die Ausgangs-Bits 3..0 sollen beim DLP-FPGA-Board den Pins USER_IO20,21,22 und 23 entsprechen.
  • Die Eingangs-Bits 1..0 sollen beim DLP-FPGA-Board den Pins USER_IN1 und USER_IN0 entsprechen.
Schließen Sie das FPGA-Board erst an die USB-Schnittstelle an, nachdem Ihr Dozent Ihr Programm und Ihre Schaltung überprüft hat!

Musterlösung zu Aufgabe 3

Eine naheliegende Lösung, die sich gut als "concurrent" Struktur umsetzen läßt, ist es, die Wahrheitstabelle mit Hilfe von Logikgattern umzusetzen.

Das nachfolgende Schaubild zeigt die schaltungstechnische Realisierung mit Hilfe von Logik-Bausteinen.

2-Bit-Binär-Dekoder als Digitalschaltung.

Bild 6-1: 2-Bit-Binär-Dekoder als Digitalschaltung.

Die physikalische Lage der Ausgänge entspricht der des vorangehend dargestellten 2-Bit-Wort-Vergleichers:

Ausgang Bit3: P126
Ausgang Bit2: P130
Ausgang Bit1: P131
Ausgang Bit0: P132

Code 6-1: Pin-Zuordnung der Ausgänge.

Der Ausgang wird im Projekt als Vier-Bit-Vektor mit dem Namen AUSGANG erzeugt.

Die Eingangsbits befinden sich am oberen rechten Rand des Boards.

Eingangs-Bit 1: P12
Eingangs-Bit 0: P10

Code 6-2: Zuordnung der Eingänge zu den Pins des FPGA-Chips.

Der Eingang wird im Projekt als Zwei-Bit-Vektor mit dem Namen EINGANG erzeugt.

Anlegen des Projekts zu Aufgabe 3

Festlegen der Ein- und Ausgänge bei der Projekterstellung.

Bild 6-2: Festlegen der Ein- und Ausgänge bei der Projekterstellung.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity dekoder is
    Port ( EINGANG : in  STD_LOGIC_VECTOR (1 downto 0);
           AUSGANG : out  STD_LOGIC_VECTOR (3 downto 0));
end dekoder;

architecture Dekoder_Verhalten of dekoder is

begin
    AUSGANG(3) <= EINGANG(1) and EINGANG(0);
    AUSGANG(2) <= EINGANG(1) and (not EINGANG(0));
    AUSGANG(1) <= (not EINGANG(1)) and EINGANG(0);
    AUSGANG(0) <= (not EINGANG(1)) and (not EINGANG(0));

end Dekoder_Verhalten;

Code 6-3: VHDL-Code dekoder.vhd

NET "EINGANG<1>"  LOC = "P12" | PULLUP  | IOSTANDARD = LVCMOS33 ;
NET "EINGANG<0>"  LOC = "P10" | PULLUP  | IOSTANDARD = LVCMOS33 ;

NET "AUSGANG<3>"   LOC = "P126" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ;
NET "AUSGANG<2>"   LOC = "P130" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ;
NET "AUSGANG<1>"   LOC = "P131" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ;
NET "AUSGANG<0>"   LOC = "P132" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ;

Code 6-4: Constraints-File dekoder.ucf

dekoder.zip - Xilinx-ISE-9-Projekt.
Bauplan für den Dekoder.

Bild 6-3: Bauplan für den Dekoder.