Forum: FPGA, VHDL & Co. VHDL Type conversion Time -> Real


von Flo (Gast)


Lesenswert?

Hey,

ich will ein Datum vom Typ time in real konvertieren. Folgende Anweisung 
hab ich dafür testweise geschrieben:
1
constant ClkPeriod : time := 10 ns;
2
...
3
4
process(...)
5
variable check : real;
6
begin
7
8
check := real(ClkPeriod/10 us);
9
end process;

Mein Problem ist, dass check immer den Wert 0 hat. Irgendwie 
funktioniert das nicht, aber ich seh den Fehler nicht.

check soll einfach den reinen Zahlenwert der ClkPeriod halten, und zwar 
konvertiert in Microsekunden.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ist ja klar, was (10 ns / 10 us) in Integer gibt: 0

Du solltest das etwas weiter greifen und erst mal die Zeit in eine Zahl 
umwandeln, und danach erst teilen, nicht ohne zuvor das Ganze nach real 
gecastet zu haben:
1
   signal timeinus : real := 0.0;
2
   :
3
   timeinus <= real(ClkPeriod/1 ps) / real(1 us/1 ps);

BTW:
> und zwar konvertiert in Microsekunden.
Dann ist es ungeschickt, durch 10 us zu teilen...  :-o

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.