Datentyp real in std_logic_vector nach IEEE754

Gast #1869255
Lesenswert?

Hallo Leute,

ich suche nach einem Package, das mir zu dem Datentyp real aus VHDL 
einen 32-Bit std_logic_vector nach dem IEEE754-Standard erzeugt. Das 
Ganze muss natürlich nicht synthetisierbar sein.

Es geht um Folgendes: ich habe einen Floating-Point Core, der 
Floating-Point Berechnungen nach dem IEEE754-Standard durchführen soll. 
In einer Testbench möchte ich jetzt mehrere Testwerte durch den Core 
jagen, um die Ergebnisse zu überprüfen. Die ganze Testbench wäre sehr 
viel übersichtlicher, wenn ich das in der folgenden Form tun könnte, 
anstelle für den Floating-Point-Wert 1.0 den Vektor 
"00111111100000000000000000000000" hinzuschreiben...

1
adderinput1 <= CONVERSION ( 1.0 );
2
adderinput2 <= CONVERSION ( 1.0 );
3
wait for adderdelay;
4
assert adderoutput = CONVERSION ( 2.0 ) report "ERROR IN ADDER!";

Würde mich sehr über eine hilfreiche Antwort freuen! Bin mir total 
sicher, dass es sowas geben muss und wunder mich sehr, dass ich 
scheitere es irgendwo etwas zu finden :(
#1872907
Lesenswert?

Das sieht wirklich ziemlich gut aus. Auch wenn ich etwas verwundert bin, 
dass es kein Standard-Package gibt, das gleich bei der Xilinx ISE dabei 
ist...

Für deinen Vorschlag fehlt mir leider die benötigte library 
ieee_proposed, welche man laut google ebenfalls auf der von dir 
verlinkten Seite findet. Nur bin ich wohl zu blind sie zu sehen...
#1872962
Lesenswert?

Mh, danke... Aber ich befürchte ich sehe den Wald vor Bäumen nicht...

Wenn ich die float_pkg_c.vhdl (ich denke du meinst das mit 
"VHDL-Quelltext"?) in mein Projekt einbinde, dann fehlt mir beim 
Ausführen die Library, welche in der float_pkg_c.vhdl referenziert wird:

1
library ieee_proposed;
2
use ieee_proposed.fixed_float_types.all;
3
use ieee_proposed.fixed_pkg.all;

Den Quelltext der Library kann ich auf der angegebenen Seite nicht 
finden (und auch sonst nirgends im Internet). Allerdings bin ich auch 
etwas verunsichert, was man bei VHDL unter eine "Library" versteht. Bin 
jetzt davon ausgegangen, dass das ein Verzeichnis ist, in dem sich eine 
oder mehrere VHDL-Dateien/Packages befinden (wobei der Name dises 
Verzeichnisses oder der Dateien irgend etwas mit dem Library-Namen zu 
tun hat).
Gast #1877512
Lesenswert?

Till Fischer schrieb:
> Allerdings bin ich auch
> etwas verunsichert, was man bei VHDL unter eine "Library" versteht. Bin
> jetzt davon ausgegangen, dass das ein Verzeichnis ist, in dem sich eine
> oder mehrere VHDL-Dateien/Packages befinden (wobei der Name dises
> Verzeichnisses oder der Dateien irgend etwas mit dem Library-Namen zu
> tun hat).

Es empfielt sich pro Library auf ein eigenes Verzeichnis zu verwenden. 
Schon alleine wegen der besseren Übersicht.

Allerdings mußt Du Modelsim und ISE explizit mitteilen zu welcher 
Bibliothek Deine Datei gehört.

Hier mal ein typischer Modelsim/vcom-Aufruf:
1
vcom -2008 -work s3estarter fpga_components.vhd

Duke
#1896502
Lesenswert?

Auch wenn es jetzt schon eine Weile her ist (ich bin erst heute wieder 
auf mein Problem zurückgekommen), noch ein kurzer Kommentar:

Inzwischen ist mir klar geworden, wie eine Library funktioniert, danke 
;)

Allerdings wäre das gar nicht nötig gewesen: beim aktuellen ModelSim 
wird eine bereits fix- und fertig kompilierte Library namens 
"floatfixlib" mitgeliefert. Tatsächlich handelt es sich dabei um die von 
Lothar Miller vorgeschlagene Lösung (mit VHDL2008 übrigens Teil der IEEE 
Library).

Da ich die gesuchte Konvertierung ja nur zur Simulation benötige, ist 
das exakt was ich gesucht habe.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren