FPGA-Programmierung

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 Intel.

Siehe auch: HDL Coder, HDL Verifier