Gustl B. schrieb:
Gustl B. schrieb:
Dann mach einen Record mit einem Eintrag, deinem Integer.
Nein, das ist wohl falsch.
Der Grund wieso das nicht geht ist, weil die Kommandozeile
vsim MyTestbench -gG_CurrentParaSet = C_ParaSet1
C_ParaSet1 nicht kennt. Aber das sollte eigentlich egal sein, du kannst
ja
vsim MyTestbench -gG_CurrentParaSet = 10
schreiben oder einen anderen Integer Wert, das funktioniert.
Ohne gleich die Keule auszupacken und .do files zu generieren (was durchaus Sinn machen kann) kann dieser Fall mit einem Array aus Records gelöst werden:
-Record Typ definieren für die Parameter
-In deinem Package ein Array anlegen von solchen Records
-In der Entity MyTestBench hast du einen Generic vom Typ natural(oder integer).
-In der Architekture von MyTestBench nimmst du diesen Generic um auf das -Parameterset zu zu greifen.
-Im .do File setzt du den Generic auf 0, 1, ... das kannst du sogar mit der TCL Syntax vom .do File noch simpel in eine Schleife packen und alle Parametersets nacheinander Simulieren.
Fpga I. schrieb:
Die Parametersätze liegen bereits in python vor,
Dann sieh dir mal VUnit an. Damit lässt sich dein aktueller Fall lösen und bekommst gleich noch andere nette Dinge mit.
Fpga I. schrieb:
Ich möchte meine sim Skripte möglichst gleichförmig halten und
gleichzeitig möglichst redundante Datenhaltung vermeiden (also die
Parameter nur im python Script ändern und nicht zusätzlich in .vhd oder
.do Dateien).
Eine andere sehr generische Variante ist, dass du per Generic den Pfad/Dateinamen zu deinen Parametern übergibts und dann in deiner Testbench mit File I/O Funktionen diese einliest.
Das ist auch beliebt um z. B. gleich ganze Eingangs-/Ausgangsdaten Sets durch zu gehen.