Was ist eine FPGA-Entwicklung?
FPGA-Entwicklungen sind das kundenspezifische Design eines FPGAs, um einen IC mit der gewünschten Funktionalität zu entwickeln.
FPGA steht für Field Programmable Gate Array und ist ein integrierter Schaltkreis, dessen Funktionen auf der Entwicklungsseite freiprogrammiert werden können. FPGAs enthalten eine große Anzahl von Schaltkreisen, darunter Recheneinheiten, Speicher, Register und einfache Logikschaltungen.
Ohne jegliche Modifikationen handelt es sich lediglich um eine Anordnung von Schaltkreisen ohne Funktionalität, aber durch die Kombination der internen Schaltkreise und die Gestaltung der logischen Schaltkreise kann der Entwickler die von ihm gewünschte Funktionalität frei bereitstellen.
Ähnlich wie bei FPGAs gibt es anwendungsspezifische integrierte Schaltungen (ASICs), die an die Wünsche des Benutzers angepasst werden können, aber dazu müssen vor der Herstellung des ICs kundenspezifische Funktionen entworfen werden. Dies nimmt Zeit für Design und Entwicklung in Anspruch, und sobald das Produkt in Produktion ist, kann die Funktionalität nicht mehr frei vor Ort geändert werden.
Anwendungen von FPGA-Entwicklungen
FPGA-Entwicklungen sind für die Entwicklung von elektronischen Geräten und Platinen, die ICs enthalten, unerlässlich. FPGA-Entwicklungen werden bei der Entwicklung elektronischer Geräte in der Telekommunikation, der Automobilindustrie, der Medizintechnik, der Unterhaltungselektronik und in allen anderen Bereichen eingesetzt.
Die FPGA-Entwicklungen haben den Vorteil, dass die erforderlichen Funktionen in FPGAs programmiert werden können, diese dann in elektronische Geräte eingebaut werden können, um sie an realen Geräten zu überprüfen, und die Ergebnisse zurückgemeldet werden können.
Ein weiterer Nachteil sind die im Vergleich zu ASICs höheren Produktionskosten und es besteht die Tendenz, FPGAs in der Entwicklungsphase zu verwenden und ASICs erst nach Fertigstellung des Entwurfs in das Endprodukt einzubauen. Die jüngsten Verbesserungen in der Halbleiterfertigungstechnologie haben jedoch zu einer höheren Integration und niedrigeren Kosten für FPGAs geführt, so dass immer mehr FPGAs in Endprodukten eingesetzt werden.
Funktionsweise der FPGA-Entwicklungen
Der Ablauf der FPGA-Entwicklungen ist im Grunde derselbe wie bei anderen IC-Entwicklungen, z. B. ASICs. Während bei der ASIC-Entwicklung die Fertigungsabteilung für den Prototyping-Prozess zuständig ist, ist der FPGA-Entwickler bei der FPGA-Entwicklung auch für den Prozess der Implementierung des Programms auf dem eigentlichen Chip verantwortlich, der dem ASIC-Prototyp entspricht.
Der Ablauf der FPGA-Entwicklungen umfasst die folgenden Prozesse:
1. Festlegung der Spezifikationen
Die Spezifikationen, wie z. B. die im FPGA zu implementierenden Funktionen, die Schnittstellen zu anderen Komponenten des Systems, in das das FPGA integriert werden soll, die zeitlichen Vorgaben usw., werden zusammengestellt, und das FPGA, das die Spezifikationen erfüllt, wird ausgewählt.
2. Entwurf von Logikschaltungen
Die logische Funktion wird mit Hardware-Beschreibungssprachen wie VHDL und Verilog-HDL beschrieben.
3. Funktionale Verifizierung
Die Funktionssimulation wird durchgeführt, um zu überprüfen, ob das Verhalten der Logikschaltung korrekt ist.
4. Kompilierung
Die logischen Gleichungen, die aus Gattern auf dem FPGA bestehen, werden aus der HDL-Beschreibung generiert, und die logischen Gleichungen werden weiter optimiert, um eine Netzliste zu erstellen. Jede Schaltung wird dann auf dem tatsächlichen FPGA platziert und die Verdrahtung zwischen den Schaltungen wird festgelegt. Diese Reihe von Prozessen wird als Kompilierung bezeichnet.
5. Zeitliche Verifizierung
Auf der Grundlage der Platzierungs- und Routing-Informationen wird die physikalische Verzögerungszeit simuliert, um zu bestätigen, dass die Timing-Bedingungen erfüllt sind.
6. Herunterladen
Die generierten Schaltungsdaten werden auf den FPGA heruntergeladen. Durch diesen Prozess wird das FPGA, das nur ein Array von Gattern war, in die vom Entwickler gewünschte Schaltung umgewandelt.
7. Verifizierung des FPGA-Betriebs
Das FPGA wird betrieben, um zu überprüfen, ob es keine funktionalen Defekte oder Leistungsmängel gibt. Es gibt zwei Arten der Betriebsverifizierung: Zum einen wird das FPGA auf ein Evaluation Board gesetzt und eine Evaluationssimulation durchgeführt, zum anderen wird das FPGA tatsächlich in ein System eingebaut und betrieben. Die tatsächliche Geräteverifizierung eignet sich für FPGAs mit großen Gattergrößen, da sie weniger Zeit für die Verifizierung benötigt.
Weitere Informationen zu FPGA-Entwicklungen
1. Programmiersprachen für FPGA-Entwicklungen
HDL, das zum Schreiben von FPGA-Code verwendet wird, ist eine Low-Level-Sprache, die früher schwer zu schreiben war, es sei denn, man war ein Hardware-Ingenieur, der Schaltungen entwerfen konnte. Heutzutage ermöglichen integrierte Softwareplattformen FPGA-Entwicklungen in einer anderen Programmiersprache ohne HDL-Kenntnisse.
Die Plattform ermöglicht FPGA-Funktionen durch die Umwandlung von Hochsprachen in niedrigere Sprachen; es ist auch möglich, trainierte Deep-Learning-Modelle, die in den Frameworks Tensorflow und Pytorch erstellt wurden, zur Beschleunigung von FPGAs zu verwenden.
2. Hardware-Effizienz
Geräte wie ASICs verwenden Sprünge zwischen dem Programm und dem Speicher, die Energie zum Speichern und Abrufen von Daten verbrauchen und die Echtzeitleistung verringern. FPGAs müssen nicht zwischen dem Programm und dem Speicher springen, was eine effiziente Datenspeicherung und -abfrage ermöglicht. FPGAs können auch stromhungrige Aufgaben auslagern.