Forum: FPGA, VHDL & Co. Logiblöcke, Makrozellen, Gatter, LUTs - ich blicke nicht durch!


von FPGA Anfänger (Gast)


Lesenswert?

Hallo alle!

Ich versuche zu verstehen, woraus ein FPGA besteht, und vor allem, wie 
man diese Angaben - Zahl der Gates, Cells und Logic Blocks - richtig 
versteht. Ich habe mir den Wikipedia-Artikel zu FPGA auf Deutsch und 
Englisch durchgelesen und blicke immer noch nicht durch. Darum möchte 
ich meine Fragen hier stellen und hoffe auf eure Hilfe!

1. Bei manchen FPGAs ist die Zahl der Gates (wie 50k, 200k usw.) 
angegeben. Nun laut Wikipedia besteht ein Basisblock eines FPGA 
vereinfacht aus einer Lookup-Tabelle die logische Funktionen (and, or, 
nor ...) realisiert und einem Flip-Flop. Von Gattern (also Gates) ist da 
nicht die Rede. Was bedeutet denn die Angabe der Gatterzahl? Heißt es, 
dass bei den Bausteinen, die diese Angabe haben, ein Basisblock keine 
LUTs sondern normale Gatter hat? Außerdem, warum braucht man die Angabe 
der Gatterzahl? Die Gatter sind doch (falls ich es richtig verstehe) in 
Basisblöcken untergebracht, wäre da nicht die Angabe der Zahl der 
Basisblöcke und evtl. zusätzlich der Zahl der Gatter pro Block 
sinnvoller?

2. Weiterhin ist die Zahl der Makrozellen angegeben. Ich gehe mal davon 
aus, dass Makrozelle = Basisblock (aus Wikipedia) ist. Stimmt es so? Was 
bedeutet der Begriff Logic Block? Der steht z.B. in der Beschreibung des 
Lattice LFEC1E-5TN100C bei Farnell. Zuerst habe ich angenommen, es ist 
dasselbe wie Makrozelle, aber bei dem Baustein ist die Zahl der 
Makrozellen 750 und die der Logic Block 192, daher kann dan wohl nicht 
dasselbe sein, aber was sind dann die Logic Blocks?

Ich danke schon mal für jede Antwort!!!

von Dimi (Gast)


Lesenswert?

Hallo,

als Beispiel Xilinx Spartan 3:

http://www.xilinx.com/support/documentation/data_sheets/ds099.pdf

Auf der Seite 3 steht folgendes:

Logic Cell = 4-input Look-Up Table (LUT) plus a ‘D’ flip-flop. 
"Equivalent Logic Cells" equals "Total CLBs" x 8 Logic Cells/CLB x 1.125 
effectiveness

Bei Altera ist es änlich, nur bei denen wir die Anzahl von LEs (Logiv 
Elements) angegeben. 1 LE bei Altera ist (relativ) gleich 1 Logic Cell 
von Xilinx.
Und Gates-anzahl bei Xilinx sagt mir persönlich nicht viel.


MfG aus Westerwald

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


Lesenswert?

> Was bedeutet denn die Angabe der Gatterzahl?
Da kommt noch aus der FPGA-Steinzeit, als FPGAs mit ASICs verglichen 
wurden. Dann konnte man eine ASIC-Funktion, die durchschittlich eine 
bestimmte Gatteranzahl (üblicherweise NAND-Gatter) hat, u.U. in ein 
entsprechendes FPGA bringen...

> Was bedeutet der Begriff Logic Block?
Das steht im Datenblatt zum entsprechenden FPGA und ist auch beim selben 
Hersteller eine jeweils unterschiedlich große Baugruppe aus LUTs, FFs, 
Carry-Logic...

> Makrozelle
Gibts traditionell nur bei CPLDs, und daher ist das nicht so direkt auf 
FPGAs übertragbar. Man kann aber genauso wie bei den Gatteräqivalenten 
eine Umrechnung machen und sagen, ein Design, das im FPGA x Logikblöcke 
braucht, bräuchte ein CPLD mit etwa y Makrozellen.

> aber was sind dann die Logic Blocks?
Das sind die vielfach wiederholten logischen Einheiten innerhalb eines 
FPGAs. Jeder Hersteller hat dort eine eigene Bezeichnung und mehr oder 
weniger Funktionalität untergebracht.

von FPGA Anfänger (Gast)


Lesenswert?

Vielen Dank nochmals für die Aufklärung!! Das hat mich schon wesentlich 
weiter gebracht!

von Uwe Bonnes (Gast)


Lesenswert?

Lies, damned lies and FPGA Gate count...

von Xilinx (Gast)


Lesenswert?

Hallo Zusammen

Wie berechne ich resp. schätze ich ab, wieviele Flipflops und Gates ich 
für mein Vorhaben/Schaltung benötige?

Z.B. Geplant habe ich ein XC95108 im PLCC84 Gehäuse für einen 
universellen  GPIO mit 8x 8Bit Ports. Jeder Port sollte wahlweise Input, 
Output und PWM können. Dies möchte ich per Setup vom uC zu Beginn in den 
Baustein einspeichern(Konfiguration). Das Ziel ist einen einzigen 
universellen GPIO zu bekommen mit mehr Ein-/Und Ausgängen als 
herkömliche bausteine eben noch mit PWM.
Von den 69 Pins werden 8x 8Pin für die I/O's benötigt, ein Pin für den 
I2C/SPI Slave Betrieb, 4 Pin's für den SPI (I2C) Busanschluss
Angesprochen von einem Microkontroller mit einem SPI Bus.

Habe hier an anderer Stelle gelesen, das Falk in einen XC9572 CPLD nur 
einen SPI Slave und 12 PWM hinbekommen hat, weil der CPLD zuwenig 
Flipflops oder Gates hat.

Mir ist noch unklar ob diese Gates auch eine Art Flipflop 
Speicherfunktion haben denn für meine Konfiguration, Counter, Register 
für Frequenzteiler, etc. benötige ich schon mehr Bytes als ich FlipFlops 
Bits habe und die sind ja Ausschleisslich direkt für den I/O Pin.

Würde es weniger "Gates/Macrozellen/Flipflops" benötigen, wenn man die 
Konfiguration immer für einen ganzen Port herstellt. es wärend ann immer 
8 Bit miteienader Eingang, Ausgang oder PWM?

Da die Entwicklungsumgebung die "Verteilung" der Gates/Macrozellen 
automatisch vornimmt, ist es wohl schwierig dies im Voraus zu berechnen 
oder gibt es dafü eine Anleitung?

Könnte auch auf einen FBGA von mit einem Lötbaren Gehäuse wechseln, weil 
die FPGA für meine geplante Anwendung wohl geeigneter ist. (Hat meine 
Recherche im Internet von ca. 2 Tagen+ ergeben) Da ich die Xilinx 
Entwichlungsumgebung bereits beschafft habe inkl. Programmer wäre ich 
über Vorschläge der Xilinx-Chips sehr verbunden. Wie kompatibel die 
Software und der USB Programmer ist in Bezug auf Lattice oder Altera 
Chips weiss sich nicht.

Da sind natürlich nun die Erfahrungen der Spezialisten auf diesem Gebiet 
gefragt. Ob mir da wohl jemand weiterhelfen kann auf welchen Chip ich 
setzen soll? Besten Dank schon mal im Voraus.

Gruss Martin

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


Lesenswert?

Xilinx schrieb:
> Z.B. Geplant habe ich ein XC95108 im PLCC84 Gehäuse für einen
> universellen  GPIO mit 8x 8Bit Ports.
Vergiss es. Der alte Zombie (den es nur noch an der Resterampe gibt), 
hat gerade mal 108 Flipflops.
Um einen Konfigurierbaren IO-Pin zu bekommen, musst du den Ausgangswert, 
den Tristatewert und den Eingangswert speichern können. Das sind 
3*64=192 Bits. Damit ist die Latte von 108 Flipflops schon gerissen. Das 
CPLD ist zu klein. Punkt.

Wenn du jetzt noch das SPI-Interface dazunimmst, dann noch Register für 
die PWM, dann siehst du, dass du auch mit größeren CPLDs ratzfatz am 
Ende bist.

Fazit: nimm einen MachXO/MachXO2 von Lattice.

: Bearbeitet durch Moderator
von Duke Scarring (Gast)


Lesenswert?

Lothar M. schrieb:
> Fazit: nimm einen MachXO/MachXO2 von Lattice.
Und einen neuen Thread :-(

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

http://www.eejournal.com/archives/articles/20130924-halffull/

"The FPGA is Half Full - Unwinding the Marketing Spin"
in der üblichen flotten "Schreibe" von Kevin Morris, immer nett zu 
lesen.

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.