Forum: FPGA, VHDL & Co. uC und programmierbare Logik


von TechInfo (Gast)


Lesenswert?

Hallo,

wäre nett wenn mir mal jemand die Unterschiede zwischen Prozessoren und 
programmierbarer Logik auflisten könnte (klar, der Proc holt sich sein 
Programm aus dem Speicher, CPLDs werden die Funktionen eingebrannt. 
darüber hinaus?).

Vor allem interessiert mich, in welchen Fällen in der Industrie jeweils 
CPLDs, FPGAs und uCs eingesetzt werden. Also welche Aufgabenbereiche 
werden von den einzelnen Komponenten abgedeckt?

Ist es für einen Einsteiger sinnvoll, hobbymäßig mit programmierbarer 
Logik zu experimentieren, oder sollte ich mir lieber ein uC-Board 
kaufen?

Vielen Dank.

von F01Qx (Gast)


Lesenswert?

Mikrocontroller arbeiten alle Befehle sequentiell ab, in FPGAs/CPLDs 
können viele Funktionen parallel ablaufen.

In der Industrie werden hauptsächlich Mikrocontroller eingesetzt. Für 
die meisten Anwendungen (einfache bis mittelkomplexe Steuerungen) reicht 
ein (günstiger) Mikrocontroller aus, wobei bei Anwendungen, bei denen in 
sehr kurzer Zeit sehr große Datenmengen verarbeitet werden müssen und 
bei denen sich die Fertigung von ASICs noch nicht lohnt, FPGAs 
eingesetzt werden. Zur Filterung von Datenströmen (besonders 
Audiodaten), die nur schlecht parallel verarbeitet werden können, werden 
DSPs eingesetzt. CPLDs werden eher als "Hilfslogik" für Mikrocontroller 
und -prozessoren eingesetzt.

Für den Einstieg ist meiner Meinung nach ein Mikrocontroller (z.B AVR, 
ein ATMega8 reicht für den Anfang; das Board kann man sich selber bauen, 
wenn man den AVR im DIP-Gehäuse nimmt) am besten geeignet, da er 
wesentlich günstiger als ein brauchbares FPGA Board ist. Außerdem ist es 
dann nicht so ärgerlich, wenn man das Bauteil gegrillt hat (was 
schneller passiert, als man möchte).

Von der Programmierung gesehen sind uCs (sequentiell) und FPGAs 
(parallel) sehr unterschiedlich. Bei uCs ist es vorteilhaft, wenn man 
schon Programme für den PC geschrieben hat, für FPGAs sollte man eher 
schon mit Digitaltechnik (TTL-Gatter) gearbeitet haben.

von TechInfo (Gast)


Lesenswert?

Hallo,

besten Dank. Habe sowohl Ahnung von PC-Programmierung (Assembler, C) als 
auch Digitaltechnik, aber denke nach deinen Ausführungen auch, dass für 
den Einstieg zu Hause der uC am Besten ist.

Hoffe ich bekomme so ein Board im Eigenbau hin, habe von analogem 
Schaltungsdesign wenig Ahnung und auch noch nicht gelötet.

von F01Qx (Gast)


Lesenswert?

Vom analogen her ist die gesamte AVR-Serie völlig unkritisch. Die AVRs 
sind da relativ anspruchslos und benötigen nur einen 100nF Kondensator 
zwischen VCC und GND (möglichst nah am Chip), einen 10k Widerstand 
(zwischen /RESET und VCC) und eine stabile Versorgungsspannung. Der 
ATMega8 benötigt für nicht timingkritische Aufgaben keinen Quarz. Als 
Programmieradapter ist ein STK200-kompatibler für den Parallelport 
relativ gut geeignet.
Die "großen" uCs (z.B. ARM9 mit externem Businterface) und uPs sowie die 
FPGAs sind vom analogen her wesentlich kritischer. Für den Anfang in der 
programmierbaren Logik reicht aber auch schon ein CPLD (z.B. XC9536XL).
Die Software zur AVR-Programmierung (WinAVR (Windows) und der 
AVR-GCC-Crosscompiler (Linux/MacOS)) und zur CPLD/FPGA-"Programmierung" 
(ein FPGA wird nicht programmiert, sondern konfiguriert!) (Xilinx ISE 
Webpack (Windows/Linux)) gibt es kostenlos.

Die AVRs eignen sich sehr gut zum Einstieg in die 
Mikrocontrollerprogrammierung, da sich der AVR wesentlich besser als 
z.B. der x86 in Assembler programmieren lässt, er hochsprachenoptimiert 
ist und keine "Altlasten" mit sich herumschleppen muss.
Lies dir zum Einstieg am besten die Artikel in der Artikelsammlung und 
das Datenblatt durch.

von Kritiker (Gast)


Lesenswert?

>In der Industrie werden hauptsächlich Mikrocontroller eingesetzt.

Der Sinn dieser Aussage erschließt sich mir nicht. Wo werden denn dann 
sonst hauptsächlich FPGAs eingesetzt?

Die Aussage ist aber auch qualitativ nicht sinnvoll, denn es wird (vor 
allem in der Industrie) das eingesettzt, was notwendig ist. Dort wo man 
FPGAs benötigt, werden sie eingesetzt. die sind nicht gegen CPUs 
auszutauschen, da das Band der Überlappung sehr schmal ist. Dein Satz 
hört sich aber so an, als seien das funktionsgleiche Bauelemente, wo man 
es sich aussuchen könnte, was man nimmt.

von F01Qx (Gast)


Lesenswert?

@Kritiker: Mit dieser Aussage meine ich die verbauten Mengen und die 
Anzahl der Anwendungen in denen sie verbaut werden.

von seventh_son (Gast)


Lesenswert?

@F01Qx

Interessant. Woran liegen diese Unterschiede des Beschaltungsaufwandes?

Dient der Kondensator beim kleinen AVR zur Spannungsstabilisierung?

von Rick Dangerus (Gast)


Lesenswert?

@TechInfo und alle Interessierten:

Hier was zum Reinlesen in die Materie, man sollte etwas Zeit mitbringen:

http://www.progforum.com/showthread.php?t=5643

Rick

von F01Qx (Gast)


Lesenswert?

@seventh_son:
Der Beschaltungsaufwand ist beim AVR gering, da er nur eine 
Versorgungsspannung benötigt und eine relativ geringe Taktfrequenz hat. 
Je höher die Taktfrequenzen sind, desto aufwändiger wird das 
Platinenlayout und die externe Beschaltung, weil die Stromversorgung 
sehr stabil sein muss, weil die Bauteile bei hohen Frequenzen (besonders 
FPGAs) während der Taktflanken eine sehr hohe Stromaufnahme haben (was 
über sehr viele Kondensatoren abgefangen werden muss, damit die Spannung 
nicht kurzzeitig zusammenbricht). Außerdem muss man bei der Verlegung 
der Signalpfade darauf achten, dass alle Signale eines Busses über 
gleich lange Leiterbahnen geführt werden, die bestimmte Abstände haben 
müssen.
Auch beim AVR dient der kleine Kondensator zur Stabilisierung der 
Versorgungsspannung.

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.