VHDL-Forum

 
Sie sind nicht eingeloggt.
LoginLogin Kostenlos anmeldenKostenlos anmelden
BeiträgeBeiträge MembersMitglieder SucheSuche HilfeHilfe
VotesUmfragen FilesDateien CalendarKalender BookmarksBookmarks
Simulation: Variable "now" in Datei ausgeben

Anfang   zurück   weiter   Ende
Autor Beitrag
Julian Grahsl
Gast
New PostErstellt: 17.05.06, 11:11  Betreff: Simulation: Variable "now" in Datei ausgeben  drucken  Thema drucken  weiterempfehlen Antwort mit Zitat  

Hallo !

Ich baue mir gerade eine automatisierte testbench, und versuche die Resultate in eine Datei zu schreiben. Ich lege ein paar Inputs an eine kombinatorische Schaltung an, und warte auf die Output Flanke. Nun möchte ich die Durchlaufzeit protokollieren, weil händisch das mit dem Cursor in den Waveforms ausmessen ist etwas langweilig (vor allem für zigtausend Input Combinationen ;-).

sieht ca. so aus:

variable time_start : delay_length;
variable time_end : delay_length;

time_start := now;
input <= "111111111111";
wait on output;
time_end := now;

Nun ist die Differenz aus time_end und time_start die Durchlaufzeit, und diese möchte ich in eine Datei schreiben. Ich verwende std.textio und txt_util und kann problemlos fixe String in eine Datei schreiben, nur habe ich Schwierigkeiten, den Type delay_length in einen Integer oder ähnlich verwendbares zu konvertieren.

lG Julian
nach oben
Alex
Neuling


Beiträge: 8

New PostErstellt: 19.05.06, 01:15  Betreff: Re: Simulation: Variable "now" in Datei ausgeben  drucken  weiterempfehlen Antwort mit Zitat  

Hallo Julian,

Du kannst Werte vom Typ "Time" direkt in ein File schreiben,
musst Du nicht nach String oder sonstwas konvertieren.
Im Package textio ist eine Funktion WRITE, die für die
unterschiedlichsten Datentypen definiert ist: Bit,
Boolean, Bit_vector, Integer, String und eben auch Time.
Delay_lenght ist als subtype von Time definiert, d.h.
geht ohne Probleme.

Codebeispiel:
> file ReportFile: text open write_mode is "Report.txt";
> variable Message : line;
>
> variable Time1, Time2: delay_length;
>
> ...
>
> write(Message, NOW, right, 10); -- NOW geht auch direkt in WRITE.
> write(Message, Time2 - Time1, right, 10);
> write(Message, Data1, right, 10);
> write(Message, Data2, right, 10);
> ... usw
> writeline(ReportFile, Message);

Für das rausschieben von "Time" hab ich übrigens txt_util
nicht benötigt.

Falls das bei Dir nicht funktioniert, schicke am besten
Deinen Beispielcode, dann kann man nochmals draufschauen.

Gruss,

Alex

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
Sortierung ndern:  
Anfang   zurück   weiter   Ende
Seite 1 von 1
Gehe zu:   
Search

powered by carookee.com - eigenes profi-forum kostenlos

Design © trevorj