Forum: FPGA, VHDL & Co. PC Datum+Uhrzeit aus VHDL Testbench in Datei ausgeben


von Michi (Gast)


Lesenswert?

Ich verwende für die Simulation eine VHDL-Testbench, die die Stimuli 
über eine Datei einliest, die internen Signale der ENTITY damit 
beaufschlagt und gewisse Ergebnisse in eine Ausgabedatei schreibt. 
Soweit so gut.

Nun würde ich gerne noch direkt aus der VHDL-Testbench heraus das 
aktuelle Datum + Uhrzeit des PCs mit in die Ausgabedatei schreiben. Mir 
ist klar, dass hierfür auch der Zeitstempel der Datei verwendet werden 
könnte, sobald jedoch ein Ausdruck auf Papier vorliegt wird die 
Zuordnung von welchem Simulationslauf dies stammt schwer - daher sollte 
das Datum + Uhrzeit als Text in der Ausgabedatei stehen. Bisher habe ich 
in diese Richtung leider noch nichts gefunden, wie dies direkt aus der 
VHDL-Testbench heraus realisiert werden könnte.

Hat von euch jemand einen Tipp oder weiß wie das geht?

von Alexander F. (alexf91)


Lesenswert?

Ich hab jetzt nur kurz danach gesucht, aber anscheinend ist das direkt 
aus VHDL nicht möglich.
Du kannst aber die aktuelle Zeit als Generic an die Testbench übergeben, 
z.B. aus einem TCL Script.

http://objectmix.com/vhdl/190425-syetem-time-vhdl.html
http://www.alteraforum.com/forum/showthread.php?t=35076

Edit: Falls du Modelsim verwendest, dann bietet modelsim_lib.util 
Funktionen dafür an.
1
library modelsim_lib;
2
use modelsim_lib.util.all;
3
4
entity date_test is
5
end entity;
6
7
architecture beh of date_test is
8
  
9
  signal date : string(1 to 24);
10
  
11
begin
12
  
13
process
14
  begin
15
    date <= get_asctime(mti_epoch);
16
    wait;
17
end process;
18
  
19
end architecture;

: Bearbeitet durch User
von Duke Scarring (Gast)


Lesenswert?

Ich hab da etwas passendes im Makefile stehen:
1
DATE = $(shell date +"%b %e %Y  %X")
2
LENGTH = $(shell expr length "$(DATE)")
3
4
all: date.vhd
5
6
.PHONY: date.vhd
7
date.vhd:
8
        @rm -f $@
9
        @echo "package date is" >> $@
10
        @echo "constant date : string( 1 to $(LENGTH)) := \"$(DATE)\";" >> $@
11
        @echo "end package date;" >> $@

Duke

von Michi (Gast)


Lesenswert?

Herzlichen Dank für die Rückmeldung, ich habe es nun mit einem 
TCL-Skript realisiert und es funktioniert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.