Heim Der Blog Blog Details

PLDs vs. FPGAs: Was ist der Unterschied zwischen ihnen?

September 04 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
PLDs sind integrierte Schaltkreise, die so konfiguriert werden können, dass sie eine Reihe verschiedener digitaler Logikoperationen ausführen. Sie werden in zahlreichen Anwendungen eingesetzt, von einfachen Logikgattern bis hin zu komplexen eingebetteten Systemen. In diesem Blog werden Programmierung, Beispiele und andere Unterschiede zwischen PLDs und FPGAs, einem PLD-Typ, untersucht.

Was ist PLD?

Ein PLD ist eine Klasse integrierter Schaltkreise, die so konfiguriert werden können, dass sie eine Reihe verschiedener digitaler Logikoperationen ausführen. Häufige Verwendungszwecke sind einfache Logikschaltkreise, Zustandsmaschinen und Zähler, die nur wenige Logikgatter benötigen, um zu funktionieren.

PLDs vs. FPGAs: Was ist der Unterschied zwischen ihnen? - Blog - Ampheo - 1

 

PLD-Programmierung

Zum Programmieren von PLDs können verschiedene Techniken verwendet werden, darunter:
  • In-Circuit-Programmierung (ICP): PLDs können mithilfe einer Technik namens In-Circuit-Programmierung (ICP) programmiert werden, während sie in einen Schaltkreis eingefügt sind. Normalerweise wird diese Technik in Produktionsanwendungen verwendet.
  • Externe Programmierung (EPROM): PLDs können mithilfe externer Programmierung (EPROM) programmiert werden. Dazu wird das PLD aus dem Schaltkreis entfernt und ein externes Programmiergerät verwendet. Anwendungen in Entwicklung und Prototypen werden häufig mit dieser Technik eingesetzt.
  • Flash-Programmierung (Flash): Flash-Programmierung ist eine ähnliche Technik wie EPROM-Programmierung für PLDs, ermöglicht jedoch zahlreiche PLD-Neuprogrammierungen. Dieser Ansatz wird häufig in Situationen eingesetzt, in denen es erforderlich sein kann, die Logikfunktion zu ändern.
  PLDs werden häufig mit einem Softwaretool programmiert, das die Programmierdaten des PLDs erstellt. Normalerweise verfügt das Softwaretool über eine grafische Benutzeroberfläche, die es dem Benutzer ermöglicht, die Logikfunktion des PLDs zu entwerfen. Das Softwaretool generiert die PLD-Programmierdaten, wenn die Logikfunktion erstellt wurde. Anschließend werden die Programmierdaten mithilfe einer der oben genannten Techniken auf das PLD heruntergeladen.  

Was ist eine FPGA-Karte?

FPGA ist der vielseitigste PLD-Typ. Sie bestehen aus vielen Logikkomponenten, die auf viele Arten gekoppelt werden können. Sie eignen sich daher perfekt für Anwendungen, die viel Flexibilität und Anpassung erfordern. FPGAs werden häufig in Programmen für eingebettete Systeme, Signalverarbeitung, Netzwerke, Kryptographie, industrielle Automatisierung und andere Dinge verwendet.

PLDs vs. FPGAs: Was ist der Unterschied zwischen ihnen? - Blog - Ampheo - 2

 

FPGA-Programmierung

Ein programmierbares Routing-Netzwerk kann verwendet werden, um das Gitter der Logikzellen zu verbinden, aus denen FPGAs bestehen. Dadurch ist es möglich, FPGAs so anzuordnen, dass sie eine breite Palette von Funktionen ausführen. Zum Programmieren von FPGAs können verschiedene Techniken verwendet werden, darunter:
  • High-level synthesis (HLS): High-level synthesis (HLS) ist eine Technik zur Programmierung von FPGAs, die die Programmierinformationen für das FPGA mithilfe einer höheren Programmiersprache wie C oder C++ erstellt. Normalerweise wird dieser Ansatz für komplizierte Anwendungen verwendet, die ein hohes Leistungsniveau erfordern.
  • Verilog HDL: Die Logikfunktionen eines FPGAs werden mithilfe von Verilog HDL beschrieben, einer Hardwarebeschreibungssprache. Normalerweise wird dieser Ansatz bei mittelkomplexen Anwendungen verwendet.
  • VHDL: Ähnlich wie Verilog HDL ist VHDL eine Hardwarebeschreibungssprache. In den meisten Fällen wird diese Technik bei komplizierten Anwendungen verwendet.
  Zur Programmierung von FPGAs wird häufig ein Softwaretool verwendet, das die Programmierdaten für das FPGA erstellt. Normalerweise verfügt das Softwaretool über eine grafische Benutzeroberfläche, mit der der Benutzer die Logikfunktion des FPGA entwerfen kann. Das Softwaretool generiert die FPGA-Programmierdaten, wenn die Logikfunktion erstellt wurde. Anschließend werden die Programmierdaten mit einem Programmiertool, beispielsweise einem USB-Programmierer, auf das FPGA heruntergeladen.  

Video zu PLDs und FPGAs

 

Was ist der Unterschied zwischen PLDs und FPGAs?

  • Flexibilität: PLDs sind weniger flexibel als FPGAs, da sie eine feste Anzahl von Logikgattern und eine feste Verbindungsstruktur haben. Im Gegensatz dazu können FPGAs durch die Verbindung vieler Logikgatter so programmiert werden, dass sie eine größere Bandbreite von Logikoperationen implementieren.
  • Leistung: Da FPGAs so konzipiert werden können, dass sie spezielle Logikfunktionen implementieren, die auf die jeweilige Anwendung zugeschnitten sind, sind sie häufig leistungsfähiger als PLDs. PLDs sind jedoch normalerweise auf die Implementierung eines vorgegebenen Satzes von Logikfunktionen beschränkt.
  • Kosten: Da PLDs einfacher herzustellen sind, sind sie oft weniger teuer als FPGAs. Andererseits sind FPGAs teurer, weil ihre Herstellung schwieriger ist.
  • Stromverbrauch: Da PLDs einfacher zu bedienen sind als FPGAs, verbrauchen sie normalerweise weniger Strom. FPGAs hingegen können einen höheren Stromverbrauch haben, da sie angepasst werden können, um kompliziertere Logikaufgaben zu implementieren.
  • Programmierung: Da PLDs eine einfachere Programmiersprache unterstützen als FPGAs, sind sie oft einfacher zu programmieren. Andererseits kann die Programmierung von FPGAs anspruchsvoller sein, da sie eine anspruchsvollere Programmiersprache erfordert.
  • Debugging: Aufgrund ihrer einfacheren Architektur erfordern PLDs oft weniger Debugging-Zeit als FPGAs. Aufgrund ihrer komplexeren Architektur kann das Debuggen von FPGAs jedoch anspruchsvoller sein.
 

Tutorials zu PLDs und FPGAs

Wie verwende ich PLDs?

  1. Logikfunktion definieren: Der erste Schritt besteht darin, die Logikfunktion anzugeben, die das PLD verwenden soll. Dies kann erreicht werden, indem die Eingänge, Ausgänge und die gewünschte Beziehung zwischen beiden bestimmt werden.
  2. PLD auswählen: Nachdem die Logikfunktion definiert wurde, muss das für die Anwendung am besten geeignete PLD ausgewählt werden. Das PLD sollte mit den verwendeten Programmiertools kompatibel sein und genügend Logikgatter und andere Ressourcen enthalten, um die erforderliche Funktion zu implementieren.
  3. PLD entwerfen: Als nächstes muss die PLD-Schaltung entworfen werden. Hierzu kann eine Hardwarebeschreibungssprache (HDL) wie Verilog oder VHDL verwendet werden. Die Verbindungen zwischen den Logikgattern des PLD und anderen Komponenten werden im HDL-Code beschrieben.
  4. Entwurf in die Praxis umsetzen: Nachdem die PLD-Schaltung erstellt wurde, muss sie in die Praxis umgesetzt werden. Dieses Verfahren wandelt den HDL-Code in ein PLD-programmierbares Format um. Zur Durchführung des Syntheseprozesses wird ein Computerprogramm verwendet, das als Synthesizer bezeichnet wird.
  5. PLD programmieren: Das Programmieren des PLD ist der nächste Schritt nach der Erstellung des Designs in Synthese. Hierzu kann ein vom PLD-Hersteller angebotenes Programmiertool verwendet werden. Das Programmiertool erzeugt einen Bitstream, der in das PLD geladen werden kann, wobei das synthetisierte Design als Eingabe verwendet wird. Die Logikgatter des PLD und die Zustände anderer Komponenten werden durch eine Reihe von Binärwerten dargestellt, die als Bitstreams bezeichnet werden.
  6. PLD testen: Das Testen des PLD ist notwendig, um sicherzustellen, dass es nach der Programmierung ordnungsgemäß funktioniert. Hierzu kann ein Prüfstand oder ein Simulator verwendet werden. Ein Softwaretool, mit dem die Funktionsweise des PLD nachgeahmt werden kann, wird als Simulator bezeichnet. Das PLD kann mithilfe eines physischen Prüfstands getestet werden, bei dem es sich um einen physischen Schaltkreis handelt.
 

Wie verwende ich FPGAs?

  1. Erstellen der Logikfunktion: Der erste Schritt besteht darin, die Logikfunktion zu erstellen, die das FPGA zum Ausführen Ihres Programms verwenden wird. Hierzu kann eine Hardwarebeschreibungssprache (HDL) wie Verilog oder VHDL verwendet werden.
  2. Geben Sie dem Entwurf eine Zusammenfassung: Logikfunktionen müssen nach dem Entwurf synthetisiert werden. Mithilfe dieses Verfahrens wird der HDL-Code in eine Form umgewandelt, die das FPGA verstehen kann.
  3. Platzierung und Routing des Designs: Als Nächstes folgt das Routing und die Platzierung des Designs. Mit diesem Verfahren wird festgelegt, wo sich die Logikgatter und andere FPGA-Komponenten physisch befinden und welche Verbindungen sie aufweisen.
  4. Programmieren des FPGA: Das Programmieren des FPGA ist der nächste Schritt. Dies geschieht mithilfe des synthetisierten Designs. Hierzu kann das Programmiertool des FPGA-Herstellers verwendet werden. Das Programmiertool erzeugt mithilfe des synthetisierten Designs als Eingabe einen Bitstream, der in das FPGA eingespeist werden kann. Der Zustand der Logikgatter und anderer FPGA-Komponenten wird durch eine Reihe von Binärzahlen dargestellt, die als Bitstrom bezeichnet werden.
  5. FPGA testen: Das Testen des FPGA ist notwendig, um sicherzustellen, dass es nach der Programmierung ordnungsgemäß funktioniert. Hierzu kann ein Prüfstand oder ein Simulator verwendet werden. Ein Softwaretool, mit dem die Funktionalität des FPGA emuliert werden kann, wird als Simulator bezeichnet. Eine physische Schaltung, mit der das FPGA getestet werden kann, wird als physischer Prüfstand bezeichnet.
 

Beispiele für PLDs und FPGAs

Beispiele für PLDs

  • Programmable Array Logic (PAL): Ein PLD namens Programmable Array Logic (PAL) besteht aus einem Array von UND-Gattern, die jeweils so programmiert werden können, dass sie aktiviert oder deaktiviert werden. Die endgültige Ausgabe des PAL wird erstellt, indem die Ausgabe der UND-Gatter in ein ODER-Gatter eingespeist wird.

PLDs vs. FPGAs: Was ist der Unterschied zwischen ihnen? - Blog - Ampheo - 3

 
  • Generische Array-Logik (GAL): Eine GAL ist eine Art generische Array-Logik, die PAL ähnelt, aber auch ein Array von ODER-Gattern hat, was ihr zusätzliche Vielseitigkeit in den Arten von Logikoperationen verleiht, die sie ausführen kann.

PLDs vs. FPGAs: Was ist der Unterschied zwischen ihnen? - Blog - Ampheo - 4

 
  • Complex Programmable Logic Device (CPLD): Ein CPLD oder Complex Programmable Logic Device ist ein PLD, das umfangreicher und ausgefeilter ist als ein PAL oder GAL. Es enthält häufig eine Vielzahl von UND-Gattern, ODER-Gattern und Flip-Flops, wodurch es logische Operationen mit größerer Komplexität implementieren kann.

PLDs vs. FPGAs: Was ist der Unterschied zwischen ihnen? - Blog - Ampheo - 5

 
  • Field-Programmable Gate Arrays (FPGAs): FPGAs (Field-Programmable Gate Arrays) sind die anspruchsvollsten PLDs. Sie können so gestaltet werden, dass sie jede gewünschte Logikfunktion erfüllen, da sie praktisch eine leere Tafel sind. FPGAs bestehen aus einer Vielzahl von Logikgattern, Flip-Flops und anderen Komponenten, die auf jede gewünschte Weise gekoppelt werden können.

PLDs vs. FPGAs: Was ist der Unterschied zwischen ihnen? - Blog - Ampheo - 6

 

Beispiele für FPGAs

  • Xilinx Spartan-6: Der Spartan-6 ist ein FPGA mittlerer Preisklasse, das für viele Anwendungen, darunter Netzwerke, industrielle Steuerung und Telekommunikation, beliebt ist. Er verfügt über eine Speicherkapazität von bis zu 128 MB und eine Logikkapazität von bis zu 500.000 Gattern.

PLDs vs. FPGAs: Was ist der Unterschied zwischen ihnen? - Blog - Ampheo - 7

 
  • Intel Stratix V: Der Stratix V ist ein Premium-FPGA, das in Hochleistungsrechner- und Telekommunikationsanwendungen verwendet wird, die eine hohe Leistung und/oder einen geringen Stromverbrauch erfordern. Er verfügt über eine Speicherkapazität von bis zu 4 GB und eine Logikkapazität von bis zu 2 Millionen Gates.

PLDs vs. FPGAs: Was ist der Unterschied zwischen ihnen? - Blog - Ampheo - 8

 
  • Altera Arria 10: Wie der Stratix V ist der Arria 10 ein FPGA der Spitzenklasse. Er verfügt über eine Speicherkapazität von bis zu 16 GB und eine Logikkapazität von bis zu 3 Millionen Gates.

PLDs vs. FPGAs: Was ist der Unterschied zwischen ihnen? - Blog - Ampheo - 9

 
  • Zynq UltraScale+ von Xilinx: Dieses hybride FPGA kombiniert ein FPGA mit einem Prozessorkern. Aufgrund seiner Anpassungsfähigkeit kann es für eine breite Palette von Anwendungen eingesetzt werden, darunter maschinelles Lernen und eingebettete Systeme. Es verfügt über eine Speicherkapazität von bis zu 16 GB und eine Logikkapazität von bis zu 5 Millionen Gattern.

PLDs vs. FPGAs: Was ist der Unterschied zwischen ihnen? - Blog - Ampheo - 10

 

Ist FPGA ein PLD?

Ja, FPGA ist ein PLD. Ein programmierbares Logikgerät wird als PLD bezeichnet. Es ist eine Art integrierter Schaltkreis (IC), der so eingerichtet werden kann, dass er eine bestimmte Logikfunktion ausführt. Die komplexesten PLDs sind FPGAs. Sie bestehen aus einer Vielzahl von Logikgattern, Flip-Flops und anderen Elementen, die auf jede gewünschte Weise gekoppelt werden können. Daher sind die Logikfunktionen, die von FPGAs implementiert werden können, sehr flexibel.  

Fazit

Sowohl PLDs als auch FPGAs sind leistungsfähige digitale Logikgeräte, die so konfiguriert werden können, dass sie eine Reihe von Aufgaben ausführen. Abhängig von den Anforderungen der jeweiligen Anwendung wird eine bestimmte Technologie gewählt. Ein PLD könnte eine ausgezeichnete Wahl sein, wenn Sie nach einer kostengünstigen Lösung mit geringer Komplexität suchen. Ein FPGA kann eine bessere Option sein, wenn Sie eine vielseitige, leistungsstarke Lösung benötigen.
Ampheo