Eine Einführung in die Schaltungsent- wicklung mit VHDL
Eine Einführung in die Schaltungsent- wicklung mit VHDL
Eine Einführung in die Schaltungsent- wicklung mit VHDL
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
INTERSTAATLICHE HOCHSCHULE<br />
FÜR TECHNIK BUCHS NTB<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>VHDL</strong><br />
7.4 Variablen<br />
In e<strong>in</strong>em sequentiellen Code müssen Zuweisungen<br />
e<strong>in</strong>er Zeile sehr oft <strong>in</strong> der nächsten Zeile schon zur<br />
Verfügung stehen, da es ke<strong>in</strong>e Iterationen gibt. Der<br />
E<strong>in</strong>satz von Signalen ist hier also nicht immer s<strong>in</strong>nvoll.<br />
Daher bietet <strong>VHDL</strong> <strong>mit</strong> den Variablen e<strong>in</strong>e weitere<br />
Objektklasse, der sofort ohne Zeitfaktor e<strong>in</strong> neuer<br />
Wert zugewiesen werden kann. Durch <strong>die</strong>se Eigenschaft<br />
s<strong>in</strong>d Variablen speziell für <strong>die</strong> Verwendung<br />
<strong>in</strong> sequentiellem Code geeignet.<br />
Variablen werden bei jedem Prozess-Aufruf neu „geboren“,<br />
und gelten nur bis zum Ende der Prozessbearbeitung.<br />
Sie existieren nicht ausserhalb e<strong>in</strong>es Prozesses<br />
und können deshalb z.B. auch nicht <strong>in</strong> der<br />
Declarative Region e<strong>in</strong>er Architektur def<strong>in</strong>iert werden.<br />
Variablen sollten nur für Zwischenresultate<br />
verwendet werden. Den<br />
Wert e<strong>in</strong>er Variablen aus e<strong>in</strong>em<br />
Prozess-Durchgang im nächsten<br />
Durchgang wieder weiter zu verwenden<br />
(z.B. für e<strong>in</strong>en Zähler) ist e<strong>in</strong>e sehr schlechte<br />
Praxis, weil man dabei riskiert dass e<strong>in</strong> Latch implementiert<br />
wird. Das führt dann zu dramatisch unterschiedlichen<br />
Resultaten zwischen Simulation und<br />
dem Tim<strong>in</strong>g <strong>in</strong> Hardware! Die Folge ist e<strong>in</strong>e schlechte<br />
Performanz der Schaltung.<br />
one_bit_add : PROCESS (a,b,c_<strong>in</strong>)<br />
VARIABLE sig : std_logic;<br />
BEGIN<br />
sig := a XOR b;<br />
sum