Forum: FPGA, VHDL & Co. Nios2 und extern Mikrocontroller teilen gemeinsam ein SDR-SDRAM


von altera_user (Gast)


Lesenswert?

Hallo zusammen,

ich bitte Euch um Hilfe bitte!

Mein System besteht aus einen Mikrocontroller(TI Concerto Cortex M3), 
einen FPGA(altera cyclon IV E) und SDRAM.
Der Mikrocontroller verbindet nur mit FPGA über parallen Bus 
(Address/Data/Control Signals). Der SDRAM wird direkt nur mit dem FPGA 
verbindet.

Ich habe vor:
 Ein Anteil von dem SDRAM wird für Nios2 (Data- und 
Instructionsspeicher) reserviert, den SDRAM-Rest für den extern 
Mikrocontroller (Concerto).

Meine Frage ist, wie kann man das realisieren?

Meines Wissens, über Qsys wird ein Avalon MM zwischen Nios2 - 
interconnect fabric - SDRAM Controller hergestellt. In diesem Fall habe 
ich 2 Master, Nios2(höhere Priorität) und den extern 
Microcontroller(nidriger Priorität), die beide auf den SDRAM (über SDRAM 
Controller) zugreifen. Ich kann mir vorstellen, dass ich ein Custom 
Avalon MM (Slave oder Master) schreiben muss.

Vielen Dank im vorraus!

lg Tomy

von Michael F. (mifi)


Lesenswert?

Hallo Tomy,

ich habe so etwas in der Art, Cortex-M4 <=> Cyvlon IV E schon mal
gemacht. Folgende Dokumente haben mir hier geholfen:

Avalon Spezifikation (mnl_avalon_spec.pdf):
http://www.altera.com/literature/manual/mnl_avalon_spec.pdf

Und die Applikation Note, AN-397, Interfacing to External
Processors (Connect_of_Altera-FPGA_and_CPLD.pdf).
Hierfür finde ich gerade den Link nicht.

In meiner Applikation habe ich nur vom Cortex-M4 auf das SDRAM
am Cyclone IV zugegriffen. Aber nach den Beschreibungen sollte
das bei Dir auch gehen.

Du musst einen Avalon-MM Master erstellen, und nicht die Wait
Funktion vergessen.

Viele Grüße,
Michael

von Tomy (Gast)


Lesenswert?

Hallo Michael,

vielen Dank für deine Antwort! :-)

Die Avalon Spezification (für Memory Mapped )habe ich durch gelesen. Den 
Note meinst Du Embedded Design Handbook 
(http://www.altera.com/literature/hb/nios2/edh_ed_handbook.pdf) auf 
Seite 298?

viele Grüße

Tomy

von Tomy (Gast)


Lesenswert?

aha hab ich deinen Note-Vorschlag gefunden:-)
http://read.pudn.com/downloads97/ebook/394877/Connect_of_Altera-FPGA_and_CPLD.pdf

Nun bin beim Lesen:)

lg Tomy

von Tomy (Gast)


Lesenswert?

Michael Fischer schrieb:
> ich habe so etwas in der Art, Cortex-M4 <=> Cyvlon IV E schon mal
> gemacht. Folgende Dokumente haben mir hier geholfen:

Hallo Michael,

welche Interface Art von Cortex 4 hast du fur die Verbindung benutzt?

Hab grad Technical Reference Manual Concerto (TI F28x DSP + ARM Cortex 
M3) gelesen. Auf Seite von Cortex M3 gibts External Peripherie Interface 
:
1) SDRAM
2) Host Bus
3) General Purpose
4) General parallel GPIO


Scheint, für mich wäre die 3. Möglichkeit, "General Purpose" 
interessant, denn es unterstützt "wait-request"-Signal!?

vielen Dank im voraus!

viele Grüße

Tomy

von Michael (Gast)


Lesenswert?

Hallo Tomy,

>welche Interface Art von Cortex 4 hast du fur die Verbindung benutzt?
Ich hatte hier einen Cortex-M4 von ST benutzt, zu den Cortex CPUs
von TI kann ich nichts sagen. Aber wenn es hier nur einen Mode
mit dem "wait-request" Signal gibt dann ist das der richtige Mode.

Viele Grüße,
Michael

von Tomy (Gast)


Lesenswert?

Michael Fischer schrieb:
> Du musst einen Avalon-MM Master erstellen, und nicht die Wait
> Funktion vergessen.

hallo Michael,

kannst du dein Avalon Master posten? Ich bin dir dafür sehr dankbar. Der 
Avalon MM Master von Altera Template sieht recht kompliziert aus..

vielen Dank im Voraus!

viele Grüße

Tomy

von Michael F. (mifi)


Lesenswert?

Hallo Tomy,

veröffentlichen kann ich ihn nicht, aber was hältst Du davon?
1
   avm_address      <= cpu_a;   
2
   avm_cs_n         <= cpu_cs_n;
3
   avm_read_n       <= cpu_oe_n;
4
   avm_write_n      <= cpu_we_n;
5
   avm_byteenable_n <= cpu_bl_n;
6
   
7
   cpu_wait_n       <= avm_waitrequest;    
8
   
9
   avm_writedata    <= cpu_writedata;
10
   cpu_readdata     <= avm_readdata;

Das drumherum musst Du dir jetzt noch selber "stricken".
Was mir auch geholfen hat war der SignalTab, damit habe
ich dann meine Fehler gesucht/gefunden.

Da Du ja auch die Beschreibung hast, schau mal in
"Connect_of_Altera-FPGA_and_CPLD.pdf" auf Seite 7 ab
dem Kapitel "Signal Relationship for Asynchronous Handshakes
with Tri-State Masters".

Gruß,
Michael

von Tomy (Gast)


Lesenswert?

hallo Michael,

danke für deinen Tipp:)

Ich suche Design Files "external_master.zip" (auf Seite 20), aber finde 
ich nirgendwo:( Hast du vielleicht noch, wäre mir sehr hilfreich:)

Ich bin bisschen durcheinander. In der Note scheint, muss man nur ein 
Master Interface in Qsys/SOPC Builder Component Editor definieren, also 
für Interface zum externen Prozessor, weil der Prozessor der Master ist, 
er initialisiert ein Stranfer... Für intern dann muss man dann selbe MM 
Master schreiben.

Komisch ist, in der Note auf Seite 26, Figure 11 "Connection Dots" sehe 
ich keinen "Conduit", das zum Toplevel exportiert wird und zum 
Prozessorpins verbunden?!

Habe ich einen Denkfehler?

Vielen Dank im Voraus!

Viele Grüße

Tomy

von Michael (Gast)


Lesenswert?

Hallo Tomy,

das ZIP File habe ich auch nicht, schau doch mal bei Altera auf
dem FTP Server.

>Komisch ist, in der Note auf Seite 26, Figure 11 "Connection Dots" sehe
>ich keinen "Conduit", das zum Toplevel exportiert wird und zum
>Prozessorpins verbunden?!
Kann es sein das das "Conduit" nur im Qsys angezeigt wird und
nicht im SOPC Builder? Denn auch das Conduit von LED_pio wird
hier nicht angezeigt.

Am Anfang haben mich die vorhandenen Informationen auch etwas
verwirrt. Einfach mal machen und mit dem LogicAnalyzer oder
SignalTap schauen was passiert.

Gruß,
Michael

von Tomy (Gast)


Lesenswert?

Hallo Michael,

echt schade mit dem Design File, sonst wäre viel einfacher...

danke für deinen Tipp, ich versuche weiter:-)


schönes WE:-)

ciao

Tomy

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.