VHDL Kompakt - CES
VHDL Kompakt - CES
VHDL Kompakt - CES
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Kapitel 6<br />
Signale<br />
Während die <strong>VHDL</strong>-Verhaltensbeschreibungen – Prozesse mit Variablen und sequenziellen<br />
Anweisungen – den algorithmischen Abläufen in Programmiersprachen entsprechen, besitzen<br />
Signale und konkurrente Blöcke Eigenschaften, die für Strukturbeschreibungen und<br />
deren Simulation typisch sind.<br />
Dabei sind Signale die einzige Möglichkeit, quasi als Leitungen, die Elemente struktureller<br />
Beschreibungen miteinander zu verbinden sowie die Kommunikation zwischen Prozessen<br />
zu ermöglichen. Bei der Simulation wird eine zeitliche Ordnung von Ereignissen – im<br />
Sinne von Ursache und Wirkung – über Signale geregelt.<br />
6.1 Deklaration<br />
Signale können an folgenden Stellen im <strong>VHDL</strong>-Code deklariert werden:<br />
1. innerhalb eines package für globale Signale.<br />
2. als port ... der entity-Deklaration für entity-globale Signale.<br />
3. innerhalb einer architecture als architecture-globale Signale. Im Allgemeinen werden<br />
alle Signale, die keine Ports sind, so deklariert.<br />
Syntax<br />
signal 〈identifier list〉 : 〈typeId〉 [ 〈range〉 ] [:= 〈expression〉 ];<br />
〈port declaration〉 ::= Ein- und Ausgänge<br />
port ( 〈port list〉 : [ 〈mode〉 ] 〈typeId〉 [:= 〈expression〉 ]{ ;<br />
〈port list〉 : [ 〈mode〉 ] 〈typeId〉 [:= 〈expression〉 ]} );<br />
〈mode〉 ::= in|out|inout|buffer<br />
” Richtung“<br />
Für den Modus der Ein-/Ausgänge einer Portdeklaration gilt:<br />
in Eingang, nur auf rechter Seite von Variablen-/Signalzuweisungen, also in Ausdrücken,<br />
zulässig.<br />
out Ausgang, nur auf linker Seite von Signalzuweisungen zulässig.<br />
inout bidirektionale Leitung, kann im Code lesend und schreibend benutzt werden.<br />
buffer prinzipiell ein Ausgang, darf intern aber auch gelesen werden. Insbesondere gibt<br />
es nur einen Treiber für den Port: eine Prozess, eine konkurrente Anweisung oder eine<br />
treibende Instanz.<br />
41