hallo! Ich bin Anfänger was Elektronik betrifft... Ich überlege zur Zeit, ob ich mich in Zukunft mit FPGAs oder doch lieber mit Mikrocontrollern wie Arduino beschäftigen soll, was ja leichter ist. Ich frage mich irgendwie warum in der Industrie überhaupt FPGA benutzt wird oder ob es nicht schon längst abgelöst worden ist von Mikrocontrollern die man in modernen Programmiersprachen wie C programmieren kann???
Guten Abend, ich hoffe du kannst dir die Frage selber beantworten: Kannst du dir vorstellen, dass du in einem Mikrocontroller mit 40-100G Ethernet noch arbeiten kannst? In Echtzeit Filme schneiden, komprimieren, Mischen. Oder du brauchst ein bestimmtes Signal mit einem sehr genauen Timing - im µC keine Chance. Und und und Überall wo wirklich viel gleichzeitig passieren muss, hoher Datendurchsatz ist (also in Gigabyte-Bereich) da stößt man mit µC, CPU etc sehr schnell an die Grenzen. Aber ich kann dir versichern, wenn du dich mal mit FPGAs auseinandersetzt, dann wirst du merken, dass die Dinger echt praktisch sind und irgendwann sind sie nicht mehr wegzudenken. Aber für den Einstieg sind die Dinger komplizierter und du sollst dich auf jeden Fall mal mit den Grundlagen der Digitaltechnik vertraut machen! Gute Nacht ;-)
Wie mein Vorredner schon sagte. Ein FPGA ist ein Stueck parallele Logik. Ein FPGA nimmt man ueblicherweise als Zusatz zu einem Controller, wenn dieser die Geschwindigkit nicht mehr bringt. Bei einem hinreichend grossen FPGA hat dieser Controller eben auch gleich Platz im FPGA. Der Controller im FPGA ist nicht irgendwas, sondern der Controller fuer den man eh schon die Entwicklungswerkzeuge hat, und fuer den ein Core existiert. Es gibt nicht von allen Controllern Cores, denn der Hersteller muesste die Lizenzen freigeben. Standard ist zB ein 8051, der wurde ueber 20 Jahre lang vom ersteller ausgelutscht, und dann weiter lizenziert. Es ist leider nicht so, dass der FPGA Compiler einen an das Problem angepassten Core giessen wuerde. Als Anfaenger wuerde ich daher einen externen Controller den man kennt vorziehen, ausser man arbeitet eh schon mit den 8051. Mein neustes Projekt, ein 4 fach DDS, erzeugt zwei Frequenzen im Bereich < 20MHz jeweils in Quadratur. Dazu verwende ich einen AVR, ein kleineres FPGA und 4 externe 120MHz DAC.
Nicht zu vergessen, dass man von den FPGA-Herstellern einen uC core in ihrer Programmiersoftware mitgeliefert bekommt, sozusagen einen "Soft-Core". Damit hast Du dann beides, FPGA und uC-Programmierung. Wenn Du dann etwas weiter bist, kannst du auch von Drittanbietern oder Open-Source cores in Deinen FPGA flashen. Da gibt es alles von 4 Bit bis 32 Bit-ARM, und von kostenlos bis Xtausend Euro. Aber von heute auf morgen geht das alles nicht, mit zwei bis drei Jahren Lernkurve musst Du schon rechnen. PSoC.
PSoC schrieb: > Damit hast Du dann beides, FPGA und uC-Programmierung. Dazu auch das hier: Beitrag "Softcore - was bringts?" Beitrag "Mikrocontroller (Softcore) in einem FPGA" Zurück zur Frage: > Ich überlege zur Zeit, ob ich mich in Zukunft mit FPGAs oder doch lieber > mit Mikrocontrollern wie Arduino beschäftigen soll, was ja leichter ist. Richtig. Für den Anfang wäre ein uC garantiert einfacher, weil du eher andere Anwender und damit Unterstützung bei Problemen finden wirst. > Ich frage mich irgendwie warum in der Industrie überhaupt FPGA benutzt > wird oder ob es nicht schon längst abgelöst worden ist von > Mikrocontrollern die man in modernen Programmiersprachen wie C > programmieren kann??? Es ist manchmal einfach eine Geshcwindigkeitsfrage. Mach mal mit einem "normalen" uC 100 Millionen Multiplikationen pro Sekunde... ;-) > modernen Programmiersprachen wie C Hmmmm, weißt du, wie alt C schon ist? VHDL ist gute 10 Jahre jünger... ;-)
Hallo Sven, über leg Dir was Du willst. Wenn Du einen Mikroprozessor entwickeln willst, ist der FPGA die erste Wahl. Wenn es Dir um Stuerungen geht, Lüfterstuerungen, Roboter, etc.. dürfte Arduino sinnvoller sein. Als Anfänger würde ich Dir sowieso das Arduino System empfehlen. Einfacher und billiger kommst Du nicht an den Start. Es gibt sehr viel Beispiele und Tutorials im Internet. Ein Buch ist kaum erforderlich. Die Entwicklungumgebung ist frei und einfach zu bedienen. Es gibt für fast alles fertige Bibliotheken (Temperatursensoren, LCD, Servos, etc.). Der Einstieg in VHDL ist etwas anspruchsvoller. Ich hab ein Spartan-3 Board von Digilent. Das ist schon der günstigste Einstieg in die Technik. VHDL ist schon etwas anders. Es wird hier kein Ablauf programmiert sondern das Verhalten einer Schaltung. Es läuft alles parallel und zeitgleich. Dementsprechend ist die Programmierung anfangs etwas gewöhnungsbedürftig. Ich fand auch die XILINX IDE am Anfang etwas umständlich. Ist sie aber nicht wirklich, eben nur etwas "anders". Man gewöhnt sich schnell dran. Mein Tipp: Fang mal mit Andruino an. Das führt schneller zum Erfolg, wenn Du programmieren lernen willst. Der Frustfaktor ist kleiner. Es lassen sich tolle Projekte lötfrei(!) erstellen. Vieles ist steckbar ausgeführt. Die Programmiererfahrungen kannst Du später einfach auf andere Mikrocontroller anwenden. Alternativ kann ich Dir noch das Launchpad von TI empfehlen. Richtig billig für den Einstieg. Allerdings schnell Lötkolben erforderlich. Limitierte IDE kostenlos erhältlich. Gruß Carsten
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.