Hallo, aktuell studiere ich Elektrotechnik im 2. Semester und habe demnächst Semesterferien. Da ich diese auch nutzen will, habe ich mir überlegt, entweder Python zu lernen oder in das Gebiet der FPGA einzusteigen. Ich habe bereits jede Menge Erfahrungen mit AVR-µC und dementsprechend C- und C++-Programmierung gemacht. Meine Frage wäre nun: Rentiert es sich, in die Welt der FPGA's einzutauchen oder sollte ich lieber Python lernen? Ich tendiere eher zum Bereich der Nachrichten- oder Automatisierungstechnik, weshalb ich mir gut vorstellen kann, beides für den späteren Beruf gebrauchen zu können. Soweit ich weiß, werden wir im Rahmen des Studiums Python und FPGA's nicht kennen lernen. Mit freundlichen Grüßen Ein Student
Du musst dich halt fragen was für dich den größeren Wert hat, Python wird eher dazu verwendet Programme, Scripte und Ähnliche für den Computer zu schreiben. FPGA's sind da natürlich was ganz anderes, aber auch nicht unpraktisch. Mit C und C++ wirst du bei FPGA's überhaupt nicht weiter kommen. Sich in die Thematik FPGA/CPLD und z.b. VHDL einzuarbeiten ist deutlich "Schwieriger" bzw. umfassender als Python zu lernen. Da du C und C++ schon kannst, brauchst du für Python nicht viel Lernen, daher würde ich an deiner Stelle mich in FPGA's/CPLD's einarbeiten. Python kannst du bestimmt auch nebenbei machen, ist sehr einfach. - Jan Henrik
Es ist beides hilfreich, ich würde Dir aber raten dich in die FPGA/CPLD Entwicklung einzuarbeiten. Eine weitere Programmiersprache kannst Du, wenn Du sie brauch, recht schnell nebenbei lernen. Bei FPGA/CPLD sieht das schon anders aus, da braucht man schon etwas Zeit und Sitzfleisch für. Jetzt hast Du das noch in den Semesterferien. Wenn Du erst mal Arbeitest wird es schwer werden die Zeit für FPGA Entwicklung zu finden. Achja, ich würde an Deiner Stelle erst mal mit einem billigen CPLD anfangen. Das ist einfacher, und wenn Du Blut geleckt hast lassen sich die Erfahrung 1:1 auf FPGA übertragen. Einen CPLD lässt sich auch problemlos in eigene Projekte integrieren. Wenn er erst mal programmiert ist, dann verbaut er sich wie ein ganz normaler Logic Baustein. Beim FPGA hast Du einen ungleich höheren Aufwand was Power-Supply, Flash und Programmierung angeht.
Nils P. schrieb: > Es ist beides hilfreich, ich würde Dir aber raten dich in die FPGA/CPLD ... > Aufwand was Power-Supply, Flash und Programmierung angeht. Kann ich nur zustimmen, Jedoch kann das MachXO2 von Lattice für den Anfang empfehlen, habe ich auch genommen. Auch wenn dieses kein CPLD, sondern ein FPGA ist. (Vermutlich musst du mit dem MachXO3 vergnügen, das MachXO2 ist schon älter)
Mein Rat entgegen dem der Vorschreiber: Fang mit FPGA an, CPLD kannst du später immer noch für spezielle Aufgaben, die ein kleines Logikgrab erfordern, verwenden. Solltest du keine Peripherie rumliegen haben (LEDs, Schalter, etc. usw.) würde ich zu nem billigen Eval-Board (Altera rd. 50€ in der Bucht inkl. Programmer) raten.
Elektrotechnik-Student schrieb: > Soweit ich weiß, werden wir im > Rahmen des Studiums Python und FPGA's nicht kennen lernen. Zumindest im Bachelor wirst du recht haben. WEnn, dann wird wohl in den meisten Hochschulen höchstens im Nebensatz mal ein paar Minuten erwähnt das es das gibt und was es ist. Im Master kann, je nach Vertiefung & Hochschule, FPGA natürlich dann schon ein wichtiges Thema sein. Was du aber bei PLD (egal ob FPGA oder CPLD) bedenken solltest ist das zu den Grundlagen -um es wirklich u verstehen was man da macht- eine Menge Grundlagenwissen "Digitaltechnik" gehört. Um mal nur ein paar Schlagworte zu nennen: Logische Verknüpfungen, Gattertypen, ZEitverhalten incl. Hazards/glitches, TEchnologiefamilien u.v.m. Erst wenn diese Grundlagen sicher sitzen macht es meiner Ansicht nach Sinn sich speziell mit den PLD zu beschäftigen. Egal welches Entwurfssprache (z.B VHDL) man für den Einstieg wählt. Diese Grundlagen WERDEN aber mit ziemlicher Sicherheit bei dir im Studium noch Thema sein. Auch solltest du bedenken das die Vorlesungsfreie Zeit zwar teilweise, aber nicht komplett, als Freizeit gedacht ist. Das hängt aber wieder von der Hochschule ab. In vielen Hochschulen werden ja die Klausuren vor und nach den Semesterferien geschrieben. Wenn das bei dir aus so ist, dann solltest du auf jeden Fall auch einige Zeit für die Vorbereitung dafür und die Nachbereitung der Fächer im letzten Semester die im nächsten Semester inhaltlich weitergeführt werden einplanen. Und natürlich auch die wirkliche Entspannung keinesfalls vergessen! Daher würde ICH sagen: Wenn du die oben genannten Vorkenntnisse zumindest teilweise bereits hast, z.b. durch langjährige Hobbytätigkeit, durch die Ausbildung oder weil es bereits Thema im Studium war, DANN würde ich den Vorschreibern zustimmen das eine Beschäftigung mit dem Thema PLD mehr Sinn macht als mit noch einer weiteren (zusätzlichen) Programmiersprache. Denn wenn man schon einie Programmiersprachen kennt lernt sich Phyton Bedarf recht schnell, während PLD ein ganz anderer Brocken sind. Sind die oben genannten Vorkenntnisse aber noch gar nicht vorhanden, dann würde ich auf jeden Fall vorher mal schauen ob diese nicht noch Thema im Studium werden. Und wenn dies so ist, dann den Einstieg in die PLD Welt auf den Zeitpunkt verschieben nach dem die Thema war. Denn sonnst verbringst du unte Umständen viel Zeit damit dir die Grundlagen beizubringen die du im nächsten Semester sowieso lernst und kommst erst gar nicht zu den interessanten Stellen. (unnützer Zeitaufwand) Oder du verzichtest auf die Grundlagen und wirst so zwangsläufig auf unterstem Bastlerniveau steckenbleiben. Beides für die weitere Zukunft nicht besonders sinnvoll. Da würde eine gründliche Beschäftigung mit Phyton vielleicht doch mehr bringen. Gruß Carsten
Moin, Elektrotechnik-Student schrieb: > Meine Frage wäre nun: Rentiert es sich, in die Welt der FPGA's > einzutauchen oder sollte ich lieber Python lernen? So eine Frage ist von dem Kaliber wie: Ich hab' Hunger. Soll ich lieber Pizza essen oder einen Doener? Wie soll man so eine Frage beantworten? Mein Sohn, du bist 42 Jahr' 'n Elektroingenieur: Mach das, an dem du Spass hast, was dich interessiert. Alles andere ist Mumpitz. Gruss WK
Entscheide dich für das Thema, wofür du bereits konkrete Anwendungen im Auge hast. Den es bringt meiner Meinung nach nicht allzu viel, ein Tutorial durchzuarbeiten und ein paar Übungsaufgaben dazu zu machen, wenn du das Gelernte nicht zeitnah für etwas Nützliches (und nicht allzu Triviales) anwenden kannst. Ich selber habe mich vor Jahren ebenfalls in Python und FPGA-Design eingearbeitet. Beides fand ich sehr spannend, aber für die FPGAs fehlten mir die konkreten Anwendungen. Ich habe mir dann irgendwelche Ideen aus den Fingern gesaugt, die über die Beispiele und Übungsaufgaben aus den Tutorials hinausgehen, und habe diese dann auch nacheinander erfolgreich realisiert. Das war's dann aber auch schon. Seitdem verstaubt das Eval- Board im Regal, und das Gelernte habe ich größtenteils wieder vergessen. Anders bei Python: Nach zwei oder drei Tagen hatte ich das Tutorial durchgearbeitet und sofort zig Ideen, welche nützlichen Tools ich damit realisieren könnte. Zudem konnte ich Python auch beruflich zum Skripten von Abläufen innerhalb bereits bestehender Softwaresysteme einsetzen. Seither nutze ich Python fast täglich für kleinere Einwegprogramme, schreibe darin aber hin und wieder auch komplexere Anwendungen. Sehr oft benutze ich es aber auch einfach nur als besseren Taschenrechner. Es ist für mich so eine Art Schweizer Taschenmesser, das ich nie wieder hergeben möchte. Stand heute: In Python programmieren kann ich ziemlich gut, FPGA-Design fast überhaupt nicht. Trotzdem war der FPGA-Exkurs nicht ganz umsonst, denn immerhin habe ich noch einen ganz guten Überblick darüber, was man mit einem FPGA anstellen kann und was nicht und wie bei der Entwicklung von Designs prinzipiell vorgegangen wird. Falls mir irgendwann noch noch eine sinnvolle FPGA-Anwendung über den Weg laufen sollte, werde ich sie (hoffentlich) sofort als solche erkennen und für die Realisierung deutlich weniger Zeit benötigen als wenn ich komplett bei Null anfangen müsste. Es kann bei dir natürlich auch genauso gut umgekehrt sein. Falls du immer noch nicht sicher bist, was du zuerst in Angriff nehmen solltest, dann fang mit Python an. In zwei Tagen kannst du dir ca. 80% bis 90% des Sprachumfangs erarbeiten und in zwei weiteren Tagen einen Überblick über die mitgelieferten Bibliotheksmodule verschaffen, die einen entscheidenden Anteil an der Mächtigkeit der Sprache haben. Danach kannst du unter Zuhilfenahme von Nachschlagewerken (Sprachreferenz, Dokumentation der Bibliotheksmodule) erste komplexere Anwendungen realisieren. Da die Semesterferien dann noch lange nicht vorbei sind, kannst du anschließend mit den FPGAs beginnen und schauen, wie weit du damit bis zum Ende der Ferien kommst. Wahrscheinlich wirst du damit noch nicht allzu viel Nützliches auf die Beine stellen, aber Erfolgserlebnisse und Aha-Effekte werden garantiert nicht ausbleiben. Viel Spaß damit :)
:
Bearbeitet durch Moderator
Carsten S. schrieb: > Auch solltest du bedenken das die Vorlesungsfreie Zeit zwar teilweise, > aber nicht komplett, als Freizeit gedacht ist. Ach was! Wusste ich noch gar nicht. Ich dachte, dass das zum Aufarbeiten des Lernstoffes, zur Vorbereitung der Klausuren und Ableisten der Praktika gedacht sei, aber das ist wohl falsch in der Freizeitgesellschaft. > Und natürlich auch die wirkliche Entspannung keinesfalls vergessen! Genau! Entspannt euch richtig! Das Leben wartet auf euch, bis ihr richtig fit seid und bereit, was zu tun. > Grundlagen Ich würde einen Studiegang nehmen, wo das richtig gelehrt wird, weil man im Selbststudium ineffektiv ist.
Vielen Dank für die tollen und hilfreichen Antworten. @Carsten Sch. Die Grundlagen der Digitaltechnik hatte ich bereits im 1. Semester, ich habe also bereits eine Ahnung von Gattern, Hazards und Co. Zudem habe ich im kommenden Semester Digitaltechnik II, es könnte also durchaus hilfreich sein, mit FPGA's Digitaltechnik I nochmal "aufzufrischen", um einen guten Start in die Vorlesungszeit zu garantieren ;). Bei uns sind aktuell (direkt nach den Vorlesungen) Prüfungen, ich habe also demnächst zwei Monate Freizeit. @Yalu Genau das habe ich mir auch gedacht, dass die Einarbeitung in FPGA's evtl. größtenteils umsonst war, während ich eben recht oft gehört habe, dass Python sehr viel hergenommen wird und auch Matlab viele Ähnlichkeiten zu Python aufweist. Ich werde mir in den nächsten Wochen nun Python anschauen und einarbeiten, und sobald ich damit "durch" bin und noch genug (Frei-)Zeit habe, werde ich mir eines der Altera Cyclons im Online-Auktionshaus bestellen. Noch einmal Vielen Dank für die Antworten!
Du kannst natuerlich auch beides verbinden, z.B. siehe hier: https://groups.google.com/forum/#!forum/fpgalink-users bzw. hier: https://github.com/makestuff/libfpgalink/wiki/FPGALink Eines der unterstuetzten FPGA-boards nehmen und ueber USB via Python mit dem Ding kommunizieren.
Moin, Python und FPGA zusammen geht sehr gut, ich würde sogar behaupten, dass das von der akademischen Seite her den besten Einstieg bietet. Das Modul heisst MyHDL und stellt Simulator und mächtiges Design/Verifikationstool. Die Synthese geht nur über VHDL/Verilog-Output. Ich wäre versucht zu sagen: VHDL war gestern (wenn ich dafür nicht auf die Mütze bekäme). Der Spruch gilt auch nur für den Einstieg. Spätestens für die Synthese muss man sich Coding-Prinzipien aneignen, die gleichermassen für Verilog und VHDL gelten, sonst kommt hinten nix funktionierendes raus. Ist etwa ähnlich wie mit Java vs. Assembler. Letzteren muss man auch immer anfassen, wenn man von Grund auf eine Plattform hochzieht, insofern muss man sich gelegentlich anschauen, was MyHDL ausgibt. D.h. der Workflow ist typischerweise: Funktionale Verifikation in MyHDL, schlussendlich findet die vollständige Simulation dann doch im HDL-Simulator deiner Wahl statt. Mit MyHDL sind auch Ansätze möglich, wo das Xilinx C->HDL-Zeug eher am Akzeptanzminimum rumkrebst, d.h. man kann auch später sehr komplexe Geschichten wie DSP-Pipelines für dedizierte Berechnungen relativ einfach hinschreiben, verifizieren und in synthetisierbares Low-Level-HDL ausgeben. Da gibt es IMHO nichts besseres, von System* und wie sie alle heissen kann man eigentlich die Finger lassen, wenn der lokale Standard (die Firma) nicht danach schreit. Da wie genannt Python das bessere Matlab/Labview/usw. sein kann, wenn du es entsprechend programmierst, kannst du schlussendlich furchtbar viel mit geringem Aufwand verketten, anstatt dich mit nervigen Aspekten schwerfälliger Computersprachen herumschlagen zu müssen. Grüsse, - Strubi
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.