Programmierbare Logikbausteine

Moin!

Ich hatte neulich mit einem Tutor an der Uni gesprochen, der mir etwas von speziellen Chips erzählt hat mit denen man Schaltungen, die man in VHDL beschrieben hat, „programmieren“ kann.
Kann mir jemand den Namen dieser Bausteine sagen, damit ich mich bei Google schlau machen kann?

Danke & Gruß
Mac

Hallo Mac,

Die Firmen sind Altera, Xilinx und Lattice.
Bei Xilinx findest du das meiste Material, Altera geht da mehr oder weniger seinen eigenen Weg mit AHDL, was ich persönlich besser finde, jedoch sind Xilinx-Chips billiger und leichter zu beschaffen.

Wenn du mal reinriechen willst, da gibt von beiden Firmen ein kostenloses Tool, bei Altera ist es das Baseline, bei Xilinx das Webpack.

So könnten Demoboards aussehen:
http://www.my-japan.de/electronics/xilinx.html

Die CPLDs basieren auf Flash-Technologie, die FPGAs auf SRAM, d.h., die CPLDs behalten ihre Info, die FPGAs benötigen entweder ein Konfigurations-PROM oder man lädt das Programm immer wieder rein.

Die CPLDs genügen für sehr kleine Anwendung, wie das synchronisieren von Signalen, EPROM-Emulatoren oder kleine Spielereien wie Lauflicht etc. Sie sind dabei recht schnell.
Die FPGAs sind für größere Projekte ohne weiteres geeignet (Audio-Video-verarbeitung, Encodierer usw.), sie lassen sich bis 200 MHz takten.

Steven

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi!

Die CPLDs basieren auf Flash-Technologie, die FPGAs auf SRAM,
d.h., die CPLDs behalten ihre Info, die FPGAs benötigen
entweder ein Konfigurations-PROM oder man lädt das Programm
immer wieder rein.

Mich stört diese Angabe „basiert auf Flash-Technolgie“ oder eben „basiert auf SRAM-Technologie“ immer ein bisschen, weil sie den unbedarften Einsteiger ziemlich in die Irre führen kann. Die Hauptfunktion von FPGAs und CPLDs ist ja _Logik_, und wenn man was von „basiert auf xxx-Technologie“ hört, denkt man als erstes an die Logik-Schaltungen. Und die haben nun wirklich nichts mit SRAM oder Flash zu tun.

Dass diese Logik-Elemente auch „eingestellt“, „verdrahtet“, also programmiert werden müssen, ist klar. Dafür kommen beim FPGA SRAM-Zellen, beim CPLD Flash-Zellen zum Einsatz.

Die CPLDs genügen für sehr kleine Anwendung, wie das
synchronisieren von Signalen, EPROM-Emulatoren oder kleine
Spielereien wie Lauflicht etc. Sie sind dabei recht schnell.
Die FPGAs sind für größere Projekte ohne weiteres geeignet
(Audio-Video-verarbeitung, Encodierer usw.), sie lassen sich
bis 200 MHz takten.

FPGAs sind jene Bausteine, die die Weiterentwicklung von Platinen-Technologien (Anzahl der Layer, Toleranzen der Fertigung, minimale Leiterbahnbreite und -abstände, …) am stärksten fordern. Das kommt daher, weil es vorallem bei den großen FPGAs, sehr große Gehäuse gibt. Xilinx hat zB ein Gehäuse mit 1517 Pins (!). Das ist ein Quadrat mit 39*39 Pins. (BGA-Gehäuse = Ball Grid Array). All die Anschlüsse müssen ja unter dem FPGA hervor geleitet werden -> viele Layer und dünne Leitungen.

FPGAs vergessen nach einem Strom-Ausfall ihre Funktion. Daher müssen sie vor jedem Einsatz programmiert werden. Dazu bekommen sie einen Bitstream reingeschickt (welches Bit welche Logik-Funktion bezeichnet ist strenges Geheimnis des jeweiligen Herstellers) der entweder aus einem eigenen Konfigurations-EPROM kommt oder auch von einem Mikrocontroller reingetaktet wird (die Routine dafür zu schreiben ist sehr einfach).

FPGAs können hoch komplexe Logik-Funktionen erledigen, ganze Prozessoren kann man aus ihnen machen, manche haben sogar (zusätzlich zu den Logik-Funktionen) eigene echte Prozessoren (in Silizium gegossen) eingebaut (zB Xilinx Virtex-Pro hat bis zu 4 (!) PowerPC on Chip). FPGAs haben auch eine Menge SRAM (sog. BlockRAM) eingebaut, das sich flexibel innerhalb der Logik nutzen lässt (also nicht für das Verdrahten verwendet wird). Mehrer hundert kBit bis einige MBit sind in den großen Modellen zu finden (die allerdings pro Stück so viel wie ein Mittelklassewagen kosten!). Es gibt auch noch verteilte Speicherelemente in jedem Logikelement, die als Register (im Sinne von D-Flip-Flop, nicht von EAX, EBX, …) verwendet werden.

CPLDs haben eher einfache Logik-Strukturen, können daher auch keine so komplexen Aufgaben erledigen. Sie haben insbesondere eine ganz genau vordefinierte innere Struktur durch die man eindeutig die Durchlaufzeit eines Signals vom Eingang zum Ausgang bestimmen kann. Das ist bei FPGAs je nach Ergebnis der Synthese unterschiedlich.

Es gibt auch recht günstige FPGAs (zB Xilinx Spartan-IIE, ca. € 15,-- aufwärts) die man auch bei RS Components oder Farnell bestellen kann. Die großen Modelle kriegt man aber nur sehr schwer zB bei NuHorizons.

Bye
Hansi

1 „Gefällt mir“

Warum erzählst du mir das?

Mich stört diese Angabe „basiert auf Flash-Technolgie“ oder
eben „basiert auf SRAM-Technologie“ immer ein bisschen, weil
sie den unbedarften Einsteiger ziemlich in die Irre führen
kann. Die Hauptfunktion von FPGAs und CPLDs ist ja _Logik_,

Es heist nunmal so: Based on Flash technology.

FPGAs sind jene Bausteine, die die Weiterentwicklung von
Platinen-Technologien (Anzahl der Layer, Toleranzen der
Fertigung, minimale Leiterbahnbreite und -abstände, …) am
stärksten fordern. Das kommt daher, weil es vorallem bei den

Nein, das ist heute Standard, keine Heruasforderung mehr. Wieviel Platinen hast du schon gerouted, dass du dise Behauptung aufstellen kannst? Finepitch bis herunter zu 6mil sind heute Standard und bei den meisten PCB-herstellern ohne Aufpreis zu haben.

großen FPGAs, sehr große Gehäuse gibt. Xilinx hat zB ein
Gehäuse mit 1517 Pins (!). Das ist ein Quadrat mit 39*39 Pins.
(BGA-Gehäuse = Ball Grid Array). All die Anschlüsse müssen ja
unter dem FPGA hervor geleitet werden -> viele Layer und
dünne Leitungen.

mmh, der Virtex-IV hat 1760 Pins im Fine-Pitch-BGA-Gehäuse.

FPGAs können hoch komplexe Logik-Funktionen erledigen, ganze
Prozessoren kann man aus ihnen machen, manche haben sogar
(zusätzlich zu den Logik-Funktionen) eigene echte Prozessoren
(in Silizium gegossen) eingebaut (zB Xilinx Virtex-Pro hat bis
zu 4 (!) PowerPC on Chip). FPGAs haben auch eine Menge SRAM

Eigentlich hat der Virtex-II-Pro nur bis zu 2 onBoard. Aber man kann ja noch die Softprozessoren integrieren.

wird). Mehrer hundert kBit bis einige MBit sind in den großen
Modellen zu finden (die allerdings pro Stück so viel wie ein
Mittelklassewagen kosten!). Es gibt auch noch verteilte

Aus welchem Land stammt den der Mittelklassewagen? Aus Deutschland jedenfalls nicht.

Es gibt auch recht günstige FPGAs (zB Xilinx Spartan-IIE, ca.
€ 15,-- aufwärts) die man auch bei RS Components oder Farnell
bestellen kann.

Wohl kaum für diesen Preis.

Hi!

Warum erzählst du mir das?

Uje, das war falsch aufgefasst. Ich hab mein Posting als Ergänzung zu deinem geschrieben, damit der OP einen noch besseren Einblick erhält.

Nein, das ist heute Standard, keine Heruasforderung mehr.
Wieviel Platinen hast du schon gerouted, dass du dise
Behauptung aufstellen kannst? Finepitch bis herunter zu 6mil
sind heute Standard und bei den meisten PCB-herstellern ohne
Aufpreis zu haben.

großen FPGAs, sehr große Gehäuse gibt. Xilinx hat zB ein
Gehäuse mit 1517 Pins (!). Das ist ein Quadrat mit 39*39 Pins.
(BGA-Gehäuse = Ball Grid Array). All die Anschlüsse müssen ja
unter dem FPGA hervor geleitet werden -> viele Layer und
dünne Leitungen.

mmh, der Virtex-IV hat 1760 Pins im Fine-Pitch-BGA-Gehäuse.

Puh, nochmal um 3 Pins je Seite mehr. Und wenn du die Platine routest, mehrere Supply-Planes brauchst und alle Pins mit Signalen nach außen führen willst, reichen die Fähigkeiten eines „normalen“ Leiterplattenhauses nicht. 3-5mil Spacing, 0.1mm Bohrer, Blind- und Buried-Vias, 24 und mehr Lagen (alle exakt übereinander), höchste Präzision auch beim Lötstopplack, … bietet dir nicht jeder an. Aber lassen wir das „meiner ist länger“-Gestreite. Wie gesagt, mein Posting ist eine Ergänzung und keine Attacke zu deinem vorherigen Posting.

Bye
Hansi

Danke an Steven und Hansi für ihre Hilfe!

Gruß
Mac