Forum: FPGA, VHDL & Co. Modul an BRAM simulieren


von D. I. (Gast)


Lesenswert?

Ich habe ein Modul welches über eine Top-Entity mit einem BRAM verbunden 
ist. Da die Top-Entity aber noch einigen anderen Schlonz wie PCI-Express 
enthält und ich nur das Zusammenspiel zwischen BRAM und meinem Modul 
simulieren möchte wollte ich fragen wie ich das simuliere.
Ist es möglich in der Testbench für das Modul ein BRAM mit vorbelegten 
Daten (beim Core-Generator kann man ja angeben dass das mit nem COE file 
befüllt wird) zu instantiieren und das mit der UUT zu verbinden so dass 
ich das Zusammenspiel zwischen den beiden Komponenten simulieren kann? 
Insbesondere interessiert mich dabei ob ich die Daten richtig schreibe 
und lese.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> wollte ich fragen wie ich das simuliere.
So sollte das gehen:
Im Projektmanager "New Source..." anwählen. Im folgenden Dialog 
"Testbench" auswählen, und im dann erscheinenden Dialog als zugeordnetes 
Modul das BRAM selektieren.
So könnte jedem einzelnen (Unter-)Modul eine TB zugeordnet werden.

von D. I. (Gast)


Lesenswert?

Lothar Miller schrieb:
>> wollte ich fragen wie ich das simuliere.
> So sollte das gehen:
> Im Projektmanager "New Source..." anwählen. Im folgenden Dialog
> "Testbench" auswählen, und im dann erscheinenden Dialog als zugeordnetes
> Modul das BRAM selektieren.
> So könnte jedem einzelnen (Unter-)Modul eine TB zugeordnet werden.

Bleh, anscheinend habe ich die Frage zu undeutlich gestellt. Wie man 
grundsätzlich simuliert weiß ich schon. ;)
Es geht um folgendes Szenario:
In der Top-Entity sind 2 BRAM's und <MyModule> und einiges anderes 
vorgegebenes Zeug instantiiert. Wenn ich jetzt nur <MyModule> simuliere 
muss ich in der Testbench das BRAM mit seinen Signalen manuell 
nachbilden. Genau das möchte ich nicht. Ich möchte in der Testbench für 
<MyModule> ein BRAM mit vorbelegten Werten haben und mir die 
Kommunikation zwischen <MyModule> und dem BRAM ansehen ohne dafür die 
Top-Entity simulieren zu müssen.
Und meine Frage ist ob das so einfach geht eine BRAM-Instanz in der TB 
zu erstellen und das mit der UUT (welches <MyModule> ist) zu verbinden 
so dass man in der Simulation sieht was mir das BRAM für Daten schickt.

von Klaus F. (kfalser)


Lesenswert?

Christopher D. schrieb:
> Und meine Frage ist ob das so einfach geht eine BRAM-Instanz in der TB
> zu erstellen und das mit der UUT (welches <MyModule> ist) zu verbinden
> so dass man in der Simulation sieht was mir das BRAM für Daten schickt.

Ja, wo siehst Du die Schwierigkeit?
Du musst die TB halt selbst schreiben, oder falls Du sie mit einem 
Wizard erstellt, diese manuell modifizieren um das BRAM dazuzugeben.

Eine TB ist nur ein normales VHDL Programm, das keine Ein- und Ausgänge 
mehr haben sollte. Niemand verbietet Dir zu einem bestimmten Problem 
eine TB zu schreiben, in die nur das hineinkommt, das Dich interessiert.
Wie gesagt, diese TBes werden mit der Hand geschrieben, und die 
Simulation erfolgt meist außerhalb der Xilinx (oder Altera) GUI.

von berndl (Gast)


Lesenswert?

iss nich kompliziert...

Du erstellst fuer dein BRAM eine Testbench mit dem Wizard, dann packst 
du da noch deine COMPONENT declaration und instantiation fuer deine 2 
sonstigen Module rein. Und dann hackst du dir halt die passende TB 
zusammen.

Es koennen durchaus mehr als 1 Komponente in eine TB eingebunden werden. 
Das brauche ich fuer manche externe Chips (ADC/DAC via SPI z.B.) fast 
immer auch fuer meinen Toplevel.

von D. I. (Gast)


Lesenswert?

Ich danke euch

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.