Hallo, ich habe gerade einen Vorschlag für meine Masterarbeit bekommen. Ich würde gerne mal einschätzen was in dem Thema drin an Arbeit drin steckt und welche großen Probleme auf mich zu kommen. Deshalb würde ich gerne eure Erfahrungen zu dem Thema hören. Es geht um folgendes: -Ich bekomme ein Datensignal, irgendwo zwischen 100 und 500MBit/s -Dieses soll in einem Linuxsystem verarbeitet werden Für die Umsetzung gibt es 2 zu Prüfende ideen: 1. ein FPGA-Board mit PCIe und ein normales PC-Board 2. ein Board mit einem SOC ähnlich dem Zync von Xilinx Das Board sollte nicht deutlich mehr als 1000€ kosten. Von Xilinx ist schon einiges an Knowhow vorhanden. Deshalb wäre es für mich vorteilhaft bei xilinx zu bleiben. Es geht mir hier speziell um folgendes Problem: Die eingehenden Daten müssen so im RAM des Prozessors sein das ich sie mit einer User-Space-Software verarbeiten kann. - Dafür brauche ich zuerst mal natürlich das FPGA-Board - Eine IP-Core für PCIe - Einen DMA-Core? - Teure Zusatzsoftware? Ich habe schon einige VHDL-Designs auf FPGAs umgesetzt (meist Spartan 3). Aber mit PCIe hatte ich noch nichts zu tun. Wie hoch würdet ihr den Aufwand und die Kosten für so ein Projekt einschätzen? (nur Hardware und Software, kein Lohn) Es gibt ja verschiedene Starter Kits die die notwendige Software gleich enthalten (eingeschränkt auf das Kit natürlich) Habe ich etwas wesentliches vergessen bei meinen Überlegungen? Wie sieht es mit Beispielen und Anleitungen bei den unterschiedlichen Herstellern aus? Und noch eine Frage konkret zum Zync. Ich habe vor kurzem das ZEDBoard gesehen. Ist es bei dem möglich mit dem FPGA direkt in das Prozessor-RAM zu schreiben oder besitzt der FGPA-Teil ein eigenes RAM? Ich bin auf eure Meinungen gespannt. Danke und viele Grüße
Ichige schrieb: > Ich habe vor kurzem das ZEDBoard gesehen. Ist es bei dem möglich mit > dem FPGA direkt in das Prozessor-RAM zu schreiben Das ist mit PCI und natürlich PCIe prinzipiell möglich. Dein FPGA muss dafür "einfach" einen DMA Transfer initieren können.
>Es geht mir hier speziell um folgendes Problem: >Die eingehenden Daten müssen so im RAM des Prozessors sein das ich sie >mit einer User-Space-Software verarbeiten kann. Du willst also keinen Kernel Treiber schreiben. Du willst das der user direkt auf den Speicher zugreifen kann. Also mußt du darauf achten das der IP Core schon guter treiberunterstützung mitbringt. Ansonsten Jungos WinDriver. http://www.jungo.com/st/products/windriver/
Ganz unabhängig von den Kosten würde ich sagen, dass das zeitlich in einer Masterarbeit nicht zu schaffen ist. Alleine der Kernel-Treiber für das PCIe Device samt korrekter Implementierung der DMA Transfers auf beiden Seiten plus der User-Mode Software, die den Treiber anspricht und der Software auf dem Zynq die dort das PCIe anspricht und zwischen dem "Datenstrom" und PCIe vermittelt ist für einen alleine in der Zeit vollkommen illosorisch. Bis du das Zynq System im VIVADO komplett zum laufen hast, ist wahrscheinlich die Zeit rum.
Ichige schrieb: > Ich würde gerne mal einschätzen was in dem Thema drin an Arbeit drin > steckt und welche großen Probleme auf mich zu kommen. Was kannst und kennst du zum Thema schon?
Lothar Miller schrieb: > Ichige schrieb: >> Ich habe vor kurzem das ZEDBoard gesehen. Ist es bei dem möglich mit >> dem FPGA direkt in das Prozessor-RAM zu schreiben > Das ist mit PCI und natürlich PCIe prinzipiell möglich. Dein FPGA muss > dafür "einfach" einen DMA Transfer initieren können. Ähh, die Kopplung zwischen FPGA und dem Prozessorteil erfolgt über mehrere AXI-Kanäle und nicht über PCI/PCI Express. Es ist in der Tat möglich, über AXI Master auf die Speicher des Prozessorteils zuzugreifen. Jedoch muss man sehr genau schauen, welchen Datenpfad man verwendet. Benötigt man lokale Puffer für den FPGA-Teil, auf die kein Zugriff durch den Prozessorteil erfolgen soll, muss die Cache-Kohärenz nicht gewährleistet sein; bei geteilten Puffern natürlich schon. Die Latenzzeiten beim Zugriff auf externes SDRAM können auf Grund der vielen Puffer und Synchronisierungsstufen schon etliche hundert Taktzyklen betragen, d.h. es eignet sich z.B. gut für hintereinandergeschaltete Bildverarbeitungsstufen, aber nicht als Registerersatz o.ä.. Auf jeden Fall muss man auch die zur Verfügung stehenden Busbandbreiten der verschiedenen Datenpfade berücksichtigen. Das ganze lässt sich nicht ohne weiteres in drei Sätzen vollständig beschreiben, sondern man muss schon viel im Architekturhandbuch und Applikationsschriften lesen und durcharbeiten. Wie es mit der Nutzung der in einigen Bausteinen vorhandenen PCI-Express-Schnittstelle aussieht, weiß ich derzeit nicht. Es wird aber sicherlich irgendein Beispielprojekt von Xilinx, Digilent o.ä. geben. Interessant ist, dass Xilinx jetzt auch den XC7Z015 nachgeschoben hat, d.h. einen Zynq mit (billigem) Artix-FPGA und PCI Express.
Christian R. schrieb: > Ganz unabhängig von den Kosten würde ich sagen, dass das zeitlich in > einer Masterarbeit nicht zu schaffen ist. Alleine der Kernel-Treiber für > das PCIe Device samt korrekter Implementierung der DMA Transfers auf > beiden Seiten plus der User-Mode Software, die den Treiber anspricht und > der Software auf dem Zynq die dort das PCIe anspricht und zwischen dem > "Datenstrom" und PCIe vermittelt ist für einen alleine in der Zeit > vollkommen illosorisch. Bis du das Zynq System im VIVADO komplett zum > laufen hast, ist wahrscheinlich die Zeit rum. Danke für diese Einschätzung. Ich hatte mit dem Zynq noch nichts zu tun. Deshalb hatte ich gehofft das ich hier nicht den Umweg über pcie gehen muss. Ich vermute ein normaler embedded PC mit einem virtex auf pcie Karte ist auch nicht leichter oder? Was ist am VIVADO so schlimm? Ich hatte bisher nur mit der ise zu tun. Lothar Miller schrieb: > Was kannst und kennst du zum Thema schon? Ich bin recht fit in vhdl, kenne mich recht gut mit embedded Linux aus und habe schon verschiedene male mit Treiberentwicklung unter Linux zu tun gehabt. Aber noch nichts mit pcie. Es ging damals um das Innenleben eines soc.
Ichige schrieb: > Hallo, > ich habe gerade einen Vorschlag für meine Masterarbeit bekommen. Ich > würde gerne mal einschätzen was in dem Thema drin an Arbeit drin steckt > und welche großen Probleme auf mich zu kommen. Deshalb würde ich gerne > eure Erfahrungen zu dem Thema hören. > > Es geht um folgendes: > -Ich bekomme ein Datensignal, irgendwo zwischen 100 und 500MBit/s > -Dieses soll in einem Linuxsystem verarbeitet werden > > Für die Umsetzung gibt es 2 zu Prüfende ideen: > 1. ein FPGA-Board mit PCIe und ein normales PC-Board Mit dieser Variante bist du sehr flexible was die Verarbeitung angeht. > 2. ein Board mit einem SOC ähnlich dem Zync von Xilinx > > Das Board sollte nicht deutlich mehr als 1000€ kosten. Von Xilinx ist > schon einiges an Knowhow vorhanden. Deshalb wäre es für mich vorteilhaft > bei xilinx zu bleiben. Die PCIe-Boards kosten oft mehr als 1000€, aber zwischen 1000-2000€ bist du dabei, inklusive Softwarelicense. > Es geht mir hier speziell um folgendes Problem: > Die eingehenden Daten müssen so im RAM des Prozessors sein das ich sie > mit einer User-Space-Software verarbeiten kann. > > - Dafür brauche ich zuerst mal natürlich das FPGA-Board > - Eine IP-Core für PCIe > - Einen DMA-Core? > - Teure Zusatzsoftware? Mit PCIe brauchst du den mitgelieferten PCIe IP und einen minimalen Treiber auf dem Linux-System. > Ich habe schon einige VHDL-Designs auf FPGAs umgesetzt (meist Spartan > 3). Aber mit PCIe hatte ich noch nichts zu tun. PCIe ist "nicht" sehr schwer, es sind eben wieder mal die üblichen Verdächtigen im Spiel, Timing, Buffer etc.. > Wie hoch würdet ihr den Aufwand und die Kosten für so ein Projekt > einschätzen? (nur Hardware und Software, kein Lohn) Es gibt ja > verschiedene Starter Kits die die notwendige Software gleich enthalten > (eingeschränkt auf das Kit natürlich) Für das FPGA-Board würde ich, wie gesagt, etwa 1500€ veranschlagen. PCIe Entwicklung auf dem FPGA: 1-2Monate Datenanbindung FPGA: 1Monat Linux-Treiber Entwicklung: 1-4Wochen Linux Daten Aufbereitung: 1-4Wochen Linux Verarbeitung: ??? je nach Aufwand > Habe ich etwas wesentliches vergessen bei meinen Überlegungen? Welchen Schwerpunkt hat deine Masterarbeit und wieviel Zeit hast du? > Wie sieht es mit Beispielen und Anleitungen bei den unterschiedlichen > Herstellern aus? Die gibt es, sind aber immer auf dein System anzupassen und das kostet Zeit ohne Ende. > Und noch eine Frage konkret zum Zync. Ich habe vor kurzem das ZEDBoard > gesehen. Ist es bei dem möglich mit dem FPGA direkt in das Prozessor-RAM > zu schreiben oder besitzt der FGPA-Teil ein eigenes RAM? Reicht die CPU-Leistung für die Verarbeitung aus? Bitte!
z.B. http://www.altera.com/products/devkits/altera/kit-arria-v-starter.html der PCIe Hard IP Core ist mit der Avalon St Doku und SignalTrap recht gut nachzuvollziehen. Ich halte KarlGustav Zeiteinschätzung für realistisch. PCIe Entwicklung auf dem FPGA: 1-2Monate (eher 2, Quartus/SignalTrap) Datenanbindung FPGA: 1Monat Linux-Treiber Entwicklung: 1-4Wochen (eher 4, wenn man wissen will was man tut) Linux Daten Aufbereitung: 1-4Wochen (eher 4, je nach Anforderungen die noch kommen werden) Sechster Monat für die Ausarbeitung und Dokumentation reservieren. Viele Grüße Micha
Muss es denn wirklich PCIe sein? Bei 500Mbit reicht ja noch Gigabit Ethernet oder USB3. Warum wurden die nicht in Erwägung gezogen?
Hi also ich habe vor ein paar Jahren meine Diplomarbeit über ein sehr ähnliches Thema geschrieben. Ich musste allerdings knapp 800MByte/s vom FPGA Board (ml605) in den Speicher schieben. Zum Einsatz kam ein DMA Core von PLDA und dem dazugehörigen Treiber (sehr teuer). Falls du Firmware und Treiber selbst schreiben sollst, sind die Zeiten etwas optimistisch. Ich habe schon mit dem "fertigen" Treiber meine Probleme gehabt (war buggy). Grüße
Micha schrieb: > Ich halte KarlGustav Zeiteinschätzung für realistisch. > PCIe Entwicklung auf dem FPGA: 1-2Monate (eher 2, Quartus/SignalTrap) > Datenanbindung FPGA: 1Monat > Linux-Treiber Entwicklung: 1-4Wochen (eher 4, wenn man wissen will was > man tut) > Linux Daten Aufbereitung: 1-4Wochen (eher 4, je nach Anforderungen die > noch kommen werden) > Sechster Monat für die Ausarbeitung und Dokumentation reservieren. Ein Monat für Ausarbeitung und Dokumentation ist zu wenig. Das Papier, das Du produzieren musst, ist die eigentliche Prüfungsleistung. Wenn irgend eine Teilkomponente aus Zeitmangel nicht zum Laufen gebracht werden kann, ist das verzeihlich, aber die Ausarbeitung, die muss perfekt sein. Ich würde die Hälfte der Zeit für den praktischen Teil veranschlagen, die andere Hälfte für den Papierkram. Bei uns war es so, dass man exakt 180 Tage Zeit hatte - wer am 181. Tag abgegeben hat, war durchgefallen. Also lieber extrem konservativ planen. fchk
Hallo Ichige, Mein Name is Merlin Gehrig von der Firma Jungo Connectivity Ltd. Wie Uwe schon angedeutet hat kann WinDriver eine Loesung fuer sie sein. WinDriver is ein Treiber Entwicklungs toolkit fuer PCI/PCIe/USB Geraete. Mit den WinDriver cross platform(Windows/Linux/CE) user mode APIs, kann man sofort mit der Implementierung beginnen, Laden sie doch einmal die Demo version von WinDriver von unserer Webseite http://www.jungo.com/st/products/windriver/ herunter und shauen sie das Xilinx BMD Design sample an, das sich mit DMA transfer befasst. Diese sollte die Treiber entwicklung extrem Beschleunigen. Es werden natuerlich auch weitere FPGA Boards(Altera, Microsemi) unterstuetzt. Fuer mehr informationen koennen sie sich direct an mich wenden Best Regards, / Mit freundlichen Grüßen Merlin Gehrig - - - - - - - - - - - Sales & Support Engineer, Jungo Connectivity Ltd. Web: www.jungo.com Email: merlin@jungo.com Phone: +1 (408) 600-0851 (USA) & +972 (09) 970-8607 (World Wide) Fax: +1 (408) 404-0202 (USA) \& +972 (09) 777-0299 (World Wide) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - For any technical issues, please visit https://techsup.jungo.com
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.