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?
Thomas W. schrieb: > - Oder einen speziellen Zustand in der State Machine der CPU? Nur so geht das. Denn du hast ja kein DP RAM, deshalb musst du den Zugriff auf das RAM so multiplexen, dass jeder mal drankommt...
Oder eines der Blockrams des Spartans als Rom mit Bootloader verwenden? Thomas W. schrieb: > --------- > Ich habe eine kleine CPU die auf den SDRAM zugreift (Code und Daten). > > ---------
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.
Thomas W. schrieb: > Aber es wäre natürlich cool, den Speicher von "außen" zu sehen Du bist damit dann aber weit, weit, weit weg von den bisherigen 256MB Speicherplatz. Das ist das Problem mit den internen SRAM-Blöcken. > auch während des Betrieb ... Wenn schon, dann "dem Betrieb"... ;-)
Lothar M. schrieb: > Wenn schon, dann "dem Betrieb"... ;-) Wenn du schon korrigierst, dann richtig! Es heißt: während des Betriebes. Der umgangssprachlich oft verwendete Dativ macht noch lange keine richtige Schreibweise.
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.
Ordner schrieb: > Der Akkusativ ist hier grammatikalisch falsch und wird in DE nur in der > sprachlich unterentwickelten Region Schwaben in dieser Weise verwendet. Dativ
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?
:
Bearbeitet durch Moderator
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.
:
Bearbeitet durch User
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.