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!!!
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
> 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.
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
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.