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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

INTERSTAATLICHE HOCHSCHULE<br />

FÜR TECHNIK BUCHS NTB<br />

<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>VHDL</strong><br />

8.5 Die WHILE-Schleife<br />

[loop_label:] WHILE condition<br />

LOOP<br />

{sequential_statements}<br />

END LOOP [loop_label];<br />

Hier steht nach dem Schlüsselwort WHILE e<strong>in</strong>e Bed<strong>in</strong>gung,<br />

<strong>die</strong> vor Beg<strong>in</strong>n jedes e<strong>in</strong>zelnen Schleifendurchlaufs<br />

abgefragt wird. Der Durchlauf erfolgt abhängig<br />

vom Ergebnis <strong>die</strong>ser Abfrage. Anders als bei<br />

der FOR-Schleife muss man hier <strong>die</strong> Laufvariable<br />

ausserhalb der Schleife deklarieren. Auch <strong>die</strong> Änderung<br />

der Laufvariablen sowie der Abbruch müssen<br />

explizit gesteuert werden. Hier kann man also Endlosschleifen<br />

aufbauen, <strong>die</strong> nach dem Aufruf nie mehr<br />

verlassen werden.<br />

ARCHITECTURE sim OF my_cos<strong>in</strong>us IS<br />

BEGIN<br />

PROCESS (angle)<br />

VARIABLE sum, term : REAL;<br />

VARIABLE n<br />

: INTEGER;<br />

BEGIN<br />

sum := 1.0;<br />

term := 1.0;<br />

WHILE ABS term > ABS(sum/1.0E6)<br />

LOOP<br />

n := n + 2;<br />

term := (-term) * angle**2 /<br />

real(((n-1)*n));<br />

sum := sum + term;<br />

END LOOP;<br />

result

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!