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
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