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 ;-).
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
Re: Simulation: Variable "now" in Datei ausgeben
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.