FPGA-Programmierung
Bei der FPGA-Programmierung erzeugt man eine Beschreibung der Hardwarestruktur, die dann mit Hilfe von Synthese- und Routingwerkzeugen auf den eigentlichen FPGA-Chip übertragen wird. Diese Hardwarebeschreibung findet typischerweise in speziellen Sprachen wie VHDL oder Verilog statt. Anstelle von FPGA-Programmierung spricht man deshalb auch von einer FPGA-Konfiguration.
Im Gegensatz zur Programmierung etwa von Mikroprozessoren richtet sich die FPGA-Programmierung nicht an einem vorgegebenen Betriebssystem und einer Treiberbasis aus. Sie zielt stattdessen auf die Definition von Strukturen im Halbleiter ab, die später die beabsichtigten Funktionen ausführen. Das ermöglicht einen Spezialisierungs- und Parallelitätsgrad, der von herkömmlichen, vorgefertigten Chips nur schwer zu erreichen ist. Wie leistungsfähig ein programmierter FPGA ist, hängt vor allem davon ab, wie gelungen sein Design ist und damit direkt von seiner effizienten Programmierung.
Das manuelle Arbeiten mit Hardwarebeschreibungen erfordert eine große Erfahrung auf Seiten des Programmierers. Mit zunehmender Komplexität verlangsamt dies die Entwicklungs- und vor allem die Verifikationsprozesse erheblich. Alternativ zum manuellen Entwurf setzen sich darum immer mehr Tools zur FPGA-Programmierung durch, die die Generierung und Verifikation von HDL-Code aus Programmier- und Entwicklungsumgebungen wie MATLAB und Simulink heraus automatisieren.
FPGA-Programmierung mit MATLAB und Simulink
HDL Coder ist das zentrale Werkzeug für die FPGA-Programmierung in der MathWorks-Entwicklungsumgebung. HDL Coder generiert plattformunabhängigen, synthetisierbaren VHDL- und Verilog-Code aus MATLAB-Funktionen, Simulink-Modellen und Stateflow-Diagrammen. Außerdem ermöglicht er die Verifikation des generierten Codes beispielsweise für High-Integrity-Anwendungen nach DO-254 und weiteren Standards durch direkte Rückverfolgbarkeit zwischen Simulink-Modellen und dem daraus generierten Code.
HDL Verifier automatisiert außerdem die Verifikation von VHDL- und Verilog-Designs und macht damit die manuelle Erstellung von Testbenches für VHDL und Verilog überflüssig. Er unterstützt die Anbindung von HDL-Simulatoren von Cadence® Incisive®, Mentor Graphics® ModelSim® und Questa® an MATLAB und Simulink sowie die FPGA-in-the-Loop-Verifikation mit FPGA-Boards von AMD und Altera.
Beispiele und Anleitungen
Nachrichten und Artikel
FPGA-Programmierung FAQs
FPGA-Programmierung ist der Prozess, die digitale Logikschaltung in einem FPGA anzupassen, um bestimmte Anwendungen auszuführen.
Die wichtigsten Schritte umfassen Hardware-Architektur-Design, Entwurf (Schreiben von RTL unter Verwendung einer Hardwarebeschreibungssprache), Verifikation, Synthese, Integration mit Referenzdesigns, Implementierung zur Generierung eines Bitstreams sowie Laborprüfung und Debugging.
Eine HDL ist eine Sprache wie VHDL, Verilog oder SystemVerilog, die zur Beschreibung des Verhaltens digitaler Schaltungen verwendet wird. Die Register-Transfer-Logik (RTL)-Ebene von HDLs kann als Eingabe für Logiksynthesewerkzeuge verwendet werden, die die Erstellung von Netlists automatisieren.
MATLAB und Simulink ermöglichen es Ihnen, sich auf Algorithmus- und Hardware-Architektur-Design zu konzentrieren, und dann HDL Coder zu verwenden, um automatisch synthetisierbaren Verilog-, VHDL- oder SystemVerilog-RTL-Code zu erzeugen, wodurch das manuelle Schreiben von HDL entfällt.
Verifikation stellt sicher, dass Ihr Design vor der Programmierung des FPGA wie beabsichtigt funktioniert, wobei Testbenches oder Methoden wie UVM verwendet werden, um Designprobleme frühzeitig zu erkennen.
Die Synthese wandelt RTL-Code in digitale Logik-Netlists um und versucht dabei, Taktfrequenzziele zu erreichen und den Ressourcenverbrauch auf dem FPGA zu minimieren.
Nachdem der Bitstream auf das Gerät geladen wurde, führen Sie Tests mit realen oder Testeingaben durch, und HDL Coder ermöglicht es Ihnen, Daten aus MATLAB zu speisen und interne FPGA-Signale zum Debuggen zu erfassen.
Ein SoC-FPGA ist ein feldprogrammierbares Gate-Array, das außerdem einen fest integrierten Prozessor auf dem Gerät enthält und damit ein System-on-Chip mit sowohl programmierbarer Logik als auch Software-Funktionen bildet.
Softwarereferenz
Siehe auch: Elektronik, HDL Coder, HDL Verifier