VHDL Type conversion Time -> Real

Gast #1717530
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.
Moderator (Firma: Titel) Persönliche Seite #1718101
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

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