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

4.5 Arithmetik <strong>mit</strong> Vektoren<br />

<strong>VHDL</strong> selbst unterstützt ke<strong>in</strong>e mathematischen Operationen.<br />

Dafür wurden spezielle Packages geschaffen<br />

(siehe auch Kapitel 11).<br />

Für synthetisierbare Funktionen <strong>die</strong> für <strong>die</strong> Ausführung<br />

<strong>in</strong> FPGAs und/oder ASICs bestimmt s<strong>in</strong>d, verwendet<br />

man am besten das Paket<br />

IEEE.numeric_std, welches <strong>die</strong> Typen<br />

unsigned und signed als Vektoren vom Typ<br />

std_logic def<strong>in</strong>iert.<br />

Beim Schreiben von Testbench-Funktionen welche<br />

nicht synthetisiert werden darf man ruhig auch auf<br />

komplexere mathematische Operationen zurückgreifen,<br />

wie S<strong>in</strong>, Cos oder Wurzeln. Dafür verwendet man<br />

<strong>mit</strong> Vorteil das Packet IEEE.math_real beziehungsweise<br />

IEEE.math_complex.<br />

Es gibt noch viele alte Beispiele und<br />

Implementation, welche <strong>die</strong> IEEE<br />

Pakete std_logic_arith sowie<br />

std_logic_signed und<br />

std_logic_unsigned verwenden.<br />

Die dar<strong>in</strong> def<strong>in</strong>ierten Funktionen<br />

können <strong>mit</strong> anderen Def<strong>in</strong>itionen kolli<strong>die</strong>ren<br />

und sollten deshalb nicht mehr verwendet werden.<br />

Ebenso sollte das Packet numeric_bit nicht verwendet<br />

werden, weil es unsigned und signed als<br />

Vektoren vom Typ BIT def<strong>in</strong>iert, und <strong>die</strong>s für reale<br />

Schaltungen nicht alle auftretenden Zustände abbilden<br />

kann.<br />

LIBRARY IEEE;<br />

USE IEEE.std_logic_1164.ALL;<br />

USE IEEE.numeric_std.ALL;<br />

SIGNAL a: UNSIGNED;<br />

a

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!