www.mikrocontroller.net

Forum: FPGA, VHDL & Co. CPLD-Makrozellen


Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin absoluter Anfänger auf dem Gebiet der Programmierbaren Logik.

In welchen Zusammenhang stehen bei einem CPLD Makrozellen und zur
Verfügung stehende I/Os ? Geht jeder I/O auf eine Makrozelle ?

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt drauf an. Normalerweise schon. Aber es können auch mehr
Makrozellen sein, als IO (deutlich mehr).
Eigentlich gibt es keinen direkten Zusammenhang

Kest

Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würde mich auch interessieren.
Wie ist eine Makrozelle bei einem CPLD aufgebaut?
Kann das jemand mit einfach Worten beschreiben?

Vielleicht noch eine Zusatzfrage:
Wann nimmt man in der Regel ein FPGA anstatt ein CPLD und umgekehrt?

Danke für "einfache" Erklärungen.

Mark

Autor: J. Z. (zennehoy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mark: "Wie ist eine Makrozelle bei einem CPLD aufgebaut?"
Das kann sich je nach Chip ziemlich aendern, am besten schaut Ihr euch
mal die Dokumentation zu einem CPLD an, da sollte es drin stehen. Im
grunde ist eine Makrozelle ein kleiner 1-Bit breiter RAM, der als
Lookup-Tabelle benutzt wird. Die Eingaenge entsprechen dann einer
Addresse (4-Bit ist glaub ich ueblich, also 2**4=16-Bit grosser Ram),
und im RAM ist an der stelle halt das resultierende Bit gespeichert.
Damit lassen sich saemtliche kombinatorische Schaltungen mit 4
Eingaengen gestallten. Hinter dem Ausgang befindet sich dann generell
ein Register. Dieses RAM-Register Paar ist grundausstattung, heufig
gibt's dann auch noch Vorrichtung um effizient Ripple-Carry-Adders zu
implementieren.

"Wann nimmt man in der Regel ein FPGA anstatt ein CPLD und
umgekehrt?"
So weit ich weis hauptsaechlich wegen dem Groessenunterschied. Es gibt
viel groessere FPGAs als CPLDs. Ich glaube die ereichbare
Geschwindigkeit ist bei einem FPGA auch hoeher, da bin ich mir aber
nicht sicher.
CPLDs benutzt man wenn einem die Groesse reicht, da CPLDs Flash-basiert
sind und somit keinen externen Speicher zur Konfiguration benoetigen.
FPGAs muessen nach dem einschalten jedesmal neu Konfiguriert werden.

So, ich hoffe das habe ich alles richtig aus meinen Vorlesungen
behalten...
Zen

Autor: high_speed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zen Ehoy

Du hast es ein bisschen durcheinander gewürfelt.
Deine erste Erklärung bezog sich auf ein Logikelement eines FPGA.
Des weiteren beinhaltet jedes Logikelement FlipFlop Funktionalität.

Bei einem CPLD werden die logischen Verknüpfungen durch eine
Zweistufige (AND, OR) Logik gebildet. Die Eingänge der Makrozelle
werden mit UND verknüpft und dann über ODER auf die Ausgängen.
Bei einem CPLD hat man nur eine beschränkte Anzahl von FlipFlops.

http://de.wikipedia.org/wiki/FPGA
http://de.wikipedia.org/wiki/CPLD


Holger

Autor: J. Z. (zennehoy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, interesant. Ich hab noch nie mit CPLDs gearbeitet, dachte aber
nicht dass sie sich so stark von FPGAs unterscheiden. Ist gespeichert,
danke ;)
Zen

Autor: ejd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ausserdem werden die CPLDs durch die Pin-to-Pin-Zeit charakterisiert und
weniger durch die maximale Taktfrequenz charakterisiert wie die FPGAs.

D.h. die Verwendung der CPLDs ist dort, wo die Daten mit einer
begrenzten Verzögerung verarbeitet werden müssen, das sind meistens
spezialisierte Signalverarbeitungssysteme.

mfG,
                                 ejd

Autor: Stefan Helmert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

der Hauptunterschied zwischen FPGA und CPLD ist der, dass bei einem
CPLD alle Makrozellen an eine Verbindungsmatrix angeschlossen sind, die
aber ab einer bestimmten größe zu ineffizient und langsam wird. Also
gibt es noch den FPGA, wo sozusagen mehrere CPLDs drin sind die
miteinander verbunden sind, das gibt mehr Effizienz, aber weniger
flexibilität, da nicht mehr jede beliebige Makrozelle mit jeder
verbunden werden kann, sie muss dann über mehrere Umwege verlaufen. Das
ist eben wie beim Telefonnetz: ein paar Telefone können direkt übers
Netzwerk verbunden werden, aber bei millionen Telefonen gibt es
Ortsvermittlungsstellen die dann über Leitungen mit wieder
übergeordneten Stellen Verbunden sind...
Sind da alle Zwischenleitungen belegt kann keine Verbindung mehr
hergestellt werden.

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.