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
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
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...
>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...
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ß
Newbie schrieb: > Ich dachte es muss einen ECHTEN großen Unterschied geben. Das war früher, am Ende des letzten Jahrtausends noch so... ;-)
>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.
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ß
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.