64 schrieb:
> Da der Exponent sehr gross wird (ca. 40-60), motzt XST, die 2 ** (width
> - width_int) sei ausserhalb des Integer-Bereichs. Das stimmt ja auch.
> Doch wie kann ich diese sehr grosse Konstante trotzdem initialisieren?
In VHDL ist man an dieser Stelle wirklich gekniffen, Integers geben eben
nur 32 Bit her.
Wenn's nicht unbedingt bitgenau sein muss, kann man die Grenze mit
reals noch etwas hinausschieben, aber für die erwähnten 150 Bit
ist das wohl auch nicht mehr sinnvoll.
In meinem sinus/cosinus-Modul auf www.opencores.org sind Konversionen
für
(signed, unsigned) <==> real im Testbett.
http://opencores.org/project,sincos
dann svn browse, trunk, vhdl, tb, un_signed_sprt
Damit würde ich nicht gerade Vektoren-Grenzen ausrechnen, aber für
FIR-Koeffizienten, DDS-outputs, ADC-Werte etc ist das ganz brauchbar.
Gruß, Gerhard
experimenteller direkter Link:
<http://opencores.org/websvn,filedetails?repname=sincos&path=%2Fsincos%2Ftrunk%2Fvhdl%2Ftb%2Fun_signed_sprt%2Fun_signed_sprt.vhd>