Information

Was ist ein FPGA - Field Programmable Gate Array Basics

 Was ist ein FPGA - Field Programmable Gate Array Basics

Das Field Programmable Gate Array (FPGA) ist ein programmierbares Logikgerät, dessen interne Konfiguration per Software oder als "Firmware" festgelegt werden kann. Auf diese Weise kann die FPGA-Funktionalität nach Bedarf aktualisiert oder sogar vollständig geändert werden, da die FPGA-Firmware aktualisiert wird, wenn sie sich im Schaltkreis befindet.

Die programmierbaren FPGA-Logikkomponenten oder Logikblöcke, wie sie genannt werden, können aus allem bestehen, von Logikgattern bis hin zu Speicherelementen oder Speicherblöcken oder fast jedem beliebigen Element. Dies bietet ein beträchtliches Maß an Flexibilität.

FPGA-Anwendungen

Aufgrund der Rekonfigurierbarkeit des FPGA kann es in einer Vielzahl unterschiedlicher Anwendungen eingesetzt werden.

  • ASIC-Prototyping: ASICs oder anwendungsspezifische integrierte Schaltkreise werden häufig in der Massenproduktion verwendet, ihre Entwicklung ist jedoch sehr kostspielig und Änderungen sind sehr teuer und zeitaufwändig. Sobald ein ASIC-Chip hergestellt ist, ist seine Funktionalität festgelegt. Auch ASIC-Chips sind in der Regel sehr kompliziert. Um sicherzustellen, dass die Funktionalität korrekt ist, wird während der Entwicklung und sogar der frühen Produktion häufig ein FPGA anstelle des ASIC-Chips verwendet, bis alle Probleme behoben sind.
  • Software-definierte Ausrüstung: Da Geräte heute eher als Software definiert werden, wie im Fall des softwaredefinierten Radios, ist das Konzept in vielen Bereichen der Technologie weit verbreitet. Software-definierte Testgeräte werden ebenfalls immer häufiger eingesetzt - hier kann die Funktionalität des Testinstruments je nach Bedarf geändert werden.

FPGA-Grundlagen

Der große Vorteil des FPGA ist, dass der Chip vollständig programmierbar ist und neu programmiert werden kann. Auf diese Weise wird es zu einer großen Logikschaltung, die gemäß einem Entwurf konfiguriert werden kann. Wenn jedoch Änderungen erforderlich sind, kann sie mit einem Update neu programmiert werden.

Wenn also eine Leiterplatte oder Platine hergestellt wird und ein FPGA als Teil der Schaltung enthält, wird dies während des Herstellungsprozesses programmiert, kann aber später neu programmiert werden, um Änderungen widerzuspiegeln. Somit ist es vor Ort programmierbar, und tatsächlich entsteht daraus sein Name.

Obwohl FPGAs viele Vorteile bieten, gibt es natürlich einige Nachteile. Sie sind langsamer als äquivalente ASICs (Application Specific Integrated Circuit) oder andere äquivalente ICs und außerdem teurer. (Die Entwicklung von ASICs ist jedoch im Vergleich sehr teuer).

Dies bedeutet, dass die Entscheidung, ob ein FPGA-basiertes Design verwendet werden soll, zu Beginn des Designzyklus getroffen werden sollte und davon abhängt, ob der Chip neu programmiert werden muss, ob an anderer Stelle gleichwertige Funktionen erhältlich sind und natürlich die zulässigen Kosten. Manchmal entscheiden sich Hersteller für ein FPGA-Design für frühe Produkte, wenn immer noch Fehler gefunden werden, und verwenden dann einen ASIC, wenn das Design vollständig stabil ist.

FPGAs werden in vielen Anwendungen verwendet. In Anbetracht der Kosten werden sie nicht in billigen Produkten mit hohem Volumen verwendet, sondern FPGAs finden Anwendungen in einer Vielzahl von Bereichen, in denen komplexe Logikschaltungen erforderlich sein können und Änderungen zu erwarten sind. FPGA-Anwendungen decken ein breites Spektrum von Bereichen ab, von Geräten für Video und Bildgebung über Schaltkreise für Luft- und Raumfahrt- und Militäranwendungen bis hin zu Elektronik für die Spezialverarbeitung und vielem mehr.

FPGA-Interna

Die interne Architektur des FPGA ist der Schlüssel zu seiner Flexibilität und damit zu seinem Erfolg. Ein FPGA besteht im Wesentlichen aus zwei Grundelementen:

  • Allgemeine Logikblöcke: Der Logikblock in einem FPGA kann auf verschiedene Arten implementiert werden. Die tatsächliche Implementierung hängt vom Hersteller und der verwendeten FPGA-Serie ab. Die Variationen umfassen die Anzahl der Ein- und Ausgänge, die allgemeine Komplexität des Logikblocks hinsichtlich der Schaltung und die Anzahl der verwendeten Transistoren. Dies wirkt sich natürlich auf die auf dem Chip verbrauchte Fläche und damit auf die Größe des verwendeten Siliziums aus.
  • Internes FPGA-Routing: Die Routing-Kanäle innerhalb des FPGA bestehen aus Drähten, die über elektrisch konfigurierbare Switches miteinander verbunden werden können. Auf diese Weise ist es möglich, verschiedene Punkte auf dem Chip miteinander zu verbinden und dadurch die verschiedenen gemeinsamen Logikblöcke auf die erforderliche Weise zu verbinden.

FPGA-Firmware-Entwicklung

Da das FPGA ein konfigurierbares Logikarray ist, muss die Logik so eingestellt werden, dass sie den Anforderungen des Systems entspricht. Die Konfiguration wird von der Firmware bereitgestellt - also einem Datensatz

Angesichts der Komplexität von FPGAs wird Software verwendet, um die Funktion eines FPGA zu entwerfen. Der FPGA-Entwurfsprozess wird vom Benutzer gestartet, der eine HDL-Definition (Hardware Description Language) oder einen schematischen Entwurf bereitstellt.

Übliche HDLs sind VHDL (wofür VHDL steht V.HSIC H.ardware D.Beschreibung L.Sprache) und Verilog. Sobald dies abgeschlossen ist, besteht die nächste Aufgabe im FPGA-Entwurfsprozess darin, eine Netzliste für die jeweilige verwendete FPGA-Familie zu erstellen. Dies beschreibt die im FPGA erforderliche Konnektivität und wird mithilfe eines Automatisierungstools für das Elektronikdesign generiert.

Die Netzliste kann dann mithilfe eines als Place-and-Route bezeichneten Prozesses, der normalerweise von der proprietären Place-and-Route-Software des FPGA-Unternehmens ausgeführt wird, an die tatsächliche FPGA-Architektur angepasst werden.

Schließlich ist das Design dem FPGA verpflichtet und kann in der elektronischen Leiterplatte verwendet werden, für die es vorgesehen ist.

Hinweis zur FPGA-Programmierung:

Für FPGAs muss eine feste Welle verfügbar sein, um die Konfiguration der Logik innerhalb des Chips festzulegen. Diese Firmwave kann auf verschiedene Arten entwickelt werden und es gibt verschiedene Softwareplattformen, die verwendet werden können.

Lesen Sie mehr über die FPGA-Programmierung

FPGA-Tests

Aufgrund ihrer Komplexität ist es notwendig, das FPGA-Design gründlich zu testen. Diese Tests werden normalerweise in jeder Phase des FPGA-Entwicklungsprozesses durchgeführt.

Es umfasst Funktionssimulationen und andere Verifizierungsmethoden. Eines der Hauptprobleme kann jedoch das Timing sein, da aufgrund der Größe und Komplexität der Grundlogik Timing-Probleme auftreten können.

Sobald der Entwurfs- und Validierungsprozess abgeschlossen ist, wird die generierte Binärdatei (auch mit der proprietären Software des FPGA-Unternehmens) zur Konfiguration des FPGA-Geräts verwendet.

FPGA-Tools

Die Tools zum Entwickeln und Testen von FPGAs sind aus verschiedenen Quellen verfügbar. Natürlich kann der Hersteller viele FPGA-Entwicklungstools anbieten, aber es gibt viele andere Quellen für FPGA-HDL-Synthese, physikalische FPGA-Synthese und Verifizierungs-Tools von Drittanbietern. Dazu gehören die eigentliche Entwicklung und die verschiedenen Testphasen der FPGAs.

Schau das Video: Field Programmable Gate Array FPGA (November 2020).