Forum: FPGA, VHDL & Co. Daten vom gleichen RAM aus zwei Modulen lesen/schreiben


von Anfänger (Gast)


Lesenswert?

Hallo,

wie kann man aus zwei Modulen Daten vom gleichen RAM lesen/schreiben?


- RAM ist mit dem IPexprecc generiert und liegt in einr VHDL Datei

- Module 1: ist für die Serielle Kommunikation und für Daten lesen 
schreiben vom RAM.

- Module 2: nach einem Trigger soll eine Adresse vom RAM gelesen werden, 
dann ein Ablauf starten

- Hauptprogramm soll Componenten von Module 1 und 2 instanzieren

wenn ich in beiden Modulen mit "Component RAM..." arbeite, dann sind es 
zwei verschiedene Instanzen?

Wie kann ich das am besten realisiere?

Vielen Dank für die Hilfe

von Christian R. (supachris)


Lesenswert?

Nimm einen Dual Port RAM, da kannst du von 2 Seiten aus lesen und/oder 
schreiben.

von Anfänger (Gast)


Lesenswert?

ja, es ist auch ein DP RAM.

Mein Problem ist das ich nicht weiss wie ich aus zwei getrennten Modulen 
(Unterschiedliche Dateien) auf dem gleichen RAM (Oder RAM 
Instanz)zugreifen kann?

von Bernd S. (Gast)


Lesenswert?

Hi,

"Hauptprogramm" :_))))

VHDL /= C++

zur Sache: Wenn du nur ein RAM instanziieren möchtest, dann hänge das 
doch auch im "Hauptprogramm" auf und verbinde es mit beiden Modulen über 
Signale.

von Christian R. (supachris)


Lesenswert?

Ein drittes Modul enthält den DP-RAM und das kommt außen an die zwei 
anderen Module dran. Dann hast du Signale und die schließt du an den RAM 
an. So etwas wie eine globale Variable gibts in VHDL nicht, das wäre 
Software. Du machst hier Hardware.

von Anfänger (Gast)


Lesenswert?

@Christian R.

Das RAM hat jetzt sein eingenes Modul.

Wie macht man es am besten wenn man vermeiden möchte, das mehrere Module 
nicht gleichzeitig im/vom RAM schreiben/Lesen?
Reicht es wenn das Ram_Module ein Busy Signal ausgibt wenn gerade was zu 
ist?, die anderen Module sollen warten bis (Busy=0)!
oder gibts bessere Ideen?

von Christian R. (supachris)


Lesenswert?

Na dann musst du natürlich einen wie auch immer gearteten Arbitrierer 
bauen. In deinen ersten Postings klang es aber nach nur einem 
Zugriffs-Modul pro Port, wieso jetzt mehrere?

von Anfänger (Gast)


Lesenswert?

Ein zusätzliches Modul, das auch vom RAM lesen kann, ist jetzt 
dazugekommen: also insegsamt zwei Module dürfen lesen, eins darf 
schreiben (vielleicht kommen in der Zukunft auch andere dazu).

>...auch immer gearteten Arbitrierer bauen
Wie macht man das am besten(einfachsten)? wo finde ich links oder infos 
über das Prinzip im Net?

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.