Gast
#4156347
Guten Tag zusammen, ich habe im März mit FPGA angefangen und komme soweit ganz gut zurecht habe jetzt aber ein kleines Problem bei welchem ich etwas Hilfe brauchen könnte... Es geht um ein Kamerasystem welches die Daten über Ethernet ausgeben soll. Die Daten kommen aus der Kamera und landen in einer Pipeline welche dann an den Daten herumrechnet. Parallel läuft auf dem FPGA eine Nios 2 Embedded CPU welche sich um das TCP/IP und die I2C Konfiguration der Kamera übernehmen soll. I2C funktioniert bereits aber nun stehe ich vor dem Problem das die Daten aus der Pipeline irgendwie in die CPU müssen. Ich habe hier ein DE2-115 Board von Altera/Terasic und habe die Daten aus der Pipeline bisher testweise ins SRAM geschrieben und dann über das "Control Panel" ausgelesen um zu testen ob bis zum Ende der Pipeline alles richtig funktioniert. Das Nios System besteht bisher aus einer Clock, der CPU, 128MB-SDRAM,sysid,parallel-out und einer I2C-Schnittstelle. Die Clock hat 125MHz, die Pipeline rechnet mit 20 MHz. Nun ist mein Problem wie ich die Daten aus der Pipeline in die CPU bzw. das RAM bekomme... ein PIO als Input wird wohl vermutlich zu langsam arbeiten und bei weitem nicht synchron genug werden. Momentan lade ich das NIOS C-Programm noch in den SRAM könnte dafür aber noch etwas On-Chip RAM/ROM anlegen um den SD-RAM für die Pipeline frei zu machen. Die Pipeline liefert etwa zu 50% der Zeit Daten mit 20 MHz, die CPU kann die Daten schneller aus dem RAM holen daher sollte das wohl machbar sein. Meine Frage ist nun wie ich das ganze konkret im QSYS vernünftig umsetze. Soll ich einen DMA Controller nutzen oder lieber ein FIFO? Oder gibt es eine Art Stream to Memory Sink mit FIFO und Trigger um die Pipeline Daten asynchron zur CPU Clock anzunehmen? Könnt ihr mir dabei helfen? Vielen Dank schon mal für eure Zeit und Hilfe :-) Lieben Gruß Viktor