30.10.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!