Upload
dangliem
View
214
Download
1
Embed Size (px)
Citation preview
23.04.2013 – Version 1.04
Technische Universität Ilmenau
Fakultät für Informatik und Automatisierung
Institut für Technische Informatik und Ingenieurinformatik
Fachgebiet: Integrierte Kommunikationssysteme
Praktikumsanleitung
Integrierte Hard- und Softwaresysteme II
Versuch: Reaktionstester
Dipl.-Ing. Steffen Ostendorff, B.Sc. Tobias Vietzke
2
Inhaltsverzeichniss
1 Aufgabenstellung ............................................................................................................... 3
1.1 Einführung ................................................................................................................... 3
1.2 Anforderungen ............................................................................................................ 4
1.3 Übersicht ...................................................................................................................... 6
1.4 Modul: IHS2_PRAK_Control......................................................................................... 7
1.5 Modul: IHS2_Prak_Random ........................................................................................ 8
1.6 Modul: IHS2_Prak_10msTimer .................................................................................... 9
1.7 Hardware ..................................................................................................................... 9
2 Anleitung: Modultest ....................................................................................................... 10
2.1 Installation (Modelsim).............................................................................................. 10
2.2 Starten einer Simulation mithilfe von do-Files (Modelsim) ...................................... 10
2.3 Installation (ISE 13.4) ................................................................................................. 11
2.4 Starten einer Simulation mithilfe von do-Files (ISE 13.4) .......................................... 15
2.5 Aufbau und Verwendung von TestBenches .............................................................. 17
2.6 Aufbau von do-Files (Modelsim) ............................................................................... 18
3 Anleitung: Programmierung der Zielhardware ................................................................ 19
4 Anhang: Zusammenfassung VHDL Befehle ...................................................................... 21
4.1 Concurrent Statements ............................................................................................. 21
4.2 Sequential Statements............................................................................................... 22
4.3 Specifications ............................................................................................................. 24
4.4 Library & Use Clause .................................................................................................. 24
4.5 Declarations ............................................................................................................... 24
4.6 Library Units ............................................................................................................... 26
5 History .............................................................................................................................. 28
3
1 Aufgabenstellung
1.1 Einführung
Das IHS2 Seminar hat sich von 2009 bis 2012 mehr und mehr von VHDL-lastigen Übungen zu
Themen verschoben, die in der Vorlesung behandelt worden sind. Daher gibt es für das
Praktikum einen extra Satz Folien, die zum Verständnis notwendig sind. Diese sind als
Arbeitsmaterial des Praktikums auf der Webseite des Fachgebiets zu finden. Sie sind als
Zusatzmaterial gedacht und wurden aus Seminarunterlagen von 2009 zusammengestellt und
daher nicht extra für das Praktikum entworfen. Dies ist beim Lesen ggf. zu berücksichtigen.
Auf Basis, der in diesen Folien vorgestellten VGA Modulen, soll ein Reaktionstester
entwickelt werden. Dafür werden 4 Grafikmodule1 als 7-Segmentanzeige verwendet. Hier
soll die benötigte Reaktionszeit angezeigt werden. Ein weiteres Grafikmodul wird zur
Anzeige eines farbigen Signals verwendet und dient zur Zustandssignalisierung während des
Reaktionstests. Es kann über 3 Steuerleitungen die 3 Grundfarben des RGB-Raums sowie
deren Mischfarben darstellen. Weitere Informationen über die verwendeten Grafikmodule
sowie das VGA Modul finden Sie in den oben erwähnten Zusatzfolien zu finden.
Der Reaktionstester soll nach seiner Aktivierung eine zufällige Zeit in einem Wartemodus
bleiben. Danach wird auf der 7-Segmentanzeige ein Timer angezeigt, welcher durch einen
Tastendruck angehalten wird. Beim vorzeitigen Drücken einer Taste, wird der Versuch mit
einem roten Signal abgebrochen. Die einzelnen Phasen (Idlephase, Wartephase,
Reaktionsphase, Anzeigephase sowie ggf. Fehlerphase) sollen durch unterschiedliche Farben
gekennzeichnet werden.
Für das Praktikum ist eine Bearbeitungszeit von ca. 10 Stunden vorgesehen. Davon
entfallen 7 Stunden auf die häusliche Vorbereitung und 3 Stunden auf die Umsetzung der
praktischen Aufgaben im Praktikumsraum. Die Bearbeitung des Praktikums darf nur mit
vorbereiteten und vollständigen Unterlagen durchgeführt werden! Das Praktikum ist in
Teams von 2 Personen durchzuführen.
Alle Module sind in VHDL zu implementieren. Nutzen Sie dazu die Xilinx ISE 13.42 sowie
ggf. Modelsim. Es wird empfohlen die einzelnen zu entwickelnden Module mit dem ISE
Simulator oder Modelsim vor dem Praktikum zu simulieren.
1 Als Grafikmodul wird ein Modul in VHDL bezeichnet, das nach gegebenen Vorgaben (siehe extra Foliensatz)
ein 128x128 Pixel großes Bild ausgibt. Dieses Modul ist unabhängig von anderen Modulen. 2 http://www.xilinx.com/support/download/index.htm
4
Zur Verhaltensvalidation (Teil der Vorbereitung) können die bereits angelegten
TestBenches verwendet werden (siehe Kap. 2 Anleitung: Modultest). Weiterhin besteht
die Möglichkeit sich eine Hardware-Plattform auszuleihen. Kontaktieren Sie dazu Herrn
Ostendorff bzw. Herrn Vietzke per Mail.
Alle Vorbereitungsaufgaben sind schriftlich zu erfüllen und MÜSSEN zum
Praktikumstermin vorgelegt werden. Die restlichen Aufgabenteile (Programmierung in
VHDL) sollten zu Beginn des Praktikums fehlerfrei synthetisierbar sein. Kleinere
Verhaltensfehler können noch während der Praktikumszeit ausgebessert werden.
Nach erfolgreicher Durchführung der oberen Aufgabe gibt es eine kleine Zusatzaufgabe, die
erst vor Ort festgelegt wird und sich nach den Erfahrungen der jeweiligen Praktikumsgruppe
richtet. Die Durchführung dieser Aufgabe hat auf das Bestehen des Praktikums keinen
Einfluss, jedoch ggf. auf die Benotung.
1.2 Anforderungen
Zu entwerfen ist der Reaktionstester mit folgenden Anforderungen:
• Der Reaktionstester ist zu Beginn in einem neutralen Zustand (alle
7-Segmentanzeigen auf 0, beliebig farbiges Signal).
• Durch Drücken einer Taste ändert sich das Signal auf gelb (� Abbildung 1)
ANMERKUNG: Da bei allen vorhandenen Board immer mindestens eine Taste defekt
ist, sind alle Leitungen oder verknüpft zu verwenden. Es ist somit egal welche Taste
gedrückt wird, jedoch steht somit nur eine Taste zur Verfügung.
• Das gelbe Signal bleibt für eine zufällige Zeit von 1 bis 10 Sekunden angezeigt.
• Wird während dieser Zeit eine weitere Taste gedrückt, so wechselt das Signal auf Rot
(durch erneutes Drücken einer Taste wechselt das System zurück in den neutralen
Zustand).
• Nach Ablauf der zufälligen Zeit erlischt das gelbe Signal und es wird ein Timer
angezeigt.
• Für den Timer stehen die vier 7-Segmentanzeigen zur Verfügung - dabei soll die 4.
Stelle die 1/100 s, die 3. Stelle die 1/10s, die 2. Stelle die 1s und die 1. Stelle die 10s
anzeigen (� Abbildung 1 & Abbildung 2).
• Wird jetzt eine Taste gedrückt, wird der Timer angehalten, die benötigte Zeit wird
angezeigt und ein grünes Signal ausgegeben (� Abbildung 2).
• Durch erneutes Drücken einer Taste wechselt das System zurück in den neutralen
Zustand.
5
Abbildung 1: Wartephase - Signal gelb - Timer auf 0
Abbildung 2: Anzeigephase - Signal grün - Timer steht
23.04.2013 – Version 1.04
1.3 Übersicht
Für den Reaktionstester sind folgende Grundmodule zu entwerfen und in VHDL zu implementieren:
Abbildung 3: Übersicht über die Grundmodule des Reaktionstesters und deren Verschaltung
Die Entitys der einzelnen Module sind bereits vorhanden. Die Signale zur Kommunikation untereinander sind ebenfalls schon angelegt. Alle
benötigten VHDL Gerüste sind in dem Projekt "VGA_Projekt_IHS2_PRAK" zu finden.
23.04.2013 – Version 1.04
1.4 Modul: IHS2_PRAK_Control
Das Modul realisiert die interne Verwaltung des Reaktionstesters. Entwerfen Sie eine
geeignete Struktur zur Realisierung der Anforderungen.
1.4.1 Ports
CLK: 25.175 MHz Main Clock des Systems (Achtung! - nicht der VGA
Clock)
RST: globaler Reset des Systems
pvButton_IN: beschreibt 3 Tasten auf dem Experimentierboard (Abbildung 5) die
Tasten sollen für den internen Ablauf des Systems verwendet
werden. Bitte alle Tasten oder verknüpft verwenden.
pvRandomNumber_IN: 12 Bit Random Zahl die vom IHS2_Prak_Random generiert wird
pvTimeInDecimals_IN: Input Vektor für den Timer-Output die Zeit muss in BCD-Code
dargestellt sein jeweils 4 Bits entsprechen den darzustellenden
Digits
pfGetRandom_OUT: wenn 1, wird auf pvRandomNumber_IN ein Zufallswert geliefert
pfSetXXXColour_OUT: setzt das Signal auf die entsprechende Farbe (es können mehere
Farben gleichzeitig gesetzt werden) die Farben sind im RGB
Farbformat codiert
pfStartTimer_OUT: startet den Timer
pfSopTimer_OUT: stoppt den Timer - letzter Wert wird beibehalten
pfResetTimer_OUT: setzt den Timer auf 0 - der aktuelle Zustand wird beibehalten
pv7SegX_Out: Anzeigewert für die vier 7-Segmentanzeigen
der Ausgabewert muss ein BCD Wert enthalten - andere Werte
werden nicht dargestellt
Vorbereitung:
Informieren sie sich über die Möglichkeiten zur Beschreibung von Automaten in VHDL.
Nutzen sie dazu die Materialen aus den Zusatzfolien des Praktikums oder aus dem
Language Templates der ISE unter "VHDL->Synthesis Constructs->Coding Examples".
Entwerfen Sie einen geeigneten Automat zur Umsetzung von IHS2_PRAK_Control. Die
Zustände sowie Zustandsübergänge sind in einer angemessenen Form schriftlich zu
entwerfen und grafisch zu dokumentieren.
8
1.5 Modul: IHS2_Prak_Random
Da man in Hardware keine nichtdeterministischen Verfahren implementieren kann, fallen
die gängigen Methoden zur Random-Number Generierung aus. Eine mögliche Realisierung
eines streng deterministischen Pseudozufallszahlengenerator ist ein linear rückgekoppeltes
Schieberegister (engl. Linear Feedback Shift Register, kurz LFSR). Die Güte der Zufallszahlen
kann durch eine Kombination von mehreren LFSR und durch die Wahl eines günstigen
Generatorpolynoms beeinflusst werden.
Dieses Modul soll ein solches LFSR mit 12 Bit Ausgabebreite realisieren. Sobald das
pfGetRandom_IN Flag auf 1 gesetzt ist, soll an pvRandomNumber_OUT eine neue Zufallszahl
anliegen. Wird das Flag wieder auf 0 gesetzt, soll die momentane Random Number am
Ausgangsport gehalten werden.
Vorbereitung:
Informieren Sie sich über die Generierung von Zufallszahlen mittels LFSR.
Skizzieren Sie den strukturellen Aufbau eines LFSR.
Geben Sie ein geeignetes Generatorpolynom für ein 12 Bit LFSR an.
Abbildung 5: Taster zur Steuerung des
Reaktionstesters
Abbildung 4: Language Templates
9
1.6 Modul: IHS2_Prak_10msTimer
Der Timer soll eine Stoppuhr realisieren. Sobald das pfStartTimer_IN Signal gesetzt ist, wird
der Timer aktiviert. Mit pfStopTimer_IN wird der Timer angehalten, die Ausgabe bleibt
bestehen. pfResetTimer_IN setzt den Zähler auf 0 zurück, der Timer verbleibt im aktuellen
Zustand (zählend, angehalten). Die Auflösung lässt sich über das gCOUNTER_TICK Generic
frei wählen.
Ausgegeben werden vier BCD-kodierte Digits, wobei die Bits 3 .. 0 die kleinste Stelle und die
Bits 15 ... 12 die größte Stelle sind. Wird der interne Wert gCOUNTER_TICK erreicht, so wird
das niederwertigste Digit inkrementiert. Es ist darauf zu achten, dass nur gültige BCD Werte
ausgegeben werden.
1.7 Hardware
Spartan-3A DSP 1800 Board
25.175 MHz Main Clock
62,9375 MHz VGA Clock
JTAG programming and configuration port
10
2 Anleitung: Modultest
Für die Simulation können der integrierte ISE Simulator oder Modelsim verwendet werden.
Beim Erstellen dieser Anleitung gab es mit Modelsim unter Win7 (64bit) Probleme bei der
Installation, daher ist die hier beschriebene Anleitung für Modelsim evtl. nicht auf dem
neusten Stand.
2.1 Installation (Modelsim)
ModelSim ist eine Simulationsumgebung für VHDL und Verilog die für Studenten kostenlos
unter
http://model.com/content/modelsim-pe-student-edition-hdl-simulation
heruntergeladen werden kann. Zum Download ist eine Registrierung erforderlich. Eine
Schritt-für-Schritt-Anleitung ist auf der Seite vorhanden.
2.2 Starten einer Simulation mithilfe von do-Files (Modelsim)
Starten Sie ModelSim nach der erfolgreichen Installation.
Abbildung 6: ModelSim
Wechseln Sie über den File->Change Directory Befehl in das Hauptverzeichnis ihres Projekts.
11
Abbildung 7: ModelSim - change directory
Zum Starten der Simulation können automatische do-Skripte verwendet werden. Für die 3
Hauptmodule des Praktikums sind Standard-do-Files im ./Sim/ModelSim Ordner vorhanden.
Diese müssen bei Bedarf noch um user-spezifische Signale erweitert werden (s.u.).
Zum Starten eines do-Files geben sie do ./sim/ModelSim/<Name des do-Files>.do in die
Konsole ein.
Abbildung 8: ModelSim – console
2.3 Installation (ISE 13.4)
Die ISE13.4 ist von der Xilinx Website3 herunterzuladen. ACHTUNG: Die Datei ist ca. 5.7Gbyte
groß und benötigt zum Entpacken erneut 5.7Gbyte. Die Installation des Webpacks belegt
anschließend ca. 14Gbyte.
Im Folgenden sind ein paar Bilder der Installation sowie der empfohlenen Einstellungen
dargestellt. Die Lizenzbedingungen (3 Stück) sind zu akzeptieren, damit die Software
3 http://www.xilinx.com/support/download/index.htm
12
installiert werden kann. Im Anschluss an die Installation ist die Lizensierung der ISE auf der
Xilinx Website durchzuführen. Hierfür muss ggf. ein Login erstellt werden.
Abbildung 9: ISE Installation – erstes Fenster
Abbildung 10: ISE Installation – Auswahl der Edition
13
Abbildung 11: ISE Installation – Auswahl der zu installierenden Komponenten
Abbildung 12: ISE Installation – Angabe des Installationspfades
14
Abbildung 13: ISE Installation – Lizensierung
Abbildung 14: ISE Installation – Lizenz Konfiguration
Abbildung 15: ISE Installation – Xilinx License Site
15
2.4 Starten einer Simulation mithilfe von do-Files (ISE 13.4)
Nach der Installation ist die ISE zu starten. Anschließend kann über „Open Project“ ein
Projekt geöffnet werden. Es stehen folgende Projekte in denen für das Praktikum
bereitgestellten Dateien zur Verfügung.
Projekt im Unterordner ./prj/
- ISE13:
Hauptprojekt für die Synthese des gesamten Entwurfs (wird im Praktikum benötigt)
- ISE13_IHS2_PRAK_10msTimer:
Projekt für die Simulation des zu entwerfenden Moduls 10msTimer
- ISE13_IHS2_PRAK_Control:
Projekt für die Simulation des zu entwerfenden Moduls Control
- ISE13_IHS2_PRAK_Random:
Projekt für die Simulation des zu entwerfenden Moduls Zufallsgenerator
Das Hauptprojekt ist für die Synthese des Gesamtprojekts. Die anderen Projektordner sind
für die einzelnen zu entwerfenden Module und deren Simulation.
Zum Durchführen der Simulation mit dem ISim Simulator ist das entsprechende Projekt (z.B.
ISE13_IHS2_PRAK_10msTimer) zu öffnen. Beispielhaft sind die nötigen Schritte im Folgenden
dargestellt.
Abbildung 16: ISim – Process Properties aufrufen
16
Als erstes ist in den Simulationsview zu wechseln. Dies ist oben links unterhalb des Menüs
möglich. Anschließend sind in der Mitte links unter „Simulate Behavioral Model“ die
„Process Properties“ zu öffnen. Diese sind in der folgenden Abbildung dargestellt. Bei den
vorgefertigten Projekten sind die Projektpfade anzupassen.
Abbildung 17: ISim – Process Properties ausfüllen
Abbildung 18: ISim – Simulation
Die ISim Simulation ist im oberen Bild dargestellt. Links können alle vorhandenen Ports und
Signale angezeigt werden, die dann per Drag&Drop in das Simulationsfenster gezogen
werden können. Für Details zur Steuerung und für weitere Optionen des Simulators sei an
dieser Stelle auf dessen Dokumentation verwiesen.
17
2.5 Aufbau und Verwendung von TestBenches
Für eine Simulation eines VHDL-Moduls wird ein VHDL TestBench(TB) benötigt. Ein TB ist
ebenfalls eine VHDL-Datei welche die zu testenden Datei (UUT - unit under test) instanziiert.
Durch das TB werden die Eingangs-Stimuli festgelegt und die Ausgangssignale der UUT
entgegen genommen.
Abbildung 19: TestBench & UUT
Um eine bestimmte Eingangsbelegung am UUT zu testen muss diese zu einem definierten
Zeitpunkt von der TB erzeugt werden. Die TBs für die 3 Hauptmodule des Praktikums sind im
./sim Ordner vorhanden.
In jeder TB gibt es einen "stimulus process" der die Eingangsstimuli erzeugt. Dabei ist zu
beachten, dass die Signale die dort gesetzt werden zeitlich aufeinander abgestimmt sind.
z.B.:
pvButton_IN <= "100";
wait for CLK_period*2;
pvButton_IN <= "000";
wait for 200 ns;
pvButton_IN <= "100";
wait for CLK_period*1;
pvButton_IN <= "000";
wait for 200 ns;
18
Hier wird der pvButton_IN Port für 2 CLK-Perioden auf "100" gesetzt. Danach sofort wieder
auf "000". Danach passiert 200 ns (5 Takte - bei 40ns CLK-Periode ) nichts am Eingang der
UUT. Danach wird der pvButton_IN Port erneut auf "100" gesetzt, diesmal jedoch nur ein 1
CLK-Periode gehalten. Daraufhin gibt es eine weitere 200 ns Pause.
Mithilfe der TB können nur Signale am Eingang der UUT geändert werden. Instanziierte
Komponenten im Inneren der UUT oder interne Signale sind nicht direkt erreichbar.
2.6 Aufbau von do-Files (Modelsim)
In do-Files sind alle nötigen Simulationseinstellungen beschrieben. Die wichtigsten
Konstrukte sind hier kurz dargestellt.
vcom ./src/IHS2_PRAK_Random.vhd
Der "vcom" Befehl kompiliert die benötigten VHDL Files, so dass sie von ModelSim
verarbeitet werden können. Alle in der Simulation verwendeten VHDL-Files müssen
kompiliert werden.
add wave -noupdate -format Literal -radix hexadecimal -label "CLK" /IHS2_PRAK_Random_TB/clk
Mit "add wave" können zu beobachtende Signale hinzugefügt werden. Dies Signale aus der
TB wie auch aus der UUT sein. Die "format" Option gibt an ob das Signal als logischer Pegel
(Logic) oder als Literal (Literal) angezeigt wird. Im Literal Modus kann über die "radix" Option
die Darstellungsform gewählt werden. Typische Formate sind: Binary, Octal, Decimal,
Hexadecimal, ASCII. Die "Label" Option gibt eine Alias für das Signal an um lange Namen zu
vermeiden. Am Ende des Befehls wird das zu beobachtende Signal geschrieben.
run 200 us
Gibt die Länge der Simulation an.
WaveRestoreZoom {0 us} {2 us}
Zoomt nach Ende der Simulation in den angegeben Bereich.
19
3 Anleitung: Programmierung der Zielhardware
Erstellen Sie als erstes ein bit-File zur Programmierung des FPGAs. Nutzen Sie dazu die
"Generate Programming File" Option aus der ISE.
Abbildung 20: Generate Programming File
Starten Sie nun iMPACT.
Abbildung 21: iMPACT
Doppelklicken Sie auf "Boundary Scan" und initialisieren danach Sie die JTAG Kette über den
"Initialize Chain" Button.
20
Abbildung 22: iMPACT - Boundary Scan & Initialize Chain
Wählen Sie im erschienenen Dialog, das von der ISE generierte Bit-File aus. Dies befindet sich
standardmäßig in dem Projektordner des aktiven Projekts. Sie können auch nachträglich ein
anderes bit-File über die "Assign New Configuration File" Option des Xilinx-Symbols
zuweisen. Diese Option ist im Kontextmenü des Symbols zu finden und wird über ein
Rechtsklick angezeigt.
Abbildung 23: iMPACT- Assign New Configuration File
Nun werden sie gefragt, ob Sie ein SPI File anhängen möchten. Lehnen Sie das über die No
Option ab und bestätigen Sie die darauf folgenden "Programming Options" mit OK. Nun
können sie den FPGA Programmieren indem Sie ein Rechtsklick auf das Xilinx-Symbol
machen, und dort die "Program" Option auswählen.
Abbildung 24: iMPACT - Program
21
4 Anhang: Zusammenfassung VHDL Befehle4
4.1 Concurrent Statements
4.1.1 block_statement
label: block [(guard_expression)]
[generic]
[ports]
[declarations]
begin
concurrent_statements
end block [label];
4.1.2 component_instantiation_statement
label : name [ generic map (map) ] [ port map (signals) ];
4.1.3 concurrent_assertion_statement
assert condition
[ report string_expression ]
[ severity {NOTE | WARNING | ERROR | FAILURE} ];
4.1.4 concurrent_procedure_call
[ label : ] procedure_name [ (parameters) ];
4.1.5 concurrent_signal_assignment_statement
[ label : ] [ {conditional_assignment | assignment |
selected_assignment} ];
4 University of Cambridge - Department of Engineering,
http://www2.eng.cam.ac.uk/~dmh/ptiiavlsi/VHDLcmd.htm (17.04.2011)
22
4.1.6 generate_statement
label : [{ for specification | if condition }] generate
concurrent_statements
end generate [label];
4.1.7 process_statement
[label : ] process [ (sensitivity_list) ]
[ variable_declaration ]
[ type_declaration ]
[subprogram_declaration ]
[ declarations ]
begin
sequential_statements -- Cannot contain a wait
statement if sensitivity_list is used
end process [ label ];
4.2 Sequential Statements
4.2.1 assertion_statement
assert condition -- When condition is false [strng_expression] is
printed
[ report string_expression ]
[severity { NOTE | WARNING | ERROR | FAILURE } ];
4.2.2 case_statement
case expression is -- Avoid the use of parenthesis, if possible
when choices_1 => sequential_statements
.
.
when choices_n => sequential_statements
end case;
4.2.3 exit_statement
exit [ label ] [ when condition ];
23
4.2.4 if_statement
if condition then
sequential_statements
{ elsif condition then sequential_statements }
[ else sequential_statements ]
end if;
4.2.5 loop_statement
[ label : ] [ while condition | for loop_specification ] loop
sequential_statements
end loop [ label ] ;
4.2.6 next_statement
next [ label ] [ when condition ];
4.2.7 null_statement
null;
4.2.8 procedure_call_statement
procedure_name [ (parameters) ] ;
4.2.9 return_statement
return expression; --For use in a Function
return; --For use in a Procedure
4.2.10 signal_assignment_statement
target <= expression [ after time_expression ]
.
.
{ , expression [ after time_expression ];
4.2.11 variable_assignment_statement
target := expression ;
24
4.2.12 wait_statement
wait --A Function may not contain a wait_statement
[ on signal_name {, signal_name} ]
[ until conditional_expression ]
[ for time_expression ] ;
4.3 Specifications
4.3.1 attribute_specification
attribute attribute_name
of entity_name is expression ;
4.3.2 configuration_specifications
for component_name
use [ generic_map_part ]
[port_map_part] ;
4.4 Library & Use Clause
4.4.1 library_clause
LIBRARY names ;
4.4.2 use_clause
USE selected_names ;
4.5 Declarations
4.5.1 alias_declaration
alias name1 : type [ (indexes) ] is name2 [ (indexes) ] ;
4.5.2 attribute_declaration
attribute name : type ;
25
4.5.3 component_declaration
component identifier :
[ generic (generic_list) ; ]
[ port (port_list) ; ]
end component ;
4.5.4 constant_declaration
constant name : type := expression ;
constant name : array_type [ (indexes) ] := expression ;
4.5.5 file_declaration
file name : type is [ mode ] logical_name ;
4.5.6 signal_declaration
signal names : type [ constraint ] [ := expression ] ;
4.5.7 port_declaration
port ( names : direction type [ := expression ] [ ; more_signals ] );
4.5.8 subprogram_declaration
{ procedure name [ (parameters) ] | function name [ (parameters) ]
return type; }
4.5.9 sub_program_body
is
declarations
begin
sequential_declarations
end [name] ;
4.5.10 subtype_declaration
subtype name is [ resolution_function] type [constraint] ;
26
4.5.11 type_declaration
type name is definition;
4.5.12 variable_declaration
variable names : type [ constraint ] [ := expression ] ;
4.6 Library Units
4.6.1 architecture_body
architecture name of
entity_name is
[types]
[constants]
[signals]
[subprograms]
[other declarations]
begin
concurrent_statements
end [name];
4.6.2 configuration_declaration
configuration name of
entity_name is
declarative_part
block_configuration
end [name];
4.6.3 entity_declaration
entity name is
[generics] [ports]
[declarations]
[begin statements] --typically, an entity does not have
statements. If it does, the statemnts cannot operate on signals
end name;
27
4.6.4 package_body
package body name is
[subprogram]
[type]
[constant
[signal]
[declarations]
end [name];
4.6.5 package_declaration
package name is
[subprogram]
[type]
[constant]
[signal]
[file]
[alias]
[USE clause]
[declarations]
end [name];
28
5 History
� 1.04: Hinweis zu Zusatzaufgabe, Hinweis auf defekte Buttons, Korrektur
Formatierung
� 1.03: Änderung Praktikumsbetreuer, Korrektur div. Schreibfehler
� 1.02: Anpassungen von ISE11 auf ISE13.4.
Hinzufügen der Beschreibung des Simulators ISim.
� 1.01: Nicht weiter dokumentiert.
� 1.00: Erste erstellte Version.