Forum: FPGA, VHDL & Co. [De0 nano] [Nios II] [SDRAM] Bildverarbeitung über das FPGA und Wiedergabe über Matrixdisplay


von point (Gast)


Lesenswert?

Hi,

wisst ihr wie man am einfachsten ein Bild auf dem SDRAM oder EPCS 
speichern und an das FPGA weiterreichen kann, sodass es den Studenten 
zum Verarbeiten zur Verfügung steht?
Das Bild soll danach auf den SDRAM zurückgeschrieben werden und auf dem 
Display angezeigt werden.
Hierbei wollen wir sicherstellen, dass wir in freien Speicher schreiben.

Wir verwenden das DE0 Nanoboard und zeigen das Bild über den LT24 
Matrixdisplay an. Dieses steuern wir mittels Nios II. Das Speichern des 
hartgecodeten Bildes in C über den Nios II funktioniert und lässt sich 
auch an das Display weiterreichen. Allerdings wollen wir die Filter 
direkt auf dem FPGA implementieren und müssen somit das Bild an das FPGA 
weiterreichen.

Der Memory Mapped Master den wir hierzu verwenden benötigt aber die 
physikalische Adresse im Speicher um das Bild zu lesen. Und genau hier 
liegt das Problem. Wir kennen diese nicht. Wie können wir die explizite 
Adresse und das Memory Mapping des Nios II herausfinden?

Ich freue mich auf eure Lösungsvorschläge.

von M. Н. (Gast)


Lesenswert?

Es gibt zwei einfache Möglichkeiten:

1. Man zwingt den compiler das Bild immer an der selben Adresse 
abzulegen. Das kann man entweder über das linkerscript oder über 
attributes.

Anregung:
https://stackoverflow.com/questions/4067811/how-to-place-a-variable-at-a-given-absolute-address-in-memory-with-gcc

Hierbei ist ein wenig darauf zu achten, dass man sich da kein Loch ins 
Bein schießt, indem man das irgendwo hinlinkt und der Linker den rest 
des Programms nicht platzieren kann.

2. Die andere Möglichkeit wäre, einen weiteren Avalon-Slave zu 
implementieren, dem vom Nios die Adresse zur Laufzeit mitgeteilt wird.

von Sigi (Gast)


Lesenswert?

Ich setze mal voraus, dass du dich ausreichen mit
der Avalon-Spezifikation auskennst:

1. Die CPU ist per MM mit dem SDRAM, deinem Filter
   und deinem Framegrabber verbunden
2. Dein Filter als auch dein Grabber greifen per
   MM auf das SDRAM zu, evtl. sind auch zwei MMs
   für den Filter von Vorteil
3. Dein Filter als auch dein Grabber werden per
   MS-Schnittstelle (Slave) gesteuert (in Form einer
   Registerbank)

   CPU     => SDRAM
   CPU     => Grabber
   CPU     => Filter
   Grabber => SDRAM
   Filter  => SDRAM

Damit können dann softwareseitig dem Grabber als
auch dem Filter via Registerzugriff mitgeteilt werden,
wo das oder die Bilder abgelegt werden sollen,
wann aufgenommen und wann gefiltert werden soll
(Default-Einstellung für Filterung/Grabben sollte
STOP sein, d.h. kein Filtern und kein Grabben).

von Andreas (Gast)


Lesenswert?

Hallo,

point schrieb:
> speichern und an das FPGA weiterreichen kann, sodass es den Studenten
> zum Verarbeiten zur Verfügung steht?

Darf ich Fragen welche Vorkenntnisse mit Quartus  SOPC  QSYS schon 
bestehen, und wie der Rahmen der LV (Praktikum, Beleg?) dann ist?

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.