Forum: FPGA, VHDL & Co. FPGA / CPLD Unterschiede


von Newbie (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Forum.

Ich bin recht neu auf dem Gebiet der programmierbaren Logik, habe aber 
durchaus Kenntnisse in Digitaltechnik.

Meine erste Frage beim Einstieg in dieses Gebiet war nun, was ist der 
Unterschied zwischen FPGAs und CPLDs?

Ich weiß man kann das googlen, aber man findet immer nur irgendwelche 
Erklährungen die sagen „…FPGAs sind komplexer als CPLDs… “ oder es wird 
gesagt sie würden sich im Aufbau unterscheiden, Stichwort 
UND/ODER-Matrix. Das habe ich alles bereits gelesen und auch so 
hingenommen.

Jetzt stoße ich allerdings auf die CPLDs / FPGAs der Firma Altera (MAX 
II / Cyclone IV) und sehe in deren Datenblättern den internen Aufbau 
(siehe Bilder).



Also für mich ist kein Unterschied zwischen dem Aufbau eines CPLD und 
eines FPGA erkennbar.

Also wo liegt er??

Danke
Newbie

von pacer (Gast)


Lesenswert?


von Vanilla (Gast)


Lesenswert?

Hallo Newbie,

das Du keinen Unterschied findest liegt daran dass es keinen gibt...

Grundsaetzlich ist jeder FPGA (Field Programmable Gate Array) ein 
CPLD(Complex Programmable Logic Device).

In der Vergangenheit waren CPLDs Fortsetzungen der PAL/GAL Strukturen 
welche auf (breite) (N)AND Arrays aufbauten und an deren Ende (wenige) 
Flipflops sassen.
FPGAs wiederum besassen kleine Logic-Units welche jede Kombinatorik aus 
vier Eingaengen abbilden konnten plus ein nachgeschaltetes FIFO.
In juengerer Vergangenheit verschwimmen diese Grenzen und es kommen 
vermehrt CPLDs auf dem Markt welche intern FPGA Strukturen besitzen und 
sich Ihre Konfiguration nach dem PowerUp durch ein internes (Flash)ROM 
booten.

Gruss

Vanilla

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Hier ist der Knackpunkt:
1
At half the cost of competing CPLDs, MAX II devices are based on a new 
2
look-up table (LUT)-based architecture ...
aus http://www.altera.com/literature/pr/mx2_backgrounder.pdf
Kurz: das Ding ist eigentlich ein FPGA, Altera will mit dem Begriff CPLD 
nur die Einstiegs- oder Umstiegs-Hemmschwelle senken. Lattice hat das 
mit dem MachXO auch getan...

von Vanilla (Gast)


Lesenswert?

>plus ein nachgeschaltetes FIFO.
Fifo ist hier natuerlich Quatsch, der versierte Leser hat erkannt das 
auch hier ein FF gemeint war.

Lothar hat recht, das Verwischen der Grenzen zwischen CPLDs und FPGAs 
ist vor allem Marketingleuten geschuldet, welche die Hemmschwelle beim 
Einsatz von FPGAs senken soll.

Umgekehrt gehts natuerlich auch:

Xilinx und Lattice haben in Ihren FPGA Familien auch Bausteine mit 
internen Flash was dann ja wieder auf ein CPLD deuten wuerde...

von Newbie (Gast)


Lesenswert?

Vielen Dank an alle! Das die Grenzen so fließend sind war mir nicht 
bewusst. Ich dachte es muss einen ECHTEN großen Unterschied geben.

Gruß

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Newbie schrieb:
> Ich dachte es muss einen ECHTEN großen Unterschied geben.
Das war früher, am Ende des letzten Jahrtausends noch so... ;-)

von MCUA (Gast)


Lesenswert?

>Das die Grenzen so fließend sind war mir nichtbewusst.
>Ich dachte es muss einen ECHTEN großen Unterschied geben.
Den gibt es definitiv:
CPLDs haben Makrozellen (und normalerweise Konfig-Flash).
   sind also viel mächtiger
FPGAs haben LUTs , sind feinkörniger, (und normalerweise Konfig-SRAM)
   zunehmend gibts die aber auch mit Flash.

Zunehmend werden jedoch mehr FPGAs eingesetzt, weil man mehr Logic mit 
weniger Silicium-fläche unterbringen kann (die aber viel mehr 
Logic-Ebenen als bei CPLDs erfordert).
Oft werden nun kleine FPGAs als CPLDs "vermarktet", um bestehende Kunden 
v. CPLD zu gewinnen.
Aber der Unterschied bleibt! auch wenn die Hersteller was anderes 
vorgaukeln.
Manche Hersteller sagen bei ihren "CPLDs", dass die Anzahl äquivalenter 
Makrozelle nur etwas weniger ist als die Anzahl der LEs, was Quatsch 
ist. Denn es hängt immer von der Anwendung ab. Wollte man eine complette 
MACzelle nachbauen, bräuchte man etliche LEs dafür.
Die schnellsten (echten) CPLDs hat m. M. nach Lattice, mit bis zu 
400/500 MHz f. 32Bit-Counter.

von Newbie (Gast)


Lesenswert?

MCUA schrieb:
> CPLDs haben Makrozellen (und normalerweise Konfig-Flash).
>    sind also viel mächtiger
> FPGAs haben LUTs , sind feinkörniger, (und normalerweise Konfig-SRAM)
>    zunehmend gibts die aber auch mit Flash.

Schaut man sich aber die Datenblätter des MAX II und des Cyclone IV an, 
dann wird dort der Aufbau der internen Logikelemente (Makrozellen, LEs, 
oder wie es die Hersteller eben gerade nennen...) dargestellt. Und der 
ist bei beiden absolut identisch.
Sie scheinen also auch aus den gleichen Grundbausteinen aufgebaut zu 
sein. Wo soll also da der Unterschied liegen?

Gruß

von Christian R. (supachris)


Lesenswert?

Naja, zumindest bei Xilinx ist der Hauptunterschied, dass CPLDs 
riesengroße Produktterme zulassen, bei den FPGAs pro Logikebene aber nur 
4 oder 6 Eingänge möglich sind.

Aus dem CoolRunner II Datenblatt (XC2C256):

This device consists of sixteen Function Blocks inter-connected
by a low power Advanced Interconnect Matrix (AIM).
The AIM feeds 40 true and complement inputs to each
Function Block. The Function Blocks consist of a 40 by 56
P-term PLA and 16 macrocells which contain numerous
configuration bits that allow for combinational or registered
modes of operation.

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.