Hardware Reference
In-Depth Information
package tFloat32_pack is
type tFloat32 ...;
-- Konvertierung in einen Ausgabetext
function str(x: tFloat32; fmt:character:= '2' ) return string;
-- Initialisierung mit einer Zahlenkonstante
function to_tFloat32(x:real) return tFloat32;
-- Test ob ungültig
function is_x(x: tFloat32) return boolean;
-- arithmetische Operatorfunktionen
function "+"(a, b: tFloat32) return tFloat32;
function "-"(a, b: tFloat32) return tFloat32;
...
end package ;
Mit einem solchen Package sieht eine Funktionsbeschreibung mit Gleitkom-
mazahlen nicht viel anders aus als eine Beschreibung mit ganzen Zahlen:
variable a, b, c, d: tFloat32;
...
a := to_tFloat32( 18.25 );
b := to_tFloat32( -2.151E-2 );
c := to_tFloat32( 1.170E-39 )
d := (a+b)*c;
Zur Demonstration, um wie viel übersichtlicher eine strukturierte Beschrei-
bung mit Packages ist, sollen den Variablen a bis c ihre Werte auch einmal
ohne die Konvertierungsfunktion »to_tFloat32(...)« zugewiesen werden. Da-
zu sind als erstes die Gleitkommakonstanten manuell in Bitvektorkonstanten
umzurechnen. Das ist für die drei speziellen Zahlenwerte bereits in Abschnitt
2.4.4 in Abb. 2.68 erfolgt. Das Ergebnis steht in der nachfolgenden Tabelle
rechts. Links daneben sind dieselben Zuordnungen in VHDL in unterschiedli-
cher Weise beschrieben:
variable a, b, c: tFloat32;
...
a := (s=> '0' , m=>( 20 | 17 => '1' ,
others => '0' ), c=> x"83" );
b := (s=> '1' , m=> x"CB3A1"
& "110" , c=> x"79" );
c := (s=> '0' , m=> "000" &
x"CBD19" , c=>( others => '0' ));
Bitnummer
31
24 16
23 15
87 0
s
c m
0
1 1
00000 0
1
0010010000000000000000
a
8 3
2017
1
0111100111001011001110100001110
b
7 9 C B 3 A 1
0
0000000000011001011110100011001
c
C B D 1 9
Bei der Mantisse der Variablen a sind die Bitstellen, denen »1« zugeordnet
wird, zusammengefasst und allen anderen Bitstellen ist der Wert »0« zuge-
ordnet. Den 8-Bit-Charakteristika von a und b sind zwei Hexadezimalziffern
zugeordnet. Die Werte der 23-Bit-Mantissen für die Variablen b und c sind
aus fünf Hexadezimalziffern und drei Einzelbits zusammengesetzt. Alle drei
Zuordnungen haben eines gemeinsam. Die beabsichtigte Zielfunktion - die
Search WWH ::




Custom Search