Modul an BRAM simulieren

Gast #1496293
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.
Gast #1496567
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.
#1496581
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.
Gast #1497477
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren