Post by Thomas StankaPost by Stefan HeinzmannFPGA: Viele Flipflops mit relativ mageren Logikressourcen pro Flipflop
(z.B. nur 4 oder 5 Eingänge)
Kannst du bitte erklären was du damit meinst? IdR verwendet man bei
Fpgas
komplexe Logikblöcke mit 3-5 Eingängen und einem Ausgang die alle
Logikfuntionen nachbilden können. Eine Konvention, dass am Ausgang
jedes Logikblockes ein FF sein muss, gibt es aber nicht, auch wenn das
bei Xilinx so ist.
Ich meine damit, daß man bei CPLDs am Eingang jedes FF wesentlich mehr
Eingangssignale verknüpfen kann. Das liegt natürlich an der
PLA-Struktur. Beim Xilinx XC9500 zum Beispiel hat man die Möglichkeit,
36 Signale zu verknüpfen, um den D-Eingang eines FF zu versorgen. Das
erlaubt natürlich viel komplexere Logik als die 3-5 Eingänge bei einem
FPGA-Logikblock. Man wird dafür im FPGA mehrstufig arbeiten müssen,
wodurch natürlich die Laufzeiten ansteigen.
Eine Konvention daß am Ausgang eines Logikblocks ein FF sitzen muß
gibt's selbstverständlich nicht. Trotzdem ist es bei den allermeisten
FPGAs so. Bausteine, bei denen das nicht so ist, kann man guten
Gewissens als Exoten bezeichnen.
Post by Thomas StankaPost by Stefan HeinzmannCPLD: Relativ wenige Flipflops mit viel Logik
Ich würde als Unterschied ansehen, dass ein CPLD üblicherweise
Pin->PLA-> [FF->] PIN aufgebaut ist. Bei neueren CPLDs sind Schleifen
zwischen den Pins erlaubt, allerdings nicht in beliebiger Variation.
Beim FPGA hat man (nahezu) jede beliebige Anordnung von Logik und FF
zwischen den Pins. Eine mehrstufige Pipeline in CPLDs halte ich nicht
für realistisch.
Es gibt inzwischen doch etliche CPLDs, bei denen ein guter Teil der
Flipflops (bzw Makrozellen) nicht einem Pin zugeordnet ist, sondern für
intern rückgeführte Signale verwendet wird. Mehrstufige Logik ist damit
ohne weiteres möglich und wird nach meiner Kenntnis auch oft benutzt.
Aber es stimmt: Pipelines sind eher eine FPGA-Domäne, zum einen weil sie
FF-hungriger sind, zum anderen weil man damit bei FPGAs die kurzen
Laufzeiten erreichen kann, die bei CPLDs auch direkt erreichbar sind.
Post by Thomas StankaÜblicherweise haben Fpgas längere Laufzeiten zwischen den Pins, mehr
Pins, mehr FF und eine langsamere Logik, da die Logik üblicherweise
mehrstufig ist, wohingegen die PLA ja nur zweistufig ist.
Korrekt.
Post by Thomas StankaPost by Stefan HeinzmannIn der Konsequenz gehen einem im CPLD typischerweise zuerst die
Flipflops aus, im FPGA schafft man das kaum.
Das geht durchaus, wenn man keine Technologie hat in der Logik durch
FF ersetzt werden kann 8(.
Das habe ich jetzt nicht kapiert. Ist es nicht gerade andersrum?
Post by Thomas StankaPost by Stefan HeinzmannFPGAs sind oft SRAM-basiert und müssen "gebootet"werden, während das
typische CPLD nichtflüchtig ist.
Das "oft" und "typisch" sind IMHO eine Entscheidung des Marktes und
hat wenig bis keine technischen Gründe.
Oliver Bartels hat schon ausgeführt, daß es durchaus technische Gründe
gibt. Aber es stimmt natürlich auch daß es eine Marktentscheidung ist.
Es gibt z.B. bei den FPGAs auch einmal programmierbare Varianten, die
auf einer Fuse- oder Antifuse-Technik beruhen. Diese sind aber bei
weitem nicht so verbreitet wie die SRAM-basierten Typen, wahrscheinlich
weil das Auswechseln des Chips bei heutigen IC-Gehäusen immer
problematischer wird und daher in der Entwicklungsphase unpraktisch ist.
--
Cheers
Stefan