Schaltungsentwurf in VHDL f r FPGAs
Entwurf digitaler Schaltungen
Laborübung 2: VHDL und FPGAs
Prof. G. Kemnitz
Institut für Informatik, Technische Universität Clausthal
30. April 2014
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
1/32
Hardware-Programmierung
Heutiger Stand der Technik für den Entwurf digitaler
Schaltungen ist die Beschreibung der Zielfunktion in einer
Hardware-Beschreibungssprache. Simulation auf dem Rechner.
Prototyp-Fertigung mit programmierbaren Logikschaltkreisen
(FPGA eld programmable gate array). FPGAs bestehen aus
programmierbaren Logikblöcken,
programmierbaren EA-Schaltungen,
einem programmierbaren Verbindungsnetzwerk und
optional weiteren kongurierbaren Schaltungsblöcken, z.B.
Blockspeichern, Multiplizierern, Taktversorgung und
Prozessorkernen.
Programmierung ähnlich wie bei Mikrorechnern über eine serielle
Programmierschnittstelle (JTAG, ISP,...). Programmierdauer
wenige Minuten.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
2/32
Prototyp-Plattform für die Laborübungen
IO
PLB
PLB
PLB
PLB
IO
IO
PLB
IO
Prof. G. Kemnitz
programmierbarer
Logikblock
programmierbares
Verbindungsnetzwerk
programmierbare Eingabe-Ausgabe-Schaltung
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
3/32
Das verwendete Prototypboard hat
einen programmierbaren Schaltkreis für Schaltungen, die mit
normalen Schaltkreisen bis zu 106 Gatter umfassen können,
50MHz Quarztakt, 8 Leuchtdioden, 4 7-Segment-Anzeigen,
8 Schalter, 4 Taster, 1MB SRAM,
Anschlüsse für PS2, UART und VGA.
Ausreichend für alles, was im Studium vermittelbar ist.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
4/32
1. Einfache Gatterschaltung
Prof. G. Kemnitz
Einfache Gatterschaltung
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
5/32
1. Einfache Gatterschaltung
Einprogrammieren von Logikfunktionen
Schalter
SW0
SW1
SW2
SW3
SW4
SW5
SW6
SW7
programmierbarer Schaltkreis
F12
G12
H14
H13
J14
J13
K14
K13
Leuchtdioden
&
K12
LD0
&
P14
LD1
≥1
L12
LD2
=1
N14
LD3
Im ersten Beispiel sollen vier Gatter so einprogrammiert werden,
dass die Eingänge von Schaltern steuer- und die Ausgänge mit
LEDs beobachtbar sind. Die Kästchen mit F12 etc. sind die
Bezeichner der Schaltkreisanschlüsse, an denen die Schalter und
LEDs auf der Baugruppe angeschlossen sind.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
6/32
1. Einfache Gatterschaltung
Eine VHDL-Beschreibung besteht aus Schnittstellenbeschreibung:
Gatterschaltung is
(sw: in std_logic_vector(7 downto 0);
led: out std_logic_vector(3 downto 0));
entity;
entity
port
end
und einer Beschreibung der Realisierung
architecture
test
of
Gatterschaltung
begin
led(0)
led(1)
led(2)
led(3)
end
<=
<=
<=
<=
sw(0)
sw(2)
sw(4)
sw(6)
architecture;
sw(1);
nand sw(3);
or sw(5);
xor sw(7);
and
SW0
SW1
SW2
SW3
SW4
SW5
SW6
SW7
is
F12
G12
H14
H13
J14
J13
K14
K13
&
K12
LD0
&
P14
LD1
≥1
L12
LD2
LD3
=1
N14
Die Schnittstelle deniert für die
Anschlüsse Bezeichner, Flussrichtungen (Ein-/Ausgang) und Datentyp. In der Realisierung
stehen im Beispiel Zuweisungen logischer Verknüpfungen von
Eingabesignalen an Ausgabesignale.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
7/32
1. Einfache Gatterschaltung
Entwurfsvorbereitung
Zip-Datei EDS-Ue2.zip runterladen
und entpacken.
Mit dem Web-Browser diesen Foliensatz önen.
Xilinx ISE önen (Icon rechts).
Fenster What's New ... und Tip of
the Day schlieÿen.
(Project Navigator) File . Open Project . <entpacktes
Archiv> . Logikrechner . Logikrechner.xise auswählen.
(Hierarchie-Fenster) .../Logikrechner.vhd auswählen, mit
Doppelklick önen. Schaltungsbeschreibung kontrollieren.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
8/32
1. Einfache Gatterschaltung
Editier- und Werkzeugansicht
Im Fenster unten links sind für das ausgewählte Entwurfsobjekt
Logikrechner die verfügbaren Bearbeitungswerkzeuge
angezeigt.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
9/32
1. Einfache Gatterschaltung
Das Constraint-File
Doppelklick auf Edit Constraints (Text) önen.
Die Constraint-Datei enthält alle zusätzlichen Informationen zur
Vorgabe der Zielfunktion, die nicht in der VHDL-Datei stehen:
die Pin-Namen der Schaltungsanschlüssen (s.o.), Taktfrequenz, ...
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
10/32
1. Einfache Gatterschaltung
Übersetzen, Programmieren und Ausprobieren
(Hierarchie-Fenster) .../Logikrechner.vhd auswählen;
(Processes) mit Doppelklick auf Generate Programming
File (Synthese, Platzierung, ..).
Congure Target Device ... aufklappen
(Processes) Doppelklick auf Manage Conguration Project
(iMPACT)
(iMPACT) Doppelklick auf Boundary Scan
(Boundary Scan) Rechtsklick auf (Right click ...) .
Initialize Chain. Auto Assign ... Yes.
Für xc3s1000 logikrechner.bit im Verzeichnis
Logikrechner auswählen; Open.
Für xcf04s Bypass auswählen, danach nur OK.
Rechtsklick auf den Chip xc3s1000 . Program.
Ausprobieren: Schaltereinstellungen vornehmen und
LED-Anzeige kontrollieren.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
11/32
1. Einfache Gatterschaltung
Das Syntheseergebnis: Synthesize . View RTL Schematic:
sw(7:0)
Prof. G. Kemnitz
I
ibuf
O
sw 0 IBUF
I
I
ibuf
O
sw 1 IBUF
ibuf
O
sw 2 IBUF
I
I
ibuf
O
sw 3 IBUF
ibuf
O
sw 4 IBUF
I
I
ibuf
O
sw 5 IBUF
ibuf
O
sw 6 IBUF
I
ibuf
O
O
I1
I0
lut2
I
obuf
O
led(3:0)
led 0 obuf
led 0 annd00001
I1
I0
O
lut2
I
obuf
O
led 1 obuf
led 1 not00001
O
I1
I0
lut2
I
obuf
O
led 2 obuf
led 2 or00001
O
I1
I0
lut2
I
obuf
O
led 3 obuf
Mxor led<3> Result1
lut programmierte
Tabellenfunktion
(look-up table)
ibuf Eingangstreiber
(input buffer)
obuf Ausgangstreiber
(output buffer)
sw 7 IBUF
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
12/32
1. Einfache Gatterschaltung
Das Ergebnis der Platzierung und Verdrahtung: Implementation
. Map . Manually Place & Route (FPGA Editor).
Pin sw(6)
mit ibuf
LUT mit EXOR-Funktion
Leitung zu
led(3)
progr.
Verbindungsnetzwerk
spezielle Signalleitungen
Prof. G. Kemnitz
·
progr.
Verbindungsnetzwerk
Pin sw(7)
mit ibuf
allgemeine Signalleitungen
Institut für Informatik, Technische Universität Clausthal
30. April 2014
13/32
2. Simulation
Prof. G. Kemnitz
Simulation
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
14/32
2. Simulation
Simulation
Die Simulation benötigt ein Testobjekt. Das sei hier die
nachfolgende Zählfunktion:
Zusätzlich wird ein Testrahmen zur Erzeugung der
Eingabesignale benötigt. Das ist eine Entwurfseinheit mit dem
Testobjekt als Teilschaltung und im einfachsten Fall einem
Prozess zur Erzeugung der Eingabe.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
15/32
2. Simulation
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
16/32
2. Simulation
Simulationsarten
Simulation des Verhaltens ohne Verzögerungen:
Simulation der synthetisierten und verdrahteten Schaltung
(mit Verzögerungen)
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
17/32
2. Simulation
Arbeitsschritte
Anlegen eines neuen Projekts:
(ISE) File . New Project.
Name Increment4Bit.
Einstellungen bleiben wie im Bild gezeigt:
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
18/32
2. Simulation
Simulation
vorbereiten
Mit Project . New Source ein VHDL-Modul Increment4Bit.vhd und eine VHDL-Testbench IncTB hinzufügen und
die Beschreibungen von den Folien zuvor eintippen. Von
Implementation auf Simulation umstellen. Nach der Eingabe für
beide Dateien Check Syntax und Fehlerbeseitigung.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
19/32
2. Simulation
Simulation ohne Verzögerung
Simulate Behavioural Model
Darstellungsbereich mit dem Zoom richtig einstellen.
Vor dem nächsten Simulationsstart aus ise heraus
Simulator schlieÿen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
20/32
2. Simulation
Post-Place & Route Simulation
Auf Implement umstellen und Implement Design
ausführen..
Auf Simulation zurückstellen, Simulationsart auf Post
Route umstellen.
Syntax Check.
Simulation Post-Place
& Route Model.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
21/32
3. Taktteiler
Prof. G. Kemnitz
Taktteiler
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
22/32
3. Taktteiler
Taktteiler
Teilen des 50MHz-Eingabetakts durch 232
Ausgabe der höchstwertigen Zählerstellen auf Leuchtdioden
24
25
26
+1
Z
32
27
28
29
30
T9
31
K12
P14
L12
N14
P13
N12
P12
P11
LD0
LD1
LD2
LD3
LD4
LD5
LD6
LD7
GCLK0
50/224 ≈ 3 Hz; 50/225 ≈ 1,5 Hz; . . .
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
23/32
3. Taktteiler
programmierter Schaltkreis
Takteingang
24
25
26
+1
Z
32
27
28
29
30
GCLK0
Prof. G. Kemnitz
GCLK0
z0
z1
z2
z3
·
T9
31
Leuchtdioden
K12
P14
L12
N14
P13
N12
P12
P11
LD0
LD1
LD2
LD3
LD4
LD5
LD6
LD7
1
0
1
0
1
0
1
0
1
0
Institut für Informatik, Technische Universität Clausthal
30. April 2014
24/32
3. Taktteiler
Taktteiler is
(GCLK0: in std_logic;
LD0, LD1, ..., LD7: out std_Logic);
end entity;
architecture test of Taktteiler is
signal z: std_logic_vector(31 downto 0);
entity
port
begin
(GCLK0)
process
begin
rising_edge(GCLK0)
z <= z + 1;
end if;
end process;
LD0 <= z(24);
LD1 <= z(25);
...
LD7 <= z(31);
end architecture;
if
Prof. G. Kemnitz
then
24
25
26
+1
Z
32
27
28
29
30
T9
31
K12
P14
L12
N14
P13
N12
P12
P11
LD0
LD1
LD2
LD3
LD4
LD5
LD6
LD7
GCLK0
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
25/32
3. Taktteiler
Erzeugung der Kongurationsdatei
(Projektnavigator) File . Open Project . Ebene zurück .
Taktteiler . Taktteiler.xise
(Hierarchy-Fenster) .../Taktteiler.vhd auswählen; mit
Doppelklick önen (Schaltungsbeschreibung)
(Hierarchy-Fenster) .../Taktteiler.ucf auswählen; (Processes)
mit Doppelklick auf Edit Constraints önen
(Beschreibung der Anschlusszuordnungen)
(Hierarchy-Fenster) .../Logikrechner.vhd auswählen;
(Processes) mit Doppelklick auf Generate Programming
File (Synthese, Platzierung, Verdrahtung,
Kongurationsdaten erzeugen)
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
26/32
3. Taktteiler
Programmieren und Ausprobieren
Rechtsklick auf den Chip xc3s1000; Assign New
Conguration File
taktteiler.bit im Verzeichnis Taktteiler auswählen;
Open
Rechtsklick auf den Chip xc3s1000 . Program
Ausprobieren
Schaltung ändern, z.B. höherfrequente Takte
(niederwertigere) Zählerbits ausgeben oder
Anschlusszuordnung in der ucf-Datei ändern
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
27/32
4. Ampelsteuerung
Prof. G. Kemnitz
Ampelsteuerung
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
28/32
4. Ampelsteuerung
Ampelsteuerung
Taktgenerator
Zähler
Ausgabetabelle
24
+1
GCLK0
T9
Z
32
z(28...25)
0000
0001
0010
0011
0100
...
Autos
gelb
gelb
grün
grün
grün
...
Fussg.
rot
rot
rot
rot
rot
...
K12
Leuchtdioden
LD0
N14
P13
N12
P12
P11
LD3
LD4
LD5
LD6
LD7
(GCLK0)
process
begin
rising_edge(GCLK0) then
z <= z + '1';
-- Zähler
LD0 <= z(24);
-- Taktausgabe
if
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
29/32
4. Ampelsteuerung
24
Z
+1
GCLK0
32
T9
z(28...25)
0000
0001
0010
0011
0100
...
Autos
gelb
gelb
grün
grün
grün
...
Fussg.
rot
rot
rot
rot
rot
...
K12
LD0
N14
P13
N12
P12
P11
LD3
LD4
LD5
LD6
LD7
z(28 downto 25) is
"0000"|"0001"
=> LD(7 downto 3) <= b"010_01"; --A:gelb, F:rot
when "0010"|"0011"
=> LD(7 downto 3) <= b"100_01"; --A:grün, F:rot
-- ab hier selbst weiterentwickeln
case
when
when others
=> LD(7
;
end if;
end process;
downto
3) <= b"001_01"; --A:rot, F:rot
end case
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
30/32
4. Ampelsteuerung
Erzeugung der Kongurationsdatei
(Project Navigator) File . Open Project . Ebene zurück .
Ampel . Ampel.xise
(Hierarchy-Fenster) .../Ampel.vhd auswählen; mit
Doppelklick önen (Schaltungsbeschreibung)
(Hierarchy-Fenster) .../Ampel.ucf auswählen; (Processes) mit
Doppelklick auf Edit Constraints önen (Beschreibung der
Anschlusszuordnungen)
(Hierarchy-Fenster) .../Ampel.vhd auswählen; (Processes)
mit Doppelklick auf Generate Programming File
(Synthese, Platzierung, Verdrahtung, Kongurationsdaten
erzeugen)
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
30. April 2014
31/32
4. Ampelsteuerung
Programmieren und Ausprobieren
Rechtsklick auf den Chip xc3s1000; Assign New
Conguration File
ampel.bit im Verzeichnis Ampel auswählen; Open
Rechtsklick auf den Chip xc3s1000 . Program
Ausprobieren
Schaltung ändern, z.B. höherfrequente Takte
(niederwertigere) Zählerbits ausgeben oder
Anschlusszuordnung in der ucf-Datei ändern
Ausgang
Anschluss
Prof. G. Kemnitz
·
A:grün A:gelb A:rot F:grün F:rot
N6
R7
T7
C15
Institut für Informatik, Technische Universität Clausthal
M6
30. April 2014
32/32
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement