SDRAM R/W Geschwindigkeit erhöhen?

OP #3346967
Lesenswert?
• ▲
▼
Hallo. Ich hoffe ich nerve euch mit meinen ständigen Fragen nicht so 
sehr:)

Gegeben:
DE10 Altera Board mit 8 Mbyte SDRAM
TFT-Bildschirm.


Ich will ein Bild aus dem SDRAM  Auslesen ,  und auf TFT Display 
anzeigen.
Leider stelle ich gerade fest, dass die Kombination
NIOS II/e + SDRAM Controller sehr langsam ist.
NIOS II wird zwar mit 133 Mhz getaktet, aber solche simpler Code wie:
1
          address=IORD_ALTERA_AVALON_PIO_DATA(ADDRESS_BASE);//  read address
2

3
    data=IORD_8DIRECT(0x800000,address); //read SDRAM
4
    IOWR_8DIRECT(DATA_BASE,0,data);// output data
Nimmt auf  NIOS II/e version viel zu viele Taktzyklen.

Laut Datenblatt, beträgt die  "MIPS/MHz Ratio" für die e-Version leider 
0.107

D.h. die maximale Datenrate liegt so bei 133*0.107*3=40 Mbyte/s. Das ist 
mir zu langsam.

Gibt es ein weg, den SDRAM Controller direkt mit  meinem VHDL Design  zu 
verbinden, ohne NIOS Prozessor?
Welche Möglichkeiten gibt es?  Mein TFT -Bildschirm hat den Pixelclock 
von 108 Mhz, die Datenrate soll auch entsprechend sein.

Danke für die Hilfe.
Gast #3347046
Lesenswert?
• ▲
▼
"Einfache" Möglichkeit:

in einen der Altera-Paper wird ein LCD-Controller beschrieben,
der per SGDMA (Scattered-Gather-DMA) auf den Speicher zugreift.
Im Prinzip wird ein weiterer Avalon-MM-Master an den Speicher
gehängt und die generierten QSys_Komponenten kümmern sich um
alles weitere.

Du kannst aber auch selber eine Komponente mit MM-Master-Interface
auf der einen und LCD-Interface auf der anderen Seiteschreiben.
Dazwischen braucht's nur noch einen FIFO.

Btw: der NIOSII/e ist nunmal langsam, weil er ja nicht
gepipelined ist. Die anderen NIOSII-CPUs sind da wesentlich schneller.
Gast #3349991
Lesenswert?
• ▲
▼
Eine einfache Avalon MM-Master-Komponente ist eigentlich relativ
einfach aufgebaut bzw. geschrieben. Auf der Altera-Seite findest
du ein PDF zu allen Avalon-Schnittstellen, davon sind MM (Memory
Master) und MS (Memory Slave) für einfache NiosII-Designs mit
am wichtigtstenm. Ohne die Kenntnisse kannst du keine eigenen
QSys-Komponenten schreiben. Liest dich einfach mal ein.
Gast #3355915
Lesenswert?
• ▲
▼
Mit einem MM-Master schreibst du im Prinzip
nicht auf das SDRAM, sondern du greifst einfach
auf den Bus zu. Was da dran hängt, SDRAM, interne
RAMs oÄ kann und soll eigentlich egal sein.

Bei dir hängt dann neben dem NiosII auch noch
deine MM-Master-Komponente als Master am Bus,
QSys sorgt dann automatisch für Aribter etc.

Wie gesagt, schau einfach mal in
http://www.altera.com/literature/manual/mnl_avalon_spec.pdf
rein.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.