Hallo FPGA-Freunde, aktuell bin ich auf der Suche nach einem Thema für meine Masterarbeit. Bislang habe ich mich ausschließlich mit Mikrocontrollern beschäftigt und noch nie mit FPGA's befasst. Um mich in neue Gebiete einzuarbeiten, würde ich mich in meiner Masterarbeit gerne mit FPGA's beschäftigen. Mein Prof. hat mir vorgeschlagen, einen programmierbaren FPGA-Koprozessor für einen PC zu entwickeln. Als absoluter Neuling kann ich den Aufwand allerdings nicht einschätzen und habe die Befürchtung, dass mich das Thema erschlagen kann. Jetzt würde ich gerne eure Meinung dazu hören, ob dieses Projekt im Rahmen einer Masterarbeit (0,5 Jahre Vollzeit) zu realisieren ist. Eine genauere Anforderungsspezifikation gibt es nicht. Es soll sich allerdings um ein Analogon zu z.B. einem Gleitkomma-Koprozessor handeln, wobei die tatsächliche Funktion programmierbar sein soll. Ich soll auch ein Anwendungsbeispiel implementieren wie z.B. eine schnelle Stringsuche. Es soll ein Virtex II Pro Board verwendet werden. Eine Konkrete Frage habe ich jetzt schon: Nach ersten Recherchen fand ich heraus, dass häufig der PCI-Bus als Schnittstelle verwendet wird. Muss ich die ganze PCI-Kommunikation Programmieren, oder werden hierfür Module vom Hersteller bereitgestellt? Ich würde mich über eine Einschätzung oder erste Tipps von euch freuen. Mfg M.S.
M. S. schrieb: > Nach ersten Recherchen fand > ich heraus, dass häufig der PCI-Bus als Schnittstelle verwendet wird. Diese Daten dürften wohl schon etwas älter sein, denn aktuell sollte da eher PCIe stehen... > Muss ich die ganze PCI-Kommunikation Programmieren, oder werden hierfür > Module vom Hersteller bereitgestellt? Jain. Du bekommst IP-Cores, die idR. einen Teil des Protokolls abdecken. Eine andere Frage ist: was kostet das? Denn wenn jemand für dich eine Arbeit erledigt hat, will er evtl. auch was dafür... Mir gibt allerdings sehr zu denken, dass der Virtex-II recht alt und ganz unten auf der "legacy devices" Liste steht: http://www.xilinx.com/products/boards_kits/legacy_virtex.htm M. S. schrieb: > Als absoluter Neuling ... würde ich gerne eure Meinung dazu hören, > ob dieses Projekt im Rahmen einer Masterarbeit (0,5 Jahre > Vollzeit) zu realisieren ist. Wieviel Zeit davon brauchst du für die Doku? Wenn du vorher noch nie was mit FPGAs gemacht hast, dann brauchst du zwingend aktive Unterstützung, denn sonnst fliegst du in jeder Kurve (und da gibt es viele) raus. Und wenn dann das kommt: > Eine genauere Anforderungsspezifikation gibt es nicht. Das ist bedenklich... Kennt sich der Prof sehr gut mit diesen Aufgaben aus? (PC-Interface, FPGA-Beschreibung) Kann er dir da helfen? Sind schon (ähnliche) Vorarbeiten erledigt worden? Welche Messgeräte (Oszi, LogikAnalyzer...) hast du? Kannst du die Dinger bedienen?
Ganz ehrlich: Ist im Rahmen einer Masterarbeit nicht schaffbar, wenn man noch nie was mit FPGAs gemacht hat. Wenn man einige Erfahrung hat, eventuell, aber auch dann müsste sinnvollerweise die Umgebung stimmen, vor allem müsste die Kommunikation schon fix und fertig einsetzbar sein. Mit einem Virtex II pro würd ich erst mal gar nix mehr anfangen. Der wird schon seit ein paar Jahren nicht mehr von der Xilinx Design Software unterstützt, du müsstest eine sehr alte Version nehmen. Das ist alles Murks und viel zu viel Einarbeitungszeit. Mein Rat: Such dir ein anderes Thema. Noch ein Rat für die schriftliche Arbeit dann: Lass das sogenannte Deppen-Apostroph weg. Im Deutschen wird das Mehrzahl-s ohne Apostroph angehängt.
TU Delft : polymorphic instruction set computer -> googlen Damit bekommst du schonmal viel Einblick. Machbar ist eine tatsächliche Unterstützung (Geschwindigkeitsgewinn) in der Zeit kaum. Man kann (ohne Erfahrung mit FPGAs) vielleicht erreichen diverse Probleme mal auf PC und mal auf FPGA zu rechnen und dann zu vergleichen. Mit Synchronisation zwischen PC und FPGA denke ich nicht das es klappt in der Zeit. Bedenke auch das ein FPGA vor allem dort viel nützt, wo große Datenmengen parallel bearbeitet werden können. Das funktioniert bei einer Kommunikation mit dem PC aber schlecht, weil die Datenlinks oft zu lahm sind. Bsp: schon eine simple Berechnung von 8 Bit pro Takt und 100Mhz führt zu 100Mbyte an Datenaufkommen pro Sekunde. D.h. wiederum das PCI schon ohne Parallelisierung am Ende ist. Gibt sinnvolle Aufgaben (z.b. Sortieren) wo man problemlos auf mehrere GByte/s käme die ein FPGA bewältigen kann. Die nimmt einem der PC aber weder ab, noch kann er sie liefern. Besser also nicht verennen. Wenn du keine Erfahrung hast auf dem Gebiet, dann such dir lieber was leichteres. Mal ganz davon abgesehen das dieses Thema nun auch kein Neuland ist und dein Ergebnis weit hinter den bereits vor Jahren gezeigten Ergebnissen zurückbleiben kann.
Vielen Dank für die schnellen Antworten. Aus den bisherigen Beiträgen kann ich ersehen, dass die Tendenz dahin geht, dass es sich bei dem Thema um einen ganz schönen Brocken handeln könnte. Da bereits die Frage auftrat, ob ich mit einem Oszi umgehen kann, werde ich mal ausführlicher: Ja. Die Masterarbeit ist die Abschlussarbeit meines Zweitstudiums. Ich bin bereits Dipl.-Ing und habe das jetzige Studium eher als Hobby begonnen. Da es mir bei diesem Studium in erster Linie nicht um den Abschluss, sondern darum geht, dass ich mein Wissen erweitern kann, möchte ich mich halt in meiner Abschlussarbeit mit FPGAs beschäftigen. Das soll allerdings nicht bedeuten, dass ich mit einem zum Scheitern verurteilten Projekt beginnen möchte. Deshalb habe ich diesen Thread eröffnet um mal die Meinung von Profis zu hören. Iulius schrieb bereits, dass dieses Thema kein Neuland ist. Da ich auf diesem Gebiet bislang leider nicht an vorderster Front mitreden kann, fällt mir auch kein anderes Thema für die Masterarbeit ein. Das Thema war das einzige, welches mir der Prof. im Zusammenhang mit einem FPGA zur Auswahl überlies. Prinzipiell denke ich aber, dass er auch mit anderen Themen einverstanden wäre, wenn es um Parallelität, Echtzeit, Sicherheit.... gehen würde. Hat jemand von euch, die ihr euch damit beschäftigt, vielleicht eine andere Idee für eine Masterarbeit, bei der ich FPGA-Kentnisse sammeln könnte? Es sollte ein Thema sein, welches in sich abgeschlossen ist und welches ich zu Hause lösen kann. Die Links, die ihr angegeben habt werde ich mir heute abend in Ruhe anschauen. Ganz so schnell gebe ich den Koprozessor ja auch nicht auf.
Hi, in der letzten c't (Heft 26) wird ein 'Atom-Prozessor mit Altera-FPGA' kurz vorgestellt, also ein CPU mit 'angedocktem' FPGA. Vielleicht wäre das ja was, den mal zu untersuchen.
Horst schrieb: > ein 'Atom-Prozessor mit Altera-FPGA' > Vielleicht wäre das ja was, den mal zu untersuchen. Ja, das würde mich auch interessieren... ;-) M. S. schrieb: > Das Thema war das einzige, welches mir der Prof. im Zusammenhang > mit einem FPGA zur Auswahl überlies. Und wie sieht es mit Themen in der Industrie aus?
@Horst: Danke für den Tip. Ich werde später mal in die c't schauen. Hört sich interessant an. @Lothar Miller: Grundsätzlich hätte ich keine Schwierigkeiten damit ein Thema aus der Industrie zu bearbeiten, würde es allerdings vorerst vermeiden wollen, da ich Entwicklungsingenieur bin und es nicht so aussehen sollte, als würde ich für ein konkurrierendes Unternehmen arbeiten. Da mein Zweitstudium meiner Firma nicht bekannt ist und ich die rechtlichen Konsequenzen hier nicht Einschätzen kann, versuche ich lieber ein eigenständiges Thema an der Universität zu bearbeiten.
Hi, von wegen PCI-Schnittstelle: sicherlich kann man einen FPGA über PCI an die CPU anbinden, jedoch wird ein echter Co-Prozessor eher direkter an den Prozessor angeschlossen, z.B. Wishbone. Dürfte aber bei Intel X86 schwierig werden. Ich würde sagen, dass man bei einem Co-Prozessor wie z.B. einer Floating-Point-Unit ca. 1 Jahr einrechnen müsste inkl. allem und guter Unterstützung. (Erfahrungswert aus der eigenen Diplomarbeit mit VHDL und Prozessordesign)
M. S. schrieb: > Eine genauere Anforderungsspezifikation gibt es nicht. Es soll sich > allerdings um ein Analogon zu z.B. einem Gleitkomma-Koprozessor handeln, > wobei die tatsächliche Funktion programmierbar sein soll. Ich würde mir mal Gedanken darüber machen ob es überhaupt eine sinnvolle Anwendung gibt für die ein über langsames PCI angebundenes Mittelklasse-FPGA irgend einen Vorteil gegenüber CPU oder GPU hat.
M. S. schrieb: > Da mein Zweitstudium meiner Firma nicht bekannt ist... M. S. schrieb: > Rahmen einer Masterarbeit (0,5 Jahre Vollzeit) Ich sehe da ernsthafte zeitliche Probleme auf dich zukommen, denn du bist ja z.B. 9 Std. in der Firma, dann solltest du noch ca. 6 Stunden schlafen, und "Vollzeit" bei der Masterarbeit bedeutet >8 Stunden Zeitaufwand/Tag... Das wird hart.
Zum Atom + Altera FPGA: Irgendwie ist das Ganze nicht das, was man sich darunter so vorstellt. Zum einem läuft ein Atom mit nur 600 MHz, zum anderen ist das FPGA über PCIe angebunden (ich glaube sogar nur ein Link). Wie groß das FPGA ist, kann ich jetzt nicht sagen, aber das Ganze hätte Altera auch sparen können :-/ (meine Meinung). Für embedded würde ich sowas nicht nehmen, da gibt es bessere Sachen. Ich stimme Andreas zu, es gibt kaum bis gar keine sinnvolle Anwendung für ein FPGA als Coprocessor (über PCI/PCIe). Das FPGA ist meist Schnittstelle, um irgendwas anzusteuern und nicht um die CPU-Zeit zu sparen. Ich bin selber schon länger auf der Suche nach einer Killer-Applikation für das FPGA ;-) Grüße, Kest
Lothar Miller schrieb: > Ich sehe da ernsthafte zeitliche Probleme auf dich zukommen, denn du > bist ja z.B. 9 Std. in der Firma, dann solltest du noch ca. 6 Stunden > schlafen, und "Vollzeit" bei der Masterarbeit bedeutet >8 Stunden > Zeitaufwand/Tag... > Das wird hart. Mit 0,5 Jahre Vollzeit wollte ich lediglich den Umfang angeben. Ich mache das Studium in Teilzeit, habe also ein Jahr Zeit. Sicherlich ist auch das eine hohe zusätzliche Belastung, aber ich kann damit ziemlich gut umgehen. Ich habe die 4 bisher benötigten Module in den letzten 2 Jahren gut bearbeiten können. Sicherlich hätte ich mir auch (für mich) einfachere Themen für die Masterarbeit aussuchen können, aber viele der anderen angebotenen Themen sind ziemlich verwandt mit Projekten die ich in der Firma bearbeite. Würde es mir nur um eine gute Note gehen, hätte ich etwas davon auswählen können, da ich aber meinen Wissensstand erweitern möchte, denke ich, dass FPGAs für mich die richtige Wahl sind.
Hallo M.S., ich persönlich finde z.B. FPGAs mit integriertem Cortex-M3 Kern sehr spannend, siehe: http://www.actel.com/products/smartfusion/default.aspx mal ganz nach unten scrollen. Dort kann man seine Mikrocontroller- Kenntnisse mit denen eines FPGA's erweitern. Mikrocontroller haben ja immer zuwenig Uarts oder PWM-Ausgänge. Da lassen sich bestimmt noch andere interessante Aufgebenfelder finden. Viele Grüße
Vor einigen Jahr(zehnt)en wäre eine aktive Unterstützung für die PC-CPU noch sehr sinnvoll gewesen - heute sind die jedoch so schnell und verfügen auch über DSP-ähnliche Befehle, dass der Anspruch einen Geschwindigkeitsvorteil zu erlangen sicher nicht erreichbar ist. In einer Diplomarbeit muss man aber sicher nicht immer solche High-End Leistungen vollbringen, ich denke da geht es auch eher um das Prinzip. Wovon ich an Deiner Stelle die Finger lassen würde, sind die Interfaces PCI PCI-e USB o.ä. Die Komplexität ist hoch, Debuggen wird deutlich aufwendiger (ohne gute Tools fast unlösbar) und teilweise müssen spezielle Treiber mit entwickelt oder verwendet werden. Da würde ich dir eher ein autarkes System mit FPGA und uC vorschlagen. Kannst z.B. ein nettes Multi-Core-System mit vielen kleinen uC Cores in einem FPGA aufbauen, die über entsprechende Busse miteinander kommunizieren können.
Wenn man so ein Projekt mal nicht aus Sicht des Studenten, sondern vom Standpunkt der Sinnhaftigkeit aus betrachtet, dann ist PCI ziemlicher Käse, weil am Absterben, und allenfalls PCI-Express brauchbar. Wirklich sinnvoll wäre aber erst Hypertransport (AMD) oder QPI (Intel).
Michael O. schrieb: > Kannst z.B. ein nettes Multi-Core-System mit vielen kleinen uC Cores in > einem FPGA aufbauen, die über entsprechende Busse miteinander > kommunizieren können. An so etwas habe ich auch schon gedacht. Damit wäre ich vom PC unabhängig und müsste mich nicht um die PC-Kommunikationsschnittstellen kümmern. Meine Idee war es auf einem FPGA zwei Softcores zu implementieren und auf beiden diversitäre Software zu Schutz vor Soft-Errors laufen zu lassen. Hab aber im Internet schon gefunden, dass es so etwas in der Art auch schon gibt. Hättest du noch eine andere Idee bzw.einen andren Anwendungsfall für ein Multi-Core-System? Eine Idee die ich noch hatte, wäre es, für jede Task, die ich auf einem Mikrocontroller ausführen würde, auf einem FPGA einen Softcore dynamisch zu erstellen und diese Task darauf auszuführen. Somit würden alle Tasks tatsächlich parallel ausgeführt. Ich glaube aber, dass das entwickeln eines solchen Systems wieder den Rahmen sprengen würde, oder? Irgendwie glaube ich, dass der PC-Koprozessor für mich gestorben ist. Ich schaue mir jetzt die geposteten Links an und werde mich dann wohl entscheiden.
> Hab aber im Internet schon gefunden, dass > es so etwas in der Art auch schon gibt. Na und? Einzigartigkeit ist bei Masterarbeiten nicht gefordert, lässt sich bei Doktorarbeiten ja schon nur mit Mühe und Tricks machen (Nische einer Nische unter speziellen Vorausetzungen...). Wenn der Lehrstuhl zB. keine/wenig Erfahrung mit FPGAs hat, aber bekommen will, wäre ein kleineres System (Softcores mit etwas spezieller Peripherie mit Lehrstuhlbezug) gerade richtig, für nachfolgende Arbeiten mal die gesamte SW/HW-Chain durchzuarbeiten und schön zu dokumentieren. Was "wissenschaftliches" fällt dann aber eigentlich auch immer ab, zB. Performancemessungen, Optimierungen, etc. Ganz persönliche Meinung: Versuche soweit wie möglich, "Black Boxes" aka IP-Cores zu vermeiden. Den Ärger, den man sich da mit deren Macken einfängt, für die man nichts kann und oft auch erst lange bei sich selbst sucht, ist ein paar Magengeschwüre wert. Soft-CPU-Cores ala Microblaze gehen grade noch, alles drüber hinaus (DDR*-Memory-Controller, PCI*-Controller, etc.) hat extrem viele Fallen. Am besten ist es IMO eigentlich, gleich alles selbst zu machen.
Georg A. schrieb: > (DDR*-Memory-Controller, PCI*-Controller, etc.) hat extrem viele Fallen. > Am besten ist es IMO eigentlich, gleich alles selbst zu machen. Nur dass man DDR/PCIe nicht selbst machen will geschweige denn ohne Erfahrung kann. Aber mit dem Altera-Zeug habe ich nur ca. 4 Tage gebraucht um mit dem DDR-RAM vernünftig arbeiten zu können
Hallo Ich kann jetzt mal aus meiner Erfahrung sprechen. Derzeit arbeite ich auch an meiner Masterarbeit (Virtex-5 FX30T + DDR2 + Ethernet + 7 RS232 + 16 SPI + SD Karte + Linux portieren). Begonnen hab ich mit der Arbeit im März und hatte absolut keine Vorkenntnisse. Nach einer langen Einlesezeit und durchstöbern vieler Referenzedesigns bin ich nun am fertigstellen der Platine. Also mit einem halben Jahr wird es schon sehr knapp würde ich sagen. Aber machs einfach. Die Erfahrung die du dabei sammelst ist ein wahnsinn. lg
Herbert schrieb: > (Virtex-5 FX30T + DDR2 + Ethernet + 7 RS232 + 16 SPI + SD Karte + Linux portieren). ... 9 Monate später ... > bin ich nun am fertigstellen der Platine Hast Du bisher nur die Platine? Oder schon fertig simulierte Designs + angepasste Software? Erfahrungsgemäß braucht man auch noch ein paar Testdesigns, bis die eigene Platine richtig funktioniert... Die Zeitdauer eines Projektes wird auch von der Erfahrung bestimmt, die im jeweiligen Unternehmen/Institut schon vorhanden und evtl. nutzbar ist. Duke
Duke Scarring schrieb: > Erfahrungsgemäß braucht man auch noch ein paar Testdesigns, bis die > eigene Platine richtig funktioniert... Und erfahrungsgemäß braucht man auch Erfahrung, um eine Platine mit den o.g. Anforderungen auf Anhieb zum Laufen zu bekommen... Da kann schon bei so einfachen Sachen wie dem Versorgungskonzept einiges schiefgehen.
>Eine genauere Anforderungsspezifikation gibt es nicht.
Dann Finger weg! Mach deine MA Arbeit lieber in einer Firma, das bring
dich erfahrungsmäßig und etvl. Beruflich weiter.
♪Geist schrieb: >>Eine genauere Anforderungsspezifikation gibt es nicht. > Dann Finger weg! Mach deine MA Arbeit lieber in einer Firma, das bring > dich erfahrungsmäßig und etvl. Beruflich weiter. Das geht leider nicht, weil sich meine Firma nicht mit diesem Themengebiet beschäftigt. Eine andere Firma scheidet aus, weil mein Chef da mit Sicherheit etwas dagegen haben wird.
Ein SDR wehre zum Beispiel etwas für einen FPGA. AM Eingang einen schnellen ADC, der den gewünschten Frequenzbereich direkt abtasten kann. (Verstärker und Filter müssen natürlich auch noch vor.) Schaue mal beim HPSDR-Projekt. http://openhpsdr.org/ Nächste Ausbaustufe mit mehreren parametrierbaren Radios im FPGA. http://www.websdr.org/ MfG Holger
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.