Das Elektor-Forum schließt seine Pforten (siehe auch http://www.elektormagazine.de/forum). Ab Freitag, den 01. März, ist es nicht mehr möglich, sich im Forum einzuloggen. Alle Inhalte des Forums bleiben jedoch bis Ende März noch sichtbar. Am 01. April wird das Forum schließlich komplett geschlossen.

Mal 'ne blöde Frage

Forum zum ELEKTOR-FPGA-Projekt

Postby guthorst » Thu Nov 15, 2007 12:00 am

Was macht man eigentlich mit FPGAs/CPLDs?

Ich kenne mich ja in elektronischer Schaltungsentwicklung - analog und digital - aus, bis hin zu Microcontrollern (8051, PIC, C167). Aber die "Programmierbare-Logik"-Themen sind an mir irgendwie vorbeigegangen (naja, PALs/GALs versteh ich ja noch - aber noch nie selbst angewendet). Könnte aber mal interessant sein, hier sein Know How zu erweitern.

Daher meine Fragen:
- Was sind typische Anwendungsgebiete für FPGAs/CPLDs?
- Wo sind die Vorteile gegenüber Microcontrollern?
- Wo sind die Nachteile gegenüber Controllern?
- Wo sind deren Grenzen - wo lohnt sich definitiv kein Einsatz bzw. was können FPGAs nicht?
- Beispiel-Projekte? Auch für Einsteiger?

Wäre über eure Kommentare dankbar - bevor ich mich durch die ganzen Hersteller und seitenweise Datenblätter durchwälze.

Gruß,
Jochen
guthorst
 
Posts: 109
Joined: Fri Jan 03, 2014 1:53 pm

Postby didi5 » Fri Nov 16, 2007 12:00 am

Die "blöde" Frage ist eine gute Frage. Ich bin auch an Info interessiert.

Gruss Didi
didi5
 
Posts: 230
Joined: Fri Jan 03, 2014 1:48 pm

Postby avg » Mon Nov 19, 2007 12:00 am

Hallo,

dies ist ein Thema das in diversen Foren schon bis zum Abwinken durchgekaut wurde (z.B. http://www.mikrocontroller.net/topic/67044).
Aber hier nochmals eine Zusammenfassung der wichtigsten Unterschiede (so wie ich diese sehe).

FPGAs:
- beinhalten vereinfacht ausgedrückt nur Gatter und FlipFlops (ähnlich wie Gals nur sehr viel grösser).
Durch die Programmierung (Konfiguration) verschaltet man die Gatter und Flipflops untereinander sodass eine bestimmte Schaltung entsteht.
Hierbei können natürlich alle Gatter zu selben Zeit arbeiten, d.h. es läuft alles parallel (gleichzeitig) ab (dies ist auch der grösste Unterschied zu einem uC).

- Anwendung immer dort wo hohe Geschwindigkeit erforderlich ist (z.B. Signalverarbeitung mit hohen Sampleraten, Bildverarbeitung, ...)
- Die Vorteile gegenüber einem uC sollten jetzt einigermassen klar sein (=> dass der FPGA "echte Hardware" beinhaltet und dadurch viel schneller ist als ein Prozessor).
- Nachteile sind die viel komplexeren FPGA Entwurfsmethoden (VHDL, Synthese, Place & Route, ...), bedingt dadurch dass beim FPGA alle parallel geschieht.
- FPGAs können alles was ein Prozessor kann (und umgekehrt). Es ist nur eine Frage des Aufwands und der notwendigen Geschwindigkeit. FPGAs haben in der Regel nur digitale E/As. A/D-Wandler etc. sucht man dort vergebens (muss extern angeschlossen werden).
Man kann auch in einem FPGA einen Prozessor implementieren (z.B. beim Elektor FPGA-Kurs wurde ein 8051 Prozessor eingesetzt). Diesen nennt man dann Softcore (da er nicht als "echte Hardware" vorliegt.

uC:
Die Hardware ist fix, nur die Software ist variabel. Der uC arbeitet sein Programm sequentiell ab und kann immer nur einen Befehl zu einer Zeit ausführen (wenn es nicht gerade ein Pentium Prozessor o.ä. ist).

Zum hineinschnuppern ins Thema VHDL und FPGA wären ev. die ersten paar Teile vom Elektor VHDL-Kurs geeignet (auch wenn man kein Elektor FPGA-Board hat).

MfG.
Andreas
avg
 
Posts: 6
Joined: Fri Jan 03, 2014 2:02 pm

Postby avg » Mon Nov 19, 2007 12:00 am

Hallo,

dies ist ein Thema das in diversen Foren schon bis zum Abwinken durchgekaut wurde (z.B. http://www.mikrocontroller.net/topic/67044).
Aber hier nochmals eine Zusammenfassung der wichtigsten Unterschiede (so wie ich diese sehe).

FPGAs:
- beinhalten vereinfacht ausgedrückt nur Gatter und FlipFlops (ähnlich wie Gals nur sehr viel grösser).
Durch die Programmierung (Konfiguration) verschaltet man die Gatter und Flipflops untereinander sodass eine bestimmte Schaltung entsteht.
Hierbei können natürlich alle Gatter zu selben Zeit arbeiten, d.h. es läuft alles parallel (gleichzeitig) ab (dies ist auch der grösste Unterschied zu einem uC).

- Anwendung immer dort wo hohe Geschwindigkeit erforderlich ist (z.B. Signalverarbeitung mit hohen Sampleraten, Bildverarbeitung, ...)
- Die Vorteile gegenüber einem uC sollten jetzt einigermassen klar sein (=> dass der FPGA "echte Hardware" beinhaltet und dadurch viel schneller ist als ein Prozessor).
- Nachteile sind die viel komplexeren FPGA Entwurfsmethoden (VHDL, Synthese, Place & Route, ...), bedingt dadurch dass beim FPGA alle parallel geschieht.
- FPGAs können alles was ein Prozessor kann (und umgekehrt). Es ist nur eine Frage des Aufwands und der notwendigen Geschwindigkeit. FPGAs haben in der Regel nur digitale E/As. A/D-Wandler etc. sucht man dort vergebens (muss extern angeschlossen werden).
Man kann auch in einem FPGA einen Prozessor implementieren (z.B. beim Elektor FPGA-Kurs wurde ein 8051 Prozessor eingesetzt). Diesen nennt man dann Softcore (da er nicht als "echte Hardware" vorliegt.

uC:
Die Hardware ist fix, nur die Software ist variabel. Der uC arbeitet sein Programm sequentiell ab und kann immer nur einen Befehl zu einer Zeit ausführen (wenn es nicht gerade ein Pentium Prozessor o.ä. ist).

Zum hineinschnuppern ins Thema VHDL und FPGA wären ev. die ersten paar Teile vom Elektor VHDL-Kurs geeignet (auch wenn man kein Elektor FPGA-Board hat).

MfG.
Andreas
avg
 
Posts: 6
Joined: Fri Jan 03, 2014 2:02 pm


Return to Rund um FPGAs

Who is online

Users browsing this forum: No registered users and 1 guest