Forum: FPGA, VHDL & Co. Xilinx UltraScale: EMIF/MIG VHDL-Simulation


von P. K. (pek)


Lesenswert?

Hallo zusammen

Ich versuche, auf Xilinx UltraScale das EMIF/MIG Beispieldesign auf VHDL 
ans laufen zu kriegen, weiss aber nicht genau wie das gehen soll.

Was ich habe:
sim_tb_top.sv
und darin eingebettet
example_top.sv (Memory-I/F und Datengenerator)
ddr4_model.sv (DDR4-Modell, nicht im Klartext verfügbar)
Alles in Verilog

Wie setze ich das nun in VHDL um. Ich klemme mich and das in 
interface.sv definierte I/F, scheitere aber mit folgenden Errors:

MAX_ROW_ADDR_BITS is not declared 
[D:/home_nobackup/vivadotraining/KCU105_MYMIG/ddr4_0_example/ddr4_0_exam 
ple.srcs/sim_1/imports/tb/ddr4_model/StateTableCore.sv:65]
MAX_RANKS is not declared 
[D:/home_nobackup/vivadotraining/KCU105_MYMIG/ddr4_0_example/ddr4_0_exam 
ple.srcs/sim_1/imports/tb/ddr4_model/StateTableCore.sv:66
...

und dann irgendwann

INFO: [#UNDEF] Sorry, too many errors..

Die (vermutlichen) Generics MAX_ROW_ADDR_BITS, MAX_RANKS, ... kommen 
jedoch in interface.sv nicht vor.

Hat das schon jemand gemacht, oder gibt es irgendwo Doku, wie das Modell 
in VHDL sauber eingebunden werden kann/soll?

Marci!

von P. K. (pek)


Lesenswert?

Gelöst habe ich die Aufgabe noch nicht, aber für die reine 
Memory-Simulation einen Workaround gefunden:

Statt das SystemVerilog-DDR4-Modell ins VHDL einzubinden nehme ich 
gleich die ganze Simulations-Infrastruktur vom Beispiel-Design und 
ersetze im sim_tb_top.sv das Modul example_top.sv durch mein eigenes 
VHDL-Top, welches einen Memory-BIST enthält.

Nicht wirklich "straight forward" aber geht fürs Erste (ein weiteres 
Kapitel zum Themea "Der Ingenieur ist dazu da den Tools das Leben zu 
erleichtern")

von P. K. (pek)


Lesenswert?

Nachtrag:

Vivado hat offensichtlich Probleme mit der Co-Simulation von 
.vhdl-Entities die .sv-Quellen untergeordnet sind, wenn diese Ports des 
Typs "inout" enthalten.

Für die Simulation basierend auf dem EMIF-Example-Design 
"ddr4_0_example"  bedeutet dies, dass die eigene Schaltung nicht das 
Level "example_top.sv" ersetzen kann, sondern erst auf Stufe 
"example_tb.sv" eingegriffen wird.

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.