|
guthorst
102 Beiträge
 Stammgast
|
15-11-2007 12:01
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
|
|
Didi5
230 Beiträge
 Stammgast
|
16-11-2007 12:19
Die "blöde" Frage ist eine gute Frage. Ich bin auch an Info interessiert. Gruss Didi
|
|
avg
6 Beiträge
 Neuer Benutzer
|
19-11-2007 16:30
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
6 Beiträge
 Neuer Benutzer
|
19-11-2007 16:35
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
|