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
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
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
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
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
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
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
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.