time'image(now) in ns, us oder ms?

Gast #4928227
Lesenswert?

Hallo zusammen,

in meiner Simulation möchte ich gerne VHDL Timestamps z.B. für Logfiles 
verwenden. Hierzu nutze ich time'image(now). Leider erhalte ich dabei 
immer den Timestamp in ps, was die Zahlen leider schlecht lesbar macht. 
In der Regel bei meinen Simulationen mindestens eine Granularität von 1 
ns.

Gibt es eine Möglichkeit, eine time to string Conversion durchzuführen 
und dabei die präferierte unit selbst zu definieren?

Die Verwendung von write funktioniert in meinem Fall nicht, da ich einer 
Log Funktion nur einen String übergeben will.

Viele Grüße
  Parcher
Gast #4928322
Lesenswert?

Du kannst einfach durch die gewünschte Zeit(-auflösung) dividieren:
1
entity time_sim is
2
end entity time_sim;
3

4
architecture testbench of time_sim is
5
begin
6

7
    main: process
8
    begin
9
        report( time'image( now));
10
        report( integer'image( now / 1 ns) & " ns");
11
        wait for 1 ms;
12
        report( time'image( now));
13
        report( integer'image( now / 1 ns) & " ns");
14
        wait;
15
    end process;
16

17
end architecture testbench;

Duke
#4928806
Lesenswert?

Hi

Parcher schrieb:
> Leider erhalte ich dabei
> immer den Timestamp in ps, was die Zahlen leider schlecht lesbar macht.

Dann 'streich nen paar Nullen weg' (aka, versetze einfach das Komma)
Wenn Piko-Sekunden gegeben sind, ist es doch ein Leichtes, daraus 
Nano-Sekunden zu machen (:1000), daraus µ (wieder :1000), daraus m 
(wieder :1000), daraus ganze Sekunden (erneut :1000).

Dabei musst Du 'nur' das Komma in Deinem String suchen und um jeweils 3 
Stellen nach links setzen.
Fehlende Stellen mit 0 auffüllen, obsolete Nullstellen links entfernen.

Das riecht doch förmlich nach 'Regex':
https://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck

MfG
#4930061
Lesenswert?

Hi

S. R. schrieb:
> in VHDL benutzt? Würde mich nämlich auch interessieren.

Sorry, da hatte ich versäumt, mir den entsprechenden Hintergrund (das 
VHDL ist ja sogar verlinkt) anzusehen :/
Mir kam 'nur' der Lösungsansatz in den Sinn, als ich das vermeintliche 
Problem sah und zumindest im Terminal (Linux) ist (sind?) Regex 
unglaublich hilfreich, mna muß das System dahinter 'nur' verstanden 
haben (ist ganz schön kompliziert) ... und man sollte nicht lange 'raus' 
sein.
Meine Kreationen dazu sind schon in die Jahre gekommen, müsste schauen, 
ob das Zeug überhaupt auf der aktuellen Platte drauf ist (ging um 
Dateinamen, Deren Aufbau immer identisch zusammen gesetzt war - aber 
halt ohne explizite Trennzeichen, z.B. das Datum und die Uhrzeit waren 
'Schlüsselworte', von dort konnte man vor und zurück - bzw den die 
Strings davor/dahinter entsprechend verarbeiten ... wow, schreibt sich 
sogar kompliziert, kein Wunder, daß ich da über Wochen Spaß mit hatte)

MfG

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