Kategorie

A B C D E
F G H I J
K L M N O
P Q R S T
U V W X Y
Z 0      

field programmable gate array

fa fb fc fd fe ff fg fh fi fj fk fl fm
fn fo fp fq fr fs ft fu fv fw fx fy fz

Field Programmable Gate Array

Ein FPGA (Field Programmable Gate Array) ist ein frei programmierbarer Logikschaltkreis. Ein FPGA besteht aus einer Matrix-Struktur aus konfigurierbaren Logikblöcken. Diese Logikblöcke werden auch als CLB bezeichnet (configurable logic blocks). Desweiteren existieren Ein- und Ausgabeblöcke (I/O-Blöcke), die für die Verbindung zur Außenwelt notwendig sind und SRAM-Blöcke für die Speicherung von Daten. Manche Anbieter stellen zusätzlich PLLs (Phase Locked Loop), DLLs (Delay Locked Loop),Multiplizierer und auch komplette Prozessoren auf Ihren FPGAs zur Verfügung. Es gibt sowohl reprogrammierbare als auch nur einmal programmierbare (OTP) FPGA.

Jeder Logikblock besteht aus Logikzellen, die für Operationen wie AND, OR, NOT, XOR, usw. genutzt werden können. Desweiteren wird in den CLBs auch Flip-Flop-Logik zur Verfügung gestellt. Da die Logik in Form von lookup tables zur Verfügung gestellt wird, ist es bei einigen Anbietern von FPGAs auch möglich, die Logikblöcke als RAM zu konfigurieren und zu nutzen. Man spricht dann von sogenanntem Distributed RAM im Gegensatz zum o.a. Block RAM.

Ein FPGA besteht aus sehr vielen Logikzellen. Es sind heute FPGA mit über 10.000.000 Gattern erhältlich (Xilinx Virtex II-Serie). Die Komplexität der Aufgaben wächst mit den Möglichkeiten der Entwurfssoftware. Man hat gewisse Grenzen bezüglich den Verbindungsleitungen, sodass manchmal nicht ausreichend viele solcher Verbindungen zur Verfügung stehen und viele Schaltungen ohne vorherige Optimierung nicht realisierbar sind.

Erstellt wird Software für einen FPGA mittels einer Hardware-Beschreibungssprache, z.B. VHDL oder Verilog. In den letzten Jahren gab es immer wieder Versuche FPGAs und CPLDs mittels C zu beschreiben HardwareC oder SystemC (Stanford), oder C in VHDL umzusetzen (Spark). Herstellerspezifische Sprachen wie Altera-HDL oder ABEL-HDL werden ebenso genutzt wie UDL/I (Japan). Nach der Beschreibung innerhalb des Entwurfsflusses kommen die weiteren Schritte zum Tragen, also die funktionale Simulation, die Synthese, die Implementierung und noch eine zeitbehaftete Simulation. Erst danach sollte die implementierte Schaltung am realen FPGA erprobt werden.

Reprogrammierbare FPGA haben einen speziellen Bereich der Computertechnik erst in nutzbarem Umfang realisierbar gemacht: Selbstkonfigurierende Systeme. Diese konfigurieren sich zur Laufzeit entsprechend der geforderten Eigenschaften (z.b. spezielle mathematische Algorithmen) um und erreichen damit bisher unerreichte Verarbeitungsgeschwindigkeiten und Parallelität. Als besondere Herausforderung kann man hierbei die Compiler Entwicklung sehen. Ziel ist es Objektorientiert Logik-Kapazitäten bei Bedarf zur Benutzung zu konfigurieren und nach der Benutzung freizugeben. (Siehe auch

Unterschiede zu Complex Programmable Logic Devices (CPLDs)

Die Unterschiede zu CPLDs sind im Wesentlichen:
  • durch Blockarchitektur und frei programmierbarem Signalfluss keine exakte Berechnung der Gatterlaufzeiten möglich
  • bei FPGAs die auf SRAM-Technologie basieren erfolgt eine Konfiguration bei jedem Start (heutzutage meist aus externem EEPROM oder via JTAG vom Prozessor her), bei FPGAs die auf FLASH- oder ANTIFUSE-Technologie basieren entfällt logischerweise die Konfiguration

Weblinks

  • http://www-li5.ti.uni-mannheim.de/fpga/ FPGA Seiten der Uni Mannheim
  • http://www.altera.com FPGA-Hersteller

Impressum

Datenschutzerklärung