Forum: FPGA, VHDL & Co. CPLD-Makrozellen


von Harald (Gast)


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 ?

von Kest (Gast)


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

von Mark (Gast)


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

von J. Z. (zennehoy)


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

von high_speed (Gast)


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

von J. Z. (zennehoy)


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

von ejd (Gast)


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

von Stefan Helmert (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.