mikrocontroller.net

Forum: FPGA, VHDL & Co. Datentyp real in std_logic_vector nach IEEE754


Autor: Till (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

adderinput1 <= CONVERSION ( 1.0 );
adderinput2 <= CONVERSION ( 1.0 );
wait for adderdelay;
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 :(

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Till schrieb:
> Bin mir total sicher, dass es sowas geben muss...
Such mal auf
http://www.eda.org/fphdl/
das float_pkg_c.vhdl
function to_slv (arg : UNRESOLVED_float) return STD_LOGIC_VECTOR;

Autor: Till F. (tillf)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm den VHDL-Quelltext und kompiliere dir die Lib selber. Oder binde 
den VHDL-Quelltext in dein Projekt ein...

Autor: Till F. (tillf)
Datum:

Bewertung
0 lesenswert
nicht 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:

library ieee_proposed;
use ieee_proposed.fixed_float_types.all;
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).

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
vcom -2008 -work s3estarter fpga_components.vhd 

Duke

Autor: Till F. (tillf)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.