Zugriff auf Testbench-Pfadangaben (typ file) über Modelsim do-Skript

Gast #1186278
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 !
Gast #1186511
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 ?
Gast #1187432
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....

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren