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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Michi (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [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 Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.