Forum: FPGA, VHDL & Co. FPGA oder Arduino?


von sven (Gast)


Lesenswert?

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???

von FPGAler (Gast)


Lesenswert?

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 ;-)

von Purzel H. (hacky)


Lesenswert?

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.

von PSoC (Gast)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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... ;-)

von Carsten S. (casie)


Lesenswert?

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
Noch kein Account? Hier anmelden.