User Login


Sie sind noch nicht eingeloggt!

     anmelden |  registrieren

Termine


08. - 10.12.2014: Frankfurt |
PLC2 - Video Signal Processing

08. - 12.12.2014: Freiburg |
PLC2 - Expert FPGA Schaltungstechnik

08. - 10.12.2014: München |
PLC2 - Compact ZYNQ for HW Designers

Boards


Spartan 6 FPGA SP605 Evaluation Kit (XC6SLX45T-FGG484)
    

Links


FPGA Hersteller:  Altera
Xilinx
Lattice
FPGA Schulungen:  PLC2
El Camino
Trias
Weiteres:  VHDL ORG

Literatur


Dieter Wecker

Prozessorentwurf

Jahr: 2015
ISBN-10: 3110 4029 63


Field Programmable Gate Array:

 

Ein FPGA (Field Programmable Gate Array) ist ein digitaler IC, in den eine logische Schaltung programmiert werden kann.FPGAs sind also wiederprogrammierbare Siliziumchips. Durch vorgefertigten Logikblöcke und programmierbaren Routing-Ressourcen lassen sich FPGAs so konfiguriert werden, dass sie bestimmte Hardwarefunktionen implementieren. Durch die Programmierung von Strukturvorschriften wird zunächst die grundlegende Funktionsweise einzelner universeller Blöcke im FPGA und deren Verschaltung untereinander festgelegt. Man spricht daher auch von der Konfiguration eines FPGAs.

Digitalen Systeme werden so vom Programmierer in Software entwickelt und zu einer Konfigurationsdatei oder einem Bitstream kompiliert. Diese Dateien oder Bitstreams enthalten Informationen zur Verbindung der einzelnen Logikblöcke im FPGA. Da FPGAs vollständig rekonfigurierbar sind, können sie mit einem anderen Bitstream sofort neue Charakteristiken annehmen. Bisweilen stand die FPGA-Technologie nur den Anwendern mit fundierten Wissen über Hardwaredesign zur Verfügung. Neue Designwerkzeuge ermöglichen es jetzt auch immer mehr ungeübten Anwendern mit Hilfe von grafischen Blockdiagrammen oder sogar C-Code digitale Hardwareschaltungen zu entwerfen.

Da FPGAs die besten Eigenschaften von ASICs und prozessorgestützten Systemen vereinen, ermöglichen sie einen branchenübergreifende Einsatz. Im Gegensatz zu ASICs bieten FPGAs hardwaregetaktete Geschwindigkeit und Zuverlässigkeit bei gleichzeitiger Kosteneffizienz.

Rekonfigurierbare Siliziumchips lassen sich ebenso flexibel einsetzen wie prozessorgestützte Software. Im Gegensatz zu herkömmlichen Prozessoren wird die Leistungsfähigkeit des Systems jedoch nicht von der Anzahl der verfügbaren Prozessorkerne eingeschränkt, FPGAs sind in der Lage Operationen wirklich parallele auszuführen. Verschiedene Verarbeitungsoperationen sind daher nicht auf die gleiche Ressource angewiesen. Jede Operation lässt sich einem dedizierten Bereich auf dem Chip zuweisen und kann so autonom und ohne Beeinflussung anderer Logikblöcke ausgeführt werden.


Funktionsprinzip eines FPGAs:

Durch die spezifische Konfiguration interner Strukturen können in einem FPGA verschiedene Schaltungen realisiert werden. Diese reichen von Schaltungen geringer Komplexität (Zähler) bis zu hochkomplexen Schaltungen (Prozessoren). FPGAs werden in allen Bereichen der Digitaltechnik eingesetzt, vor allem aber dort, wo es auf schnelle Signalverarbeitung und flexible Änderung der Schaltung ankommt, um beispielsweise nachträgliche Verbesserungen an den implementierten Funktionen vornehmen zu können, ohne dabei direkt die physische Hardware ändern zu müssen.


FPGA Hersteller (U.S. Headquarters):


  • Xilinx (Xilinx Corporation, San Jose USA)
  • Altera (Altera Corporation, San Jose USA)
  • Lattice (Lattice Semiconductor Corporation, Hillsboro, Oregon USA)
  • Atmel (Atmel Corporation, San Jose USA)
  • Actel (Microsemi SoC Products Group, Mountain View (San Jose) USA)
  • QuickLogic (QuickLogic Corporation, Sunnyvale (San Jose) USA)
  • Aeroflex (Aeroflex Incorporated, Plainview (New York) USA)
  • Achronix Semiconductor (Achronix Semiconductor Corporation, Santa Clara (San Jose) USA)
  • Abound Logic (Abound Logic Incorporation, Santa Clara (San Jose) USA)

SiliconBlue (SiliconBlue Technologies Corporation, Santa Clara (San Jose) USA) wurde im Dezember 2012 von Lattice Semiconductor aufgekauft.

Vorteile:


  • deutlich geringere Entwicklungskosten (im Gegensatz zu ASICs werden keine Masken mit sehr hohen Fixkosten benötigt)
  • sehr kurze Implementierungszeiten
  • einfach korrigier- und erweiterbar (rekonfigurierbar)
  • geprüftes Silizium
  • geringeres Designrisiko, da es nicht Monate vor der Hardwareauslieferung fertig sein muss

Nachteile:


  • ab mittleren Stückzahlen höherer Stückpreis
  • geringere Taktraten (aktuell verfügbar bis 1.5GHz, typisch werden 20–500 MHz realisiert) - digitale ASICs > 3 GHz
  • geringere Logikdichte (ca. 10-facher Flächenbedarf gegenüber ASIC gleicher Technologie)
  • deutlich höherer Leistungsbedarf für gleiche Menge an Logik / Funktion
  • höhere Empfindlichkeit gegenüber Teilchenstrahlung und elektromagnetischen Wellen
  • weniger Flexibilität, was Ausstattung z. B. mit eingebettetem Speicher oder analogen Elementen angeht, aber auch bei IO-Buffern
  • der kürzere Designzyklus und die Möglichkeit, sehr spät noch Fehler korrigieren zu können, verleiten dazu, im Vorfeld weniger funktionale Tests durchzuführen
  • SRAM-basierte FPGAs (das sind z. B. alle von den Marktführern Xilinx und Altera angebotenen) müssen bei jeder Spannungsunterbrechung neu geladen werden. Das bedeutet, dass die Funktionalität nicht direkt nach dem Einschalten zur Verfügung steht. Das Laden kann – je nach eingesetzter Technik – bis zu einigen Sekunden dauern. Handelt es sich nicht um spezielle FPGAs mit integriertem Flashspeicher, sind dazu zusätzliche, externe Komponenten notwendig, z. B. ein herstellerspezifisches EEPROM oder Flash-Speicher, das die Konfiguration enthält oder ein Mikrocontroller mit zusätzlichem Flash-Speicher, der den Ladevorgang durchführt.

Leistungsfähigkeit: Durch die genutzte Hardwareparallelität werden Tasks nicht sequenziell ausgeführt was zu mehr Operationen bei gleicher Taktrate führt. Damit übersteigen FPGAs durchaus die Rechenleistung von Digitalsignalprozessoren (DSPs). Die I/O-Steuerung auf Hardwareebene verkürzt die Reaktionszeiten des Systems deutlich.

Kosten: Die Kosten für benutzerdefiniertes ASIC-Design rentieren sich oft erst ab sehr großen Stückzahlen. Daher bieten sich gerade FPGA-basierte Lösungen für die Realisierung benutzerdefinierter Hardwarefunktionen mit geringen Stückzahlen an. Die Kosten für eine Änderung im FPGA-Design fallen im Vergleich zu den immensen Ausgaben für die Neugestaltung eines ASICs ebenfalls kaum ins Gewicht.

Kürzere Markteinführungszeiten: FPGA-Technologie bietet die notwendigen Funktionen und Flexibilität für schnelle Prototypenerstellung. Durch den Einsatz von FPGAs können Ideen und Konzepte getestet und anschließend direkt in Hardware überprüft werden. Lange Entwicklungs- und Fertigungsprozesse der ASIC-Herstellung entfallen und schnellere Time-to-Market Spannen lassen sich realisieren. Änderungen können in FPGAs relativ schnell implementiert werden. Der zunehmende Einsatz anspruchsvoller Softwarewerkzeuge fordert immer weniger Einarbeitung in die Materie durch die Verwendung bereits vorgefertigter Funktionen (IP-Kerne) für komplexe Steuer-, Regel- und Signalverarbeitungsanwendungen.

Zuverlässigkeit: FPGAs benötigen kein Betriebssystem und sorgen somit durch eine wirkliche parallele Ausführung für mehr Zuverlässigkeit da jedem Task eine bestimmte Hardwareschaltung zugeordnet wird. Also eine echte Programmausführung in Hardware. Prozessorbasierte Systeme werden meist in mehreren Abstraktionsebenen aufgebaut, um die verschiedenen Prozesse zu handhaben. Z.B. steuert die Treiberebene die Hardware, während das Betriebssystem Speicher- und Prozessorbandbreite managt. Da jeder Prozessorkern immer nur einen Vorgang pro Zeitpunkt X ausführen, müssen hier zeitkritische Tasks hintereinander ausgeführt werden.

Langzeiteinsatz: Bei ASIC-basierten Systemen können Veränderungen in den Spezifikationen digitaler Kommunikationsprotokolle recht problematisch werden und existierende Hardware relativ schnell unbrauchbar machen. Rekonfigurierbare FPGA-Chips können problemlos modifiziert werden, um auch zukünftigen Anwendungsanforderungen zu entsprechen. Bei älteren Systemen können Funktionserweiterungen vorgenommen werden, ohne dass Hardware neu entwickelt oder das Layout von Leiterplatten neu designt werden muss.