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

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.