Heim Der Blog Blog Details

FPGA-Grundlagen: Anwendungen, Strukturen und Komponenten

August 02 2023
Ampheo

Anfrage

Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.

SCHNELLE ANFRAGE
ZUR RFQ-LISTE HINZUFÜGEN
In diesem Artikel geht es um die Entwicklung von FPGA sowie um Strukturen, Komponenten, Programmiertechnologien und Anwendungen im Zusammenhang mit FPGA.

Was ist FPGA?

Die Definition von „feldprogrammierbar“ besagt, dass der Kunde die digitale Logik eines integrierten Schaltkreises programmieren kann, anstatt sie während der Produktion festlegen zu müssen. Hardware-Design-Ingenieure können mithilfe digitaler ICs (integrierte Schaltkreise), die als feldprogrammierbare Gate-Arrays (FPGAs) bezeichnet werden, kundenspezifische digitale Logik programmieren. FPGAs verfügen über konfigurierbare (oder programmierbare) Logikblöcke und konfigurierbare Verbindungen, um diese Programmierbarkeit zu ermöglichen. Aufgrund ihrer programmierbaren Logik und Verbindungen (Routing) sind FPGAs im Vergleich zu ASICs gleicher Qualität mit herkömmlichen Zellen flexibel und anpassungsfähig, aber sie sind auch langsam und stromhungrig.  

FPGA-Workflow und führende Hersteller verstehen

FPGA-Workflow: Eine Schritt-für-Schritt-Anleitung

Field-Programmable Gate Arrays (FPGAs) sind leistungsstarke Geräte, die so programmiert werden können, dass sie eine breite Palette von Logikfunktionen ausführen. Hier ist ein vereinfachter Workflow für die Arbeit mit FPGAs:

  1. Logikfunktion definieren: Mithilfe eines Computers beschreiben Sie die gewünschte Logikfunktion. Dies kann durch Zeichnen eines Schaltplans oder Erstellen einer Textdatei erfolgen, in der die Funktion detailliert beschrieben wird.
  2. Logikfunktion kompilieren: Verwenden Sie die vom FPGA-Anbieter bereitgestellte Software, um die Logikfunktion auf Ihrem Computer zu kompilieren. Dieser Prozess generiert eine Binärdatei, die zum Download in das FPGA bereitsteht.
  3. Auf FPGA herunterladen: Verbinden Sie Ihren Computer über ein Kabel mit dem FPGA und laden Sie die Binärdatei herunter. Das FPGA arbeitet dann entsprechend der angegebenen Logikfunktion.

Wichtige Punkte zum Merken

  • Unbegrenzte Neuprogrammierung: FPGAs können beliebig oft mit unterschiedlichen Funktionalitäten neu programmiert werden. Wenn ein Fehler im Design vorliegt, korrigieren Sie einfach die Logikfunktion, kompilieren Sie neu und laden Sie es erneut herunter – ohne dass Sie die Leiterplatte, das Lötmittel oder die Komponenten ändern müssen.
  • Hohe Geschwindigkeit: Designs werden im FPGA viel schneller ausgeführt, da alle Vorgänge auf seinem Siliziumchip erfolgen.
  • Volatilität: FPGAs verlieren ihre Funktionalität, wenn die Stromversorgung unterbrochen wird, ähnlich wie RAM in Computern. Die Funktionalität wird wiederhergestellt, indem die Binärdatei erneut heruntergeladen wird, sobald die Stromversorgung wiederhergestellt ist.

Führende FPGA-Hersteller

Mehrere Unternehmen stellen FPGAs her, wobei der Markt von einigen wenigen Hauptakteuren dominiert wird:

  1. Xilinx: Der Erfinder der FPGAs und der größte Name in der FPGA-Industrie.
  2. Altera: Ein weiteres Schwergewicht auf dem FPGA-Markt, bekannt für seine robusten Angebote.
  3. Lattice: Ein kleinerer Akteur auf dem FPGA-Markt, aber bekannt für seine spezialisierten Produkte.
  4. Actel: Auch ein kleinerer Akteur, der einzigartige FPGA-Lösungen anbietet.

Video zum FPGA-Board

Verschiedene Arten von PLDs

PLD ist ein integrierter Schaltkreis (IC) mit einer beträchtlichen Anzahl von Logikgattern und Flip-Flops, die für die Ausführung einer Vielzahl von Funktionen programmiert werden können. Die Logik einer Reihe von UND- und ODER-Gattern, die das grundlegendste programmierbare Logikgerät bilden, sowie die Art und Weise, wie diese Gatter verbunden sind, können programmiert werden. PLDs können im Wesentlichen in drei Kategorien unterteilt werden. Wie folgt:

  • Einfache programmierbare Logikgeräte (SPLD)
  • Komplexe programmierbare Logikgeräte (CPLD)
  • Feldprogrammierbare Gate-Arrays (FPGA)

Zusätzliche Kategorien für einfache programmierbare Logikgeräte sind PLA, PAL und GAL. Lassen Sie mich also detailliertere Informationen sehen und mich mit ihnen vertrauter machen.  

Einführung in PLA

Sowohl eine AND-Gatterebene als auch eine OR-Gatterebene haben programmierbare Verbindungen und bilden zusammen ein PLA. Hier ist ein einfaches PLA mit vier Eingängen und vier Ausgängen unter Verwendung von AND- und OR-Gattern. Durch Verbinden der horizontalen und vertikalen Verbindungslinien kann jeder Eingang mit jedem AND-Gatter verbunden werden. Mit programmierbaren Verbindungen können die Ausgänge mehrerer AND-Gatter anschließend auf jedes OR-Gatter angewendet werden.

FPGA-Grundlagen: Anwendungen, Strukturen und Komponenten - Blog - Ampheo - 1

Einführung in PAL

Der Hauptunterschied zwischen einem PAL und einem PLA besteht darin, dass die ODER-Gatterebene in einem PAL während der Herstellung festgelegt wird, während die UND-Gatterebene in einem PLA programmierbar ist. PALs haben nicht die Zeitverzögerungen, die mit programmierbaren ODER-Gattern einhergehen, obwohl sie weniger vielseitig als PLAs sind.

FPGA-Grundlagen: Anwendungen, Strukturen und Komponenten - Blog - Ampheo - 2

 

Einführung in GAL

GAL und PAL haben eine ähnliche Architektur, der Unterschied liegt jedoch in der programmierbaren Struktur. Während GAL EEPROM verwendet, das neu programmiert werden kann, verwenden PALs PROM, das nur einmal programmiert werden kann.

FPGA-Grundlagen: Anwendungen, Strukturen und Komponenten - Blog - Ampheo - 3

Einführung in CPLD

Wir erhalten CPLD-Geräte als Weiterentwicklung von SPLD-Geräten. Um viel größere und komplexere Designs zu erstellen, werden sie auf SPLD-Geräten aufgebaut. Ein CPLD besteht aus einer Vielzahl von Logikblöcken (auch Funktionsblöcke genannt), von denen jeder intern aus einer Makrozelle, einem Pal oder einem PAL besteht. Um das echte Signal oder dessen Komplement zu liefern, enthalten Makrozellen zusätzliche Schaltkreise und eine Signalpolaritätssteuerung.

FPGA-Grundlagen: Anwendungen, Strukturen und Komponenten - Blog - Ampheo - 4

FPGA-Grundlagen: Anwendungen, Strukturen und Komponenten - Blog - Ampheo - 5

 

Einführung in FPGA

Im Vergleich zu SPLDs sind CPLDs weitaus komplexer. FPGAs sind jedoch komplizierter als CPLDs. Da es programmierbare Logikzellen, programmierbare Verbindungen und programmierbare IO-Blöcke hat, hat ein FPGA eine völlig andere Architektur.

FPGA-Grundlagen: Anwendungen, Strukturen und Komponenten - Blog - Ampheo - 6

 

Übersicht über FPGA

FPGAs oder feldprogrammierbare Gate-Arrays sind zweidimensionale Arrays mit einer Matrix aus rekonfigurierbaren Logikschaltungen und programmierbaren Verbindungen. Programmierbare Verbindungen (oder Schalter), die erstellt werden können, um jede digitale Funktion zu erfüllen, werden verwendet, um die verschiedenen Logikzellen zu verbinden. Sie können jedes benutzerdefinierte Design erstellen, indem Sie die Logik oder Funktion jedes Logikblocks angeben und die Verbindungen für jeden programmierbaren Schalter im FPGA festlegen. Das Gerät wird als „feldprogrammierbar“ bezeichnet, da die maßgeschneiderte Schaltungsentwicklung außerhalb der Fabrik durchgeführt wird. Die interne Struktur des FPGA ist in den folgenden Bildern sehr allgemein dargestellt. Wie Sie sehen können, besteht der Kern des FPGA aus programmierbaren Verbindungen und abstimmbaren Logikzellen. Um sie herum befinden sich eine Reihe programmierbarer IO-Blöcke, die zur Kommunikation mit der Außenwelt verwendet werden.  

FPGA-Komponenten

Sehen wir uns nun den Aufbau eines FPGAs genauer an. Ein FPGA besteht normalerweise aus drei grundlegenden Teilen. Und zwar: Programmierbare Logikzellen (oder Logikblöcke), programmierbares Routing und IO-Blöcke.  

Logikblock

Während identische Strukturen in Altera-basierten FPGAs als Logic Array Blocks oder LAB bekannt sind, wird der Logikblock in Xilinx-basierten FPGAs als Configurable Logic Blocks oder CLB bezeichnet. Beziehen wir uns in dieser Konversation auf CLB. Der grundlegende Teil eines FPGA, der sowohl Logik- als auch Speicherfunktionen hat, wird CLB genannt. Transistoren, NAND-Gatter, Multiplexer, Look-Up-Tabellen (LUTs), PAL-ähnliche Strukturen oder sogar Prozessoren können alle als grundlegender Logikblock verwendet werden. Sowohl Xilinx als auch Altera verwenden auf Look-Up-Tabellen (LUTs) basierende Logikblöcke, um die Logik- und Speicherfunktionen zu implementieren. Ein grundlegendes Logikelement ist eine Mischung aus einer Look-Up-Tabelle (die aus SRAM und Multiplexern besteht) und einem Flip-Flop, und ein grundlegendes Logikelement kann ein grundlegendes Logikelement oder eine Reihe miteinander verbundener grundlegender Logikelemente sein. SRAM-Zellen werden verwendet, um die 2n Konfigurationsbits zu implementieren, die eine LUT mit „n“ Eingängen bilden. Die LUT kann so gestaltet werden, dass sie jede logische Funktion mit diesen 2n SRAM-Bits implementiert.

FPGA-Grundlagen: Anwendungen, Strukturen und Komponenten - Blog - Ampheo - 7

FPGA-Grundlagen: Anwendungen, Strukturen und Komponenten - Blog - Ampheo - 8

 

Programmierbares Routing

Während die Logikblöcke für die Bereitstellung der Rechenfunktionalität zuständig sind, ist das programmierbare Routing-Netzwerk für die Verbindung der Logikblöcke zuständig. Um eine maßgeschneiderte Schaltung vollständig zu entwerfen, bietet das Routing-Netzwerk Verbindungen zwischen jedem Logikblock sowie zwischen dem Logikblock und dem IO-Block. Das Routing-Netzwerk besteht im Wesentlichen aus Verbindungsleitungen mit programmierbaren Schaltern, die mit jeder Computersprache eingerichtet werden können. Routing-Architekturen fallen im Allgemeinen in eine von zwei Kategorien. Sie sind hierarchisches Routing und Insel-Routing. Die Logikblöcke sind in einem zweidimensionalen Array angeordnet und über ein programmierbares Routing-Netzwerk in einer Insel-Routing-Architektur verbunden. In kommerziellen FPGAs wird diese Art des Routings häufig verwendet. Durch die Gruppierung der Logikblöcke in mehrere Gruppen oder Cluster nutzt die hierarchische Routing-Architektur die Tatsache, dass viele Logikblöcke auf einen lokalen Satz von Verbindungen beschränkt sind. Das hierarchische Routing verbindet die Logikblöcke auf einer niedrigen Hierarchieebene, wenn sie im selben Cluster untergebracht sind. Wenn Logikblöcke auf verschiedene Cluster verteilt sind, erfolgt die Verdrahtung auf einer höheren Ebene der hierarchischen Struktur. 

FPGA-Grundlagen: Anwendungen, Strukturen und Komponenten - Blog - Ampheo - 9

FPGA-Grundlagen: Anwendungen, Strukturen und Komponenten - Blog - Ampheo - 10

IO-Blöcke

Die Schnittstelle zwischen FPGA und externen Schaltkreisen ist die programmierbare Eingabe- und Ausgabeeinheit, die als IOB (Input Output Block) bezeichnet wird. Sie wird verwendet, um die Kriterien für das Ansteuern und Anpassen von Eingabe-/Ausgabesignalen unter verschiedenen elektrischen Eigenschaften zu erfüllen. Der IOB eines FPGA ist in viele Bänke aufgeteilt, um die Verwaltung zu erleichtern und die Anpassung an verschiedene elektrische Standards zu ermöglichen. Die Schnittstellenspannung VCCO jeder Bank bestimmt ihren Schnittstellenstandard. Es kann nur einen VCCO pro Bank geben, jedoch kann es mehrere VCCOs für dieselbe Bank geben. Nur Ports, die demselben elektrischen Standard entsprechen, können verbunden werden. Die grundlegende Anforderung des Schnittstellenstandards ist die identische VCCO-Spannung.

FPGA-Grundlagen: Anwendungen, Strukturen und Komponenten - Blog - Ampheo - 11

 

Technologie zur Programmierung von FPGAs

Wir haben viel über die reprogrammierbare Architektur der FPGAs gesprochen, aber jetzt wollen wir uns einige der beliebtesten Programmiermethoden ansehen, die zu dieser Art rekonfigurierbarer Architektur geführt haben. Drei bekannte Programmiertechniken, die in FPGAs verwendet werden, sind Anti-Fuse, EEPROM/Flash und SRAM.  

Anti-Fuse

Eine alte Methode zur Herstellung einmal programmierbarer Elektronik ist die Anti-Fuse-Programmierung. Sie wird mithilfe einer Anti-Fuse-Verbindung implementiert, die im unprogrammierten Zustand einen extrem hohen Widerstand aufweist und als offener Stromkreis fungiert. Während der Programmierung werden hohe Spannung und Strom an den Eingang angelegt. Die Anti-Fuse erwacht dann zum Leben, indem sie sich von ihrem ursprünglichen Zustand aus amorphem Silizium, das im Wesentlichen ein Isolator mit sehr hohem Widerstand ist, der zwei Metallbahnen verbindet, in ein leitfähiges Polysilizium verwandelt. Die Anti-Fuse-Technologie nimmt im Vergleich zu den beiden anderen die geringste Fläche ein, ist jedoch nur als einmal programmierte Option verfügbar.

FPGA-Grundlagen: Anwendungen, Strukturen und Komponenten - Blog - Ampheo - 12

EEPROM/Flash

Die auf EEPROM- oder Flash-Programmiertechnologien basierende SRAM-basierte Programmiertechnologie hat einen starken Konkurrenten. Der Hauptvorteil der Flash-basierten Programmierung besteht darin, dass sie nichtflüchtig ist. Obwohl Flash eine Neuprogrammierung ermöglicht, kann dies im Vergleich zur SRAM-Technologie nur relativ selten durchgeführt werden.  

SRAM

Wir sind uns bewusst, dass Halbleiter-RAM in zwei Varianten erhältlich ist: SRAM und DRAM. Während DRAM für dynamisches RAM steht, steht SRAM für statisches RAM. Der Begriff „statisch“ bezieht sich auf die Tatsache, dass sich der Wert einer grundlegenden SRAM-Speicherzelle nicht unbeabsichtigt oder beim Ausschalten der Stromversorgung ändert. SRAM wird unter Verwendung von Transistoren aufgebaut. Die folgende Grafik zeigt ein Beispiel einer typischen SRAM-Zelle mit sechs Transistoren zum Speichern eines Bits. Anders als beim DRAM, das einen Transistor und einen Kondensator kombiniert, ist dies nicht der Fall. Der Begriff „dynamisch“ beschreibt die Eigenschaft, dass der in der grundlegenden DRAM-Speicherzelle gespeicherte Wert gültig bleibt, solange der Kondensator geladen ist. Die Speicherzelle muss regelmäßig nachgefüllt werden, um ihre Ladung zu behalten, da Kondensatoren allmählich Ladung verlieren. Ein anderer Name dafür ist „Auffrischen“. Zum Programmieren verwenden viele FPGA-Anbieter statische Speicherzellen in SRAM-basierten FPGAs. SRAM-basierte FPGAs haben an Popularität gewonnen, weil sie neu programmierbar sind und CMOS-Technologie verwenden, die für ihren geringen dynamischen Stromverbrauch, ihre hohe Geschwindigkeit und ihre engere Integration bekannt ist. Sie werden zum Programmieren sowohl der Logikzellen als auch der Verbindungen verwendet.

FPGA-Grundlagen: Anwendungen, Strukturen und Komponenten - Blog - Ampheo - 13

FPGA-basiertes Projekt

  • IEEE 802.16e FPGA-Implementierung des FFT-Algorithmus (Mobile WiMAX)
  • Entwurf von GPS (Global Positioning System)-GSM mit FPGA (Global Systems for Mobiles)
  • LabVIEW-Implementierung von Mobile Navigator Space Vector PWM (Pulsweitenmodulation) für Drei-Pegel-Konverter
  • Entwicklung und Auswertung feldorientierter Steuerungen mit LabVIEW-Entwurf und
  • Implementierung einer programmierbaren Multiprozessorplattform für hohe Leistung
  • Implementierung und Architektur des MIMO Sphere-Systems
  • FPGA-basierte Hochfrequenzträgererzeugung zur Pulskompression mit Cordic-Algorithmus
  • Entwurf und Synthese programmierbarer Logikblöcke mit Makro-Gates und gemischter LUT
  • Entwurf und Implementierung von MP4-Decodern mit FPGA

 

FPGA-Anwendungen

  • Drahtlose Kommunikation
  • Kabelgebundene Kommunikation
  • Video- und Bildverarbeitung
  • Sicherheit
  • Medizin
  • Hochleistungsrechnen und Datenspeicherung
  • Unterhaltungselektronik
  • Rundfunk und professionelles AV
  • ASIC-Prototyping

   

Ⅸ FAQ zu FPGA-Boards

Was ist ein FPGA?

FPGAs sind integrierte Schaltkreise, die häufig serienmäßig erhältlich sind. Da sie es Kunden ermöglichen, die Hardware nach dem Produktionsprozess zu modifizieren, um bestimmte Anwendungsfälle zu erfüllen, werden sie als „feldprogrammierbar“ bezeichnet.  

Was sind die Unterschiede zwischen FPGA und MCU?

Ein FPGA und ein Mikrocontroller unterscheiden sich hauptsächlich im Grad der Anpassung und Komplexität. Auch Preis und Benutzerfreundlichkeit können variieren. Im Wesentlichen ermöglicht ein FPGA anspruchsvollere Vorgänge, höhere Anpassungsgrade und Hardwareänderungen, die nachträglich vorgenommen werden können.  

Was sind die Unterschiede zwischen FPGA und CPLD?

Ein integrierter Schaltkreis namens CPLD unterstützt den Betrieb digitaler Systeme. Ein FPGA hingegen ist ein integrierter Schaltkreis, der in erster Linie dazu dient, nach der Produktion von einem Kunden oder Entwickler geändert zu werden. In FPGAs können bis zu 100.000 winzige Logikblöcke enthalten sein.  

Wofür kann ein FPGA verwendet werden?

kann neu programmiert werden, um bestimmte Anwendungs- oder Funktionsanforderungen zu erfüllen. Zu den Branchen, in denen FPGAs verwendet werden, gehören die Luft- und Raumfahrt und Verteidigung, die drahtlose Kommunikation, das digitale Fernsehen, die Unterhaltungselektronik, die industrielle Motorsteuerung und wissenschaftliche Geräte.

Ampheo