Hallo zusammen, für den Active HDL bin ich auf der Suche nach einer Möglichkeit, wie ich Generics über Skripte anpassen kann. Zum Hintergrund: Ich habe ein Design und eine Testbench. Die Testbench wird von Input Dateien gefüttert und generiert Output Dateien. Nun möchte ich verschiedene Testcases mit unterschiedlichen Input und Output Dateien laufen lassen und dabei nicht immer den VHDL Code anpassen müssen oder die Testfiles hin und her kopieren, sondern einfach mit verschiedenen Skripten arbeiten (do testcaseX.do). Für Modelsim gibt es die Möglichkeit, die Generics beim Compilieren anzupassen. Dies funktioniert, indem man vsim -G genericname=Wert Datei.vhd aufruft, der Active HDL kennt diese Option jedoch nicht. Habt ihr eine gute Idee, ob es einen Alternativbefehl für den Active HDL gibt oder ob ich mir anderweitig gut behelfen kann? Vielen Dank und viele Grüße, Martin
Geht im Prinzip genauso unter ActiveHDL (wie bei Modelsim). Schau einfach mit 'help asim' nach den Details. Es gibt auch ein '-g' Schalter mit dem Du einem Generic einen Wert zuweisen kannst. Eine Möglichkeit wäre das ganze asim Kommando in ein *.do file zu schreiben. Die *.do file (jeweils geändert für ein Test-Case) kann dann von der Console gestartet werden.
Du könntest vielleicht mit Configurations arbeiten. Dabei werden für eine Entity jeweils unterschiedliche Architectures eingesetzt. Dazu muss aber die Interface Beschreibung konstant bleiben, es geht also nicht, wenn die Generics dazu verwendet werden, die Busbreiten zu ändern.
Vielen Dank für eure Antworten. Der -g Schalter funktioniert doch mit Active HDL, evtl hatte ich da beim Ausprobieren einen Syntax Fehler. Zur Info für andere, die vielleicht auf der Suche nach einer ähnlichen Lösung sind: der Schalter -g ändert die Defaultbelegung der Generics, der Schalter -G ändert auch fest zugewiesene Werte. Vielen Dank noch mal!
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.