Dual ported RAM

OP #5215422
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
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
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
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.