Aus RN-Wissen.de
Version vom 13. Mai 2006, 15:46 Uhr von Otto_alt (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
LiFePO4 Speicher Test

Mit den Begriff FPGA (Field Programmable Gate Arrays) bezeichnet man komplexe programmierbare Logikbauelemente, deren Architektur auf einer vergleichsweise kleinen Basiszelle beruht. Bei FPGAs wir die Implementierung von logischen Funktionen hauptsächlich durch die Programmierung der Verbindungsleitungen zwischen den Logikblock erreicht. Es gibt zwei verschiedene Typen von FPGAs die rekonfigurierbaren und nicht rekunfigurierbaren. Für die rekonfigurierbaren FPGAs verwendet man Speichertechnologien wie SRAM. Der Nachteil dieser FPGAs ist dass sie flüchtig sind , d.h. das die Programmierung nur solange im Baustein ist wie Strom durch ihn fliesst. Wird die Stromzufuhr unterbrochen so muss der Baustein neu konfiguriert werden bzw. seine Konfiguration neu einlesen. Die nicht rekonfigurierbaren FPGAs können nur einmal programmiert werden und behält die Programmierung für immer, dies geschieht meist dadurch das die Leitungen im Baustein physikalisch zerstört bzw. erstellt werden. Solche Bausteine basieren meist auf der Antifuse Technologie. FLASH Bausteine vereinigen die Vorteile beider Technologien sie sind nicht flüchtig und sie können sehr schnell rekonfiguriert werden.

Aufbau eines FPGA

Logikblock

Ein FPGA besteht aus sehr vielen kleinen logischen Einheiten den sogenannten Logic Blocks. In diesen kleinen logischen Einheiten befinden sich einfache logische Schaltungen die meist konfiguriert werden können. Diese kleinen Logikeinheiten werden bei der Implementierung von logischen Funktionen miteinander verknüpft.

Granularität

Unter der Granularität eines FPGAs versteht man die Grösse seiner Logikblöcke. Ein FPGA wird als feinkörnig bezeichnet wenn die Logikblöcke eher klein sind. Sie enthalten nur wenig Logik und haben nur wenige Ein− und Ausgänge. Feinkörnige FPGAs können die Logikblöcke effizienter nutzen allerdings sind viele Verbindungen nötig um grössere Funktionen zu realisieren. Ein grobkörniger FPGA hat grosse Logikblöcke. Bei grösseren Funktionen bringt das zwar Geschwindigkeitsvorteile allerdings leidet die Ausnutzung der Fläche darunter. Um die Bausteine untereinander vergleichbar zu machen geben viele Hersteller eine Gatteräquivalente bei ihren Bausteinen an. Dabei entspricht eine Einheit einen NAND mit zwei Eingängen. Allerdings lassen sich Bausteine verschiedener Hersteller nur sehr bedingt so vergleichen da einige Hersteller sehr grösszügig bei der Angabe der Anzahl der Gatteräquivalente sind.

Aufbau der Logikblöcke

Grundsätzlich kann man zwischen 3 verschieden Konzepten beim Aufbau der Logikblöcke unterscheiden:

Lookup Tabels

Diese Technik wird bei FPGAs verwendet die auf SRAM basieren. Der Speicher wird so beschrieben das es zu jeder Eingangkombination der entsprechende Wert einer Logikfunktion ausgegeben wird.

Multiplexer

Diese Technologie wird bei Antifuse FPGAs verwendet. Mit einen einfachen 1−Bit Multiplexer lassen sich leicht Funktionen wie AND, OR, NOT realisieren.

Sea of Gates

Im Moment verwendet diese Technologie nur der Hersteller GateField. Bei diesen Konzept besteht ein Logikblock aus max. 8 Transistoren die über programmierbare Leitungen verbunden werden und so eine Funktion realisieren.

Verbindungsarchitektur

Besonders bei den Logikblöcken mit feiner Granularität spielt die Verdrahtung eine sehr wichtige Rolle, da bereits einfache logische Funktionen auf mehrere Logikblöcke aufgeteilt werden müssen. Ist die Anzahl der Leitungen zu klein so können nicht alle Basiszellen angeschlossen werden. Wenn man zu viele Leitungen hat können zwar alle Basiszellen genutzt werden aber es muss sehr viel Fläche für die Verdrahtung aufgewendet werden. Dies macht ausserdem den Baustein unnötig teuer.


Was ist der Vorteil von FPGAs

FPGAs schließen die Lücke von Standardbausteinen wie Mikroprozessoren auf der einen und ASICs auf der andere Seite. Der Vorteil von Mikroprozessoren liegt in der preiswerten Massenproduktion und der Entwickler kann den Baustein softwaresteitig programmieren. Mikroprozessoren eignen sich nicht für unverzögerte parallele Berechnungen. Hierfür wurden bislang ASICs herangezogen darunter versteht man anwendungsspezifische, integrierte Schaltungen, die für jede Anwendung speziell entwickelt werden müssen. Da diese jedoch von großen Halbleiterherstellern gefertigt werden müssen, rentieren sich nur große Stückzahlen und die Entwicklungszeit für einen Prototypen kann bis zu 18 Monaten dauern. Also sind Standardbausteine für kleine Serien kostengünstig einzusetzen während sich ASICs nur für große Serien eignen. FPGAs schließen genau diese Lücke, da einerseits der physikalische Aufbau immer der gleiche ist (günstige Massenproduktion) andererseits kann der Entwickler die Bausteine genau auf seine Bedürfnisse abstimmen, indem er eine Konfiguration in den FPGA lädt. Dies kann er beliebig oft wiederholen. Nachdem die Konfiguration feststeht, ist auch das Zeitverhalten berechenbar, man kann demnach auch zeitkritische Anwendungen realisieren. Auch ist das Laden der Konfiguration in den Baustein relativ schnell. Bei aktuellen gebräuchlichen FPGAs dauert die Konfiguration ca. 10-250 ms. Die genaue Dauer ist dabei von der Länge des Bitstreams und der maximalen Taktrate, mit welcher der Bitstream eingeschrieben werden kann, abhängig.


Quellen/Literatur

  • Wannemacher, Markus "das FPGA−Kochbuch"
  • FPGA, Markus Stanczyk
  • Matthias Fuchs, Geschichte der FPGA
  • Oldfield, Dorf : Field-Programmable Gate Arays; John Wiley & Sons, 1995


Weblinks


LiFePO4 Speicher Test