Entwurf digitaler Schaltungen Groÿe Übung 2 VHDL und FPGAs

Entwurf digitaler Schaltungen Groÿe Übung 2 VHDL und FPGAs
Entwurf digitaler Schaltungen
Groÿe Übung 2
VHDL und FPGAs
Prof. G. Kemnitz, Dr. C. Giesemann
Institut für Informatik, Technische Universität Clausthal
23. April 2015
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
1/32
für Informatik, Technische Universität Clausthal23. April 2015
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, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
2/32
Prototyp-Plattform für die Laborübungen
IO
PLB
PLB
PLB
PLB
IO
IO
PLB
IO
programmierbarer
Logikblock
programmierbares
Verbindungsnetzwerk
programmierbare Eingabe-Ausgabe-Schaltung
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
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, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
4/32
1. Einfache Gatterschaltung
Einfache Gatterschaltung
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
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, Dr. C. Giesemann
· Institut
6/32
für Informatik, Technische Universität Clausthal23. April 2015
1. Einfache Gatterschaltung
Eine VHDL-Beschreibung besteht aus Schnittstellenbeschreibung:
entity Gatterschaltung is
port(SW0, SW1, SW2, SW3, SW4, SW5, SW6, SW7: in std_logic;
LD0, LD1, LD2, LD3: out std_logic);
end entity;
und einer Beschreibung der Realisierung
architecture test of Gatterschaltung is
begin
SW0
F12
LD0 <= SW0 and SW1;
SW1
G12
LD1 <= SW2 nand SW3;
SW2
H14
LD2 <= SW4
or SW5;
SW3
H13
LD3 <= SW6
xor SW7;
SW4
J14
end architecture;
SW5
J13
SW6
&
K12
LD0
&
P14
LD1
≥1
L12
LD2
K14
LD3
=1
N14
Die Schnittstelle deniert für die
SW7
K13
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, Dr. C. Giesemann
· Institut
7/32
für Informatik, Technische Universität Clausthal23. April 2015
1. Einfache Gatterschaltung
Entwurfsvorbereitung
Zip-Datei EDS_GU2.zip runterladen
und entpacken.
Mit dem Web-Browser diesen Foliensatz önen.
Xilinx ISE önen:
Start . All Programs . Xilinx Design Tools .
ISE Design Suite 14.6 . ISE Design Tools .
64-bit-Project Navigator
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, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
8/32
1. Einfache Gatterschaltung
Editier- und Werkzeugansicht
Fenster unten links zeigt die für das Entwurfsobjekt
Logikrechner verfügbaren Bearbeitungswerkzeuge.
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
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, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
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, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
11/32
1. Einfache Gatterschaltung
Das Syntheseergebnis: Synthesize - XST . View Technology
Schematic:
sw(7:0)
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
sw 7 IBUF
Prof. G. Kemnitz, Dr. C. Giesemann
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
O
led 3 obuf
Mxor led<3> Result1
· Institut
obuf
lut programmierte
Tabellenfunktion
(look-up table)
ibuf Eingangstreiber
(input buffer)
obuf Ausgangstreiber
(output buffer)
für Informatik, Technische Universität Clausthal23. April 2015
12/32
1. Einfache Gatterschaltung
Das Ergebnis der Platzierung und Verdrahtung: Implement
Design . Map . Manually Place & Route (FPGA Editor).
LUT mit EXOR-Funktion
Pin sw(6)
mit ibuf
Leitung zu
led(3)
progr.
Verbindungsnetzwerk
progr.
Verbindungsnetzwerk
Pin sw(7)
mit ibuf
spezielle Signalleitungen
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
allgemeine Signalleitungen
für Informatik, Technische Universität Clausthal23. April 2015
13/32
2. Simulation
Prof. G. Kemnitz, Dr. C. Giesemann
Simulation
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
14/32
2. Simulation
Vorbemerkungen zur Simulation1
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 einem Prozess zur Erzeugung der Eingabe.
1
Die schrittweise Beschreibung, was zu tun ist, folgt ab Folie 18.
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
15/32
2. Simulation
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
16/32
2. Simulation
Simulationsarten
Simulation des Verhaltens ohne Verzögerungen:
Simulation der synthetisierten und verdrahteten Schaltung
(mit Verzögerungen)
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
17/32
2. Simulation
Arbeitsschritte
Anlegen eines neuen Projekts:
(ISE) File . New Project.
Name Increment4Bit.
Einstellungen bleiben wie im Bild gezeigt:
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
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, Dr. C. Giesemann
· Institut
19/32
für Informatik, Technische Universität Clausthal23. April 2015
2. Simulation
Simulation ohne Verzögerung
Simulate Behavioural Model
Darstellungsbereich mit dem Zoom richtig einstellen.
Simulator schlieÿen, bevor eine neue Simulation aus ise
heraus gestartet wird.
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
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, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
21/32
3. Taktteiler
Prof. G. Kemnitz, Dr. C. Giesemann
Taktteiler
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
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
31
T9
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, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
23/32
3. Taktteiler
programmierter Schaltkreis
Takteingang
24
25
26
+1
Z
32
27
28
29
30
GCLK0
GCLK0
z0
z1
z2
z3
31
T9
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
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
24/32
3. Taktteiler
entity Taktteiler is
port(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);
begin
process(GCLK0)
begin
if rising_edge(GCLK0) then
z <= z + 1;
end if;
end process;
LD0 <= z(24);
Z
+1
LD1 <= z(25);
32
...
LD7 <= z(31);
end architecture;
T9
Prof. G. Kemnitz, Dr. C. Giesemann
24
25
26
27
28
29
30
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 Clausthal23. April 2015
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) .../Taktteiler.vhd auswählen; (Processes)
mit Doppelklick auf Generate Programming File
(Synthese, Platzierung, Verdrahtung, Kongurationsdaten
erzeugen)
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
26/32
3. Taktteiler
Programmieren und Ausprobieren
Wenn Impact noch geönet ist2 :
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
2
Impact önen siehe Folie 11.
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
27/32
4. Ampelsteuerung
Ampelsteuerung
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
28/32
4. Ampelsteuerung
Ampelsteuerung
Taktgenerator
Zähler
Ausgabetabelle
24
+1
GCLK0
Z
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
Leuchtdioden
LD0
N14
P13
N12
P12
P11
LD3
LD4
LD5
LD6
LD7
process(GCLK0)
begin
if rising_edge(GCLK0) then
z <= z + '1';
-- Zähler
LD0 <= z(24);
-- Taktausgabe
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
29/32
4. Ampelsteuerung
24
+1
GCLK0
Z
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
case z(28 downto 25) is
when "0000"|"0001"
=> LD(7 downto 3) <= b"010_10"; --A:gelb, F:rot
when "0010"|"0011"
=> LD(7 downto 3) <= b"001_10"; --A:grün, F:rot
-- ab hier selbst weiterentwickeln
when others
=> LD(7 downto 3) <= b"100_10"; --A:rot, F:rot
end case;
end if;
end process;
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
30/32
für Informatik, Technische Universität Clausthal23. April 2015
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, Dr. C. Giesemann
· Institut
für Informatik, Technische Universität Clausthal23. April 2015
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
A:grün A:gelb A:rot F:grün F:rot
N6
Prof. G. Kemnitz, Dr. C. Giesemann
· Institut
R7
T7
C15
M6
für Informatik, Technische Universität Clausthal23. April 2015
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