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 !
entity test_mem_tb is generic ( log_file : string := "../test/test_mem/test_mem.log" --! Log File );
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 ?
jau ! mit vsim -glog_file=""D:/test_folder/test.txt"" hatt's geklappt. (man beachte die Schreibweise...tricky..) Vielen Dank !
hi, könntest du ein kleines Beispiel + die Lösung anbieten, damit andere Leute auch etwas von deiner Erkenntnis haben ? Gruß, Andi
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....
Danke für das Beispiel ! Gruß, Andi
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.