www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Abgrenzung zwischen GALs/CPLDs/FPGAs


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich lese mich gerade in die Thematik ein und mußte feststellen, daß die
Unterscheidung zwischen diesen Logikfamilien nur anhand der internen
Strukturen getroffen wird, aber über deren praktischen Unterschiede
wird wenig geschrieben.

Für welche Anwendungen nimmt man denn einen GAL, einen CPLD und wo
einen FPGA? Mir ist klar, daß die Übergänge fließend sind und daß man
z.B. eine CPU natürlich auch mit einzelnen TTL-ICs realisieren kann
(http://mycpu.mikrocontroller.net/). Mir war aber z.B. bis vor kurzem
nicht klar, daß man mit einem GAL auch einen Zähler realisieren kann.
Opencores.org kenne ich, aber diese Projekte sind weitgehend auf FPGAs
ausgelegt, auch wenn da in einigen Fällen auch ein CPLD gereicht
hätte.

Markus

Autor: Camel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CPLDs haben gröbere Strukturen als FPGAs, d.h. Makrozellen die wiederum
zu Logikblöcken zusammengefasst sind. Damit haben sie niedrigere und
vorhersagbare Timings und sind damit besser für schnelle Statemachines
und Adresskodierungen geeignet.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mich wohl etwas unklar ausgedrückt. Mir ist schon klar, worin
die internen Unterschiede liegen, aber ich kann daraus keine
Schlußfolgerungen bezüglich realen Projekten ziehen. Welchen Baustein
nimmt man denn typischerweise wofür?

Wenn man im Internet rumsucht, dann ist DIE Standardanwendung für CPLDs
der Adresszähler für Logikanalysatoren. Da muß es doch mehr sinnvolle
Anwendungsfälle geben?

Was ich suche ist eine (natürlich sehr grobe) Unterscheidung der
Logikfamilien bezüglich Anwendungsfall, nicht bezüglich interner
Strukturen.

Markus

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CPLDs sind da vorzuziehen, wo es auf geringste Stromaufnahme (Xilinx
Coolrunner) ankommt oder das sie sofort da sind und keine externen
Komponenten (EEPROM) benötigen.
Auch ist ein Software-Schutz einfacher, da das Programm ja nicht aus
einem externen EEPROM ausgelesen werden muß.

CPLDs nimmt man oft für Adreßdekodierung, bei FPGAs hätte man da das
Henne-Ei-Problem (CPU arbeitet nicht, weil der Adreßdekoder noch nicht
funktioniert, Adreßdekoder arbeitet nicht, weil die CPU ihn noch nicht
mit dem Programm gefüttert hat).


FPGAs sind bezüglich arithmetischer Funktionen effektiver, d.h. man
kann damit leichter CPU-Cores nachbilden.

Ansonsten sind die Unterschiede sehr gering, d.h. für die meisten
Anwendungen ist beides geeignet.


Ich benutze CPLDs z.B. als I2C-Interface, HPIB-Interface, schneller
Frequenzzähler, Adreßdekoder+SRAM-Interface+Bootloader (mit Truth-table
als BootPROM).


Peter

Autor: Jörn G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im FPGA hast du meistens Komponenten wie DualRAM oder Multiplier, die du
nicht erst aus Gattern basteln mußt, sondern die sofort hocheffektiv
arbeiten.

Was Camel geschrieben hat und du sofort abgetan ist schon ganz richtig
als Antwort auf deine Frage. Wenn dir das Prinzip wirklich klar ist,
was die internen Unterschiede ausmacht, dann sollte dir auch die
Anwendung klar sein!
Wenn nicht, dann prüf dein Wissen lieber nochmal.

Schnelle parallel Vorgänge, die nicht extrem komplex sind, sind gut für
FPGAs. Hast du sehr komplexe StatemMachines, oder benötigst du internen
RAM ist ein FPGA wohl besser.

Prinzipiell merkst du schon, was du brauchst, wenn du erst das Projekt
ein wenig geplant und strukturiert hast.

Manchmal braucht man auch beides.

Ich finde die Abgrenzung DSP <-> FPGA heutzutage eigentlich viel
schwieriger.

jörn

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.