Dual ported RAM

OP #5215422
Lesenswert?

Ich habe eine Design Frage, ganz grundsätzlich ...


---------
Ich habe einen 256 MB SDRAM an einem Spartan-6.

Der Refresh läuft tadellos, der Zugriff erfolgt "von außen".
Das ermöglicht einem kleinen Java Programm, dem Loader, den SDRAM zu 
beschreiben (und zu lesen).

---------
Ich habe eine kleine CPU die auf den SDRAM zugreift (Code und Daten).

---------
Nun würde ich gerne beides kombinieren.
Damit ich Code für die CPU rauf laden kann.


Wie macht man es am besten?

- Mit dual ported RAM?

- Oder einen speziellen Zustand in der State Machine der CPU?
OP #5217260
Lesenswert?

Bernhard K. schrieb:
> Oder eines der Blockrams des Spartans als Rom mit Bootloader verwenden?
>

Das war meine erste Idee.

Aber es wäre natürlich cool, den Speicher von "außen" zu sehen, auch 
während des Betrieb ...



Vorallem ist die Kommunikation mit dem FPGA CPU-core dann deutlich 
verbessert, wenn es einen gemeinsamen Speicher gibt.

Als wenn nur serielle Kommunikation über UART und/oder SPI geht.
Gast #5217397
Lesenswert?

Lothar M. schrieb:
>> auch während des Betrieb ...
> Wenn schon, dann "dem Betrieb"...  ;-)

während DES BETRIEBS!

erschütternd, was hier an Rechtschreibung unterwegs ist!

Der Akkusativ ist hier grammatikalisch falsch und wird in DE nur in der 
sprachlich unterentwickelten Region Schwaben in dieser Weise verwendet.
Moderator (Firma: Titel) Persönliche Seite #5217425
Lesenswert?

Route 6. schrieb:
> Wenn du schon korrigierst, dann richtig!
Ja, zum Glück hat einer den Witz "von den Anführungszeichen" begriffen 
und auch den Smiley richtig interpretiert... ;-)

Ordner schrieb:
> Der Akkusativ ist hier grammatikalisch falsch
Der ist ja noch besser...  :-D

Stichwort dazu: Der Dativ ist dem Genitiv sein Tod!


Aber nachdem das durch ist: können wir uns wieder des Themas annehmen?
OP #5217480
Lesenswert?

Lothar M. schrieb:
> Du bist damit dann aber weit, weit, weit weg von den bisherigen 256MB
> Speicherplatz. Das ist das Problem mit den internen SRAM-Blöcken.

Nee, bin ich nicht.
Ich dachte schon an einer Anbindung des SDRAM nach "Außen".



Der Mojo hat ja einen AVR (einen 32u4) vorgeschaltet.
Der programmiert den Flash und/oder den Spartan direkt über ein BIT 
File.

Aber der ist auch über RX/TX und SPI angeschlossen.
Wobei auch schon der UART sehr flink läuft,mit 500 Kbit.

Bei den Mojo Code Samples gibt es einen SD Controller.
Und es gibt ein "Register" Sample.

Das Register Sample ist einfach ein 32 bit adresslatch und ein 32 bit 
Datenbus.
Man kann so 32 Bit lesen und schreiben direkt über den USB Port.
Dazu gibt es ein Utility und auch einen Java Code.
Läuft super schnell.


Ich habe das SDRAM Sample und da Register Sample kombiniert.
Da ist der ganze SDRAM als register eingeblendet von Adresse 0 weg.
Und ab Adresse 0xFFFFFFE0 habe ich mal 4 Stück 32 Bit Register.
Läuft fein um module direkt in der Hadware testen zu können.
OP #5217486
Lesenswert?

Der SDRAM controller bietet ein memory interface.

Ich dachte ich mach mir ein Verilog Modul, das drei solche Memory 
Interfaces bitet, einen Master zum SDRAM und zwei Slaves.

Dann kann die FPGA CPU eines der Memory Slave Interface haben und der 
externe Speicherzugriff den anderen.


Damit ist das transparent.
Die CPU benutzt den SDRAM direkt oder zber den Splitter.
Persönliche Seite #5217558
Lesenswert?

Thomas W. schrieb:
> Aber es wäre natürlich cool, den Speicher von "außen" zu sehen, auch
> während des Betrieb ...

Bei schnellem SRAM kann man ein cycle-shared-RAM-Interface 
implementieren ... Beispielsweise, das SRAM wird mit 60MHz betrieben und 
es gibt zwei Busse, die jeweils 30MHz fahren und sich quasi die 60MHz 
teilen.

Das ist ansich schon ein Aufwand - funktioniert aber.

Bei SDRAM dürfte das aber nochmal eine Ecke komplexer sein ... Falls es 
da was fertiges gibt, würde ich auf jedenfall das fertige verwenden.

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