Forum: FPGA, VHDL & Co. Verilog-Modul aus VHDL aufrufen, Parameterübergabe (´define)


von Marc S. (nightguardian)


Lesenswert?

Hallo allesamt,

ich hoffe mal dass ich ne einfache Frage habe - aber aus den Ergebnissen 
die mir Google ausspuckt...werd ich nicht wirklich schlau.

Ich habe ein Simulationsmodell welches in Verilog geschrieben wurde. 
Bisher habe ich die notwendigen ´define-Parameter via Modelsim .do-File 
übergeben (vlog ... +define+..).

Da ich dieses Simulationsmodell nun für verschiedene Boards einsetzen 
möchte, finde ich es etwas umständlich die Parameter im do-File 
abzulegen, bzw. ich habe dann doppelte Datenhaltung da ich die gleichen 
Parameter in der VHDL-Testbench ebenfalls benötige.

Gibt es eine Methode dem Verilog-Modul die entsprechenden Parameter aus 
der VHDL-Testbench heraus zu übergeben? Bzw. wie übergebe ich überhaupt 
Parameter an ein Verilogmodul aus VHDL heraus?


Danke schon mal.

Gruß

von hans (Gast)


Lesenswert?

Abhängig vom Simulator sollte das über parameter (also das was in 
Verilog mit dem Schlüsselwort parameter gekennzeichnet ist; nicht 
`define) gehen. Denen kann dann aus einem übergeordneten VHDL-Modul über 
die Generic-Schnittstelle ein neuer Wert übergeben werden. Das müsste 
sich dann so verhalten, als würdest du bei einem reinen VHDL-Projekt 
Generics an ein Submodul übergeben.
Mit define wirst du wohl nicht weit kommen.


Hier ein Beispiel:

VHDL Toplevel
1
u_bla : bla
2
   generic_map (
3
      par => x"BABEBABE"
4
   )
5
 ...


Verilog Submodul
1
module bla (
2
   ...);
3
4
   parameter par = 32'hAFFEAFFE;
5
...

von Marc S. (nightguardian)


Lesenswert?

Hi,

danke für die schnelle Antwort. Leider die Antwort die ich befürchtet 
hab...so ein Mist, das ganze Simulationsmodell passt sich über `ifdef 
an.

Tja, aus mit einem `ifdef werd ich vermutlich keinen Parameterwert 
abfragen können, oder? Ich vermute mal dass die `define und ´ifdef (usw) 
quasi Präprozesseranweisungen wie in C sind, oder?

von Duke Scarring (Gast)


Lesenswert?

Marc Schmitt schrieb:
> da ich die gleichen
> Parameter in der VHDL-Testbench ebenfalls benötige.

Du könntest die Parameter per
1
> vsim -help
2
...
3
   -g<Name>=<Value>        Specify generic/parameter default Value for Name
4
...
der VHDL-Testbench zukommen lassen.

Duke

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Marc Schmitt schrieb:
> Ich vermute mal dass die `define und ´ifdef (usw)
> quasi Präprozesseranweisungen wie in C sind, oder?

Ja. Deshalb müssen sie auch zur Übersetzungszeit definiert sein, und 
nicht erst bei der Simulation, bzw. Elaboration.

--
Marcus

von Marc S. (nightguardian)


Lesenswert?

Duke Scarring schrieb:
> Du könntest die Parameter per> vsim -help
> ...
>    -g<Name>=<Value>        Specify generic/parameter default Value for Name
> ...
> der VHDL-Testbench zukommen lassen.

Leider auch nicht geeignet, da die unterschiedlichen Parametersätze aus 
Packages geladen werden...und ich diese Werte gerne an die das 
Verilog-Simulationsmodell (Micron-DDR2-Modell) weitergeleitet hätte.

Marcus Harnisch schrieb:
> Ja. Deshalb müssen sie auch zur Übersetzungszeit definiert sein, und
> nicht erst bei der Simulation, bzw. Elaboration.

Wie ich es befürchtet habe. Aber trotzdem danke für die Antwort.

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
Noch kein Account? Hier anmelden.