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