Forum: FPGA, VHDL & Co. Convert real to integer


von Amania (Gast)


Lesenswert?

hallo zusamen

weiß jemand , wie kann ich eine reale Zahl in eine integer Zahl in VHDL 
machen ?
ich habe so gemacht .
library IEEE;
use IEEE.NUMERIC_STD.ALL;
......
signal s1:real;
signal s2:integer;
begin
s2 <= integer(s1);

es lief aber leider nicht , der Fehler war "Unexpected value. Unable to 
derive it to an integer."

 wie kann ich beheben ?

vielen Dank.

von Mathi (Gast)


Lesenswert?

Ich denke eine vordefinierte Funktion wirst Du nicht finden.
Außerdem wird ein REAL nach IEEE-854 mit mindestens 64 Bit umgesetzt. 
Und der Standard sagt aus das die Zahlen normalisiert sind. Sie liegen 
immer zwischen 1 und 2.

Was erwartest Du von so einer Funktion? Soll sie z.b. bei 1e3 Dir den 
Integer 1000 leifern?

von Amania (Gast)


Lesenswert?

ja genau , ich suche eine vordefinierte Funktion , die maximale real 
Zahl bei mir ist 65535.342 und ich wollte eine integer Zahl 65535 haben 
,
kennt jemand , wie kann ich machen ?
danke

von Mathi (Gast)


Lesenswert?

Ich habe mal gegoogled und folgendes gefunden:
http://vhdl.org/vhdlsynth/fp/index.html
http://www.eda.org/fphdl/

Ansonsten musste Dir sowas selber bauen. In den Standard-packages von 
VHDL-93 ist nichts dafür vorhanden.
Vielleicht kannst Du ja auch ohne real auskommen?!

von Johannes T. (johnsn)


Lesenswert?

Ich hab mal irgendwas läuten gehört, dass für den neuen VHDL-Standard 
ein Floating-Point Typ vorgesehen ist. Kann sein, dass die Links eh 
schon teilweise was damit zu tun haben.

Ansonsten wirst dir wohl selbst was schreiben müssen, aber es geht!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.