CPLD-Makrozellen

Gast #252172
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
#252173
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
Gast #252174
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
Gast #252176
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
Gast #252177
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren