Hardware Reference
In-Depth Information
int(...) (4)
tounsigned(...),tosigned(...) (4)
(...) (1)
UNSIGNED
(...) (1)
(...) (2)
TOBITVECTOR
(...) (3)
STDLOGICVECTOR
(...) (1)
TOINTEGER
SIGNED
tUnsigned
tSigned
UNSIGNED
SIGNED
STDLOGICVECTOR
BITVECTOR
INTEGER
tUnsigned(...) (1)
tSigned(...) (1)
(...) (3)
TOUNSIGNED
(...) (3)
(...) 2
TOSTDLOGICVECTOR
(...) (1)
BITVECTOR
TOSIGNED
totUnsigned(...),totSigned(...) (4)
totUnsigned(...),toSigned(...) (4)
(1)
engverwandteTypen,KonvertierungmitdemBezeichnerdesZieltyps
definiertimPackage IEEE.STDLOGIC
IEEE.NUMERICBIT
(2)
1164
(3)
definiertimPackage
definiertindenPackagesTuc.NumericSimundTuc.NumericSynth
(4)
Abb. 3.14. Konvertierungsschema zur Nachbildung von Operationen für die selbst
definierten Bitvektortypen »tUnsigned« und »tSigned« mit Operationen für die
standardisierten Typen std_logic_vector, unsigned, signed und integer
function to_unsigned(x: tUnsigned) return unsigned is
begin
return unsigned(to_bitvector(std_logic_vector(x)));
end function ;
function to_tUnsigned(x:unsigned) return tUnsigned is
begin
return tUnsigned(to_stdlogicvector(bit_vector(x)));
end function ;
Die komplette Operatorfunktion für die Addition von Operanden vom Typ
»tUnsigned« lautet:
function "+" (a, b: tUnsigned) return tUnsigned is
begin
return to_tUnsigned(to_Unsigned(a)+to_ unsigned(b));
end function ;
)WEB-Projekt:Tuc/Numeric_Synth.vhdl
Das ist aber nur die Beschreibung für die Synthese, bei der die Pseudo-Werte
ignoriert werden. Die Simulation benötigt zusätzlich eine Sonderbehandlung
für ungültige Summanden. Da die Gültigkeitsinformation bei der Konvertie-
rung nach
[un]signed verloren geht, muss diese Sonderbehandlung vor der
Konvertierung erfolgen. In der nachfolgenden Operatorfunktion für die Simu-
lation der Addition wird zuerst geprüft, ob die Summanden gültig sind. Nur
wenn das der Fall ist, folgen die Konvertierung und die Ergebnisberechnung.
Im anderen Fall wird der Pseudo-Wert für ungültig zurückgegeben:
 
Search WWH ::




Custom Search