mikrocontroller.net

Forum: FPGA, VHDL & Co. Zugriff auf Testbench-Pfadangaben (typ file) über Modelsim do-Skript


Autor: grottenolm84 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Folgendes Problem:

Ich habe mehrere VHDL-Testbenches für die ich jeweils ein do-File zum 
automatischen kompilieren und simulieren erstellt habe.
Einiger dieser Testbenches benutzen als Input-Stimulus Textdateien, die 
ich über die textio-Bibliothek mit absoluten Pfadangaben innerhalb des 
Testbench-Codes einlese. Das Simulationsergebnis wird ebenfalls in eine 
Textdatei geschrieben.

Ich würde nun gerne "von Außen" ,also über die do-Skripte, die 
Pfadangaben dieser Ein- und Ausgabedateien festlegen.
Mein Problem ist, dass diese etwa vom force-Befehl nicht erkannt werden, 
da sie als String-Constanten innerhalb der Testbench deklariert sind. 
Als signal vom Typ String kann ich diese auch nicht deklarieren, da dann 
eine feste Arraybreite definiert werden müsste.

Ich will ungern den ganzen Code meiner Testbenches umschreiben -halt nur 
von Außen die Verzeichnisse angeben/ändern können....

Danke schonmal im Voraus !

Autor: 123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
entity test_mem_tb is

  generic (

    log_file    : string  := "../test/test_mem/test_mem.log" --! Log 
File
  );

Autor: grottenolm84 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok -mit nem generic hatte ich's letzt auch schonmal versucht.

Wie greif ich denn in meinem Testskript darauf zu ?
Bei force log_file "d:/test/test...." bekomm ich immer ne "Cannot force 
'log_file'"-Meldung. -was ist hier der richtige Befehl ?

Autor: 123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vsim -g ....

Autor: grottenolm84 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jau !

mit vsim -glog_file=""D:/test_folder/test.txt"" hatt's geklappt.

(man beachte die Schreibweise...tricky..)

Vielen Dank !

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

könntest du ein kleines Beispiel + die Lösung anbieten, damit andere
Leute auch etwas von deiner Erkenntnis haben ?

Gruß,
Andi

Autor: grottenolm84 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
klar, also:

Es soll das VHDL-Design "test.vhd" per modelsim-skript getestet werden. 
Dafür gibt es die testbench "test_tb.vhd". Diese greift auf die 
Textdatei "input.txt" die im Verzeichnis "C:\Test" liegt. Die 
Ausgabedatei soll ins Verzeichnis "C:\Test\Result".

Zur Erstellung eines automatischen Testskripts benutze ich die do-Datei
"test.do" mit folgendem Inhalt:

vcom -work work C:/Test/test.vhd
vcom -work work C:/Test/test_tb.vhd
.main clear
set input_file "C:/Test/input.txt"
set output_file "C:/Test/Result/output.txt"
vsim -lib work -t 1ps test_tb -wlf test.wlf -gdata_in="$input_file" 
-gdata_out="&output_file"
view signals
view wave
view structure
add wave /test/*
run 55ms
write transcript test_testlog.txt"

In der Testbench selber muss in der Entity data_in und data_out als 
generic deklariert sein:

ENTITY test_tb IS
    generic (
    data_in: string  := "Platzhalter"
    data_out: string  := "Platzhalter2"
    );
END test_tb;

Bei Ausführung von test.do kompliert Modelsim erst die beiden Dateien
und übergibt an die Generics die beiden Dateipfade für die Ein- und
Ausgabedatei. Während der Simulation wird ein wlf-Logfile sowie ein
Protokoll des Transcript-Fensters mitgespeichert.

Wie man Dateien in einer Testbench mit der textio-Bib einliest, habe ich 
hier jetzt nicht weiter erläutert....

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für das Beispiel !

Gruß, Andi

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.