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?
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.