In den Bereichen Regelungstechnik und Signalverarbeitung hat sich Matlab als Quasi-Standard für die Entwicklung von Algorithmen etabliert. Die meisten Algorithmen werden in Matlab optimiert und analysiert, bevor sie implementiert werden. Dies gilt unabhängig davon, ob die tatsächliche Implementerung von Hand oder über Code-Generierung geschieht. Neben dem Algorithmus selbst werden dabei normalerweise auch Skripte geschrieben, um die Performance des Algorithmus zu analysieren und Parameter für verschiedene Anwendungsfälle zu berechnen. An dieser Stelle wäre es natürlich von Vorteil, mit Matlab direkt Messungen auf der realen Hardware durchführen zu können.
Dies ist tatsächlich möglich – ein Matlab-Prototyp kann direkt aus Matlab-Skripten angesprochen werden (Bild 1). Dadurch erhält der Applikationsspezialist direkten Zugriff auf die tatsächliche FPGA-Implementerung des Algorithmus, kann sich aber weiterhin in der ihm gut bekannten Welt von Matlab bewegen. Gleichzeitig kann er auch die bereits während der initialen Entwicklung des Algorithmus geschriebenen Analysefunktionen einfach auf Daten anwenden, die von der realen Hardware aufgezeichnet wurden. Dies gilt ebenfalls für die Berechnung von Parametern (z.B. Filter-Koeffizienten) für verschiedene Anwendungsfälle. Alle bereits in Matlab simulierten Testfälle lassen sich also auch auf der Hardware ausführen, und die Ergebnisse mit realen aufgezeichneten Daten lassen sich einfach mit Simulationen vergleichen (Bild 2).
FPGA-Spezialisten sind jedoch nach wie vor nötig, wenn tatsächlich eine Änderung am Algorithmus vorgenommen werden muss. Genau wie bei Mikrocontrollern und C/C++ kann der Applikationsspezialist aber wie gewohnt für die Optimierung von Parametern oder ausführliches Testen selbstständig und effizient arbeiten.
Dank bestehender Lösungen für die Kommunikation zwischen Matlab und einer FPGA-Implementierung lassen sich Matlab-Prototypen also mit minimalem Zusatzaufwand realisieren. Zwei Beispiele für bereits bestehende Lösungen sind etwa der FPGA-Manager von Enclustra (siehe Kasten) und Simulink Real-Time.
FPGA-Manager – die universelle Verbindung zwischen |
---|
Die von Enclustra entwickelte IP „FPGA-Manager“ implementiert die gesamte Kommunikation zwischen einem Host-PC und einem FPGA. Dazu wird im FPGA ein IP-Core eingebaut, der mit einer mitgelieferten Software-Bibliothek auf dem Entwicklungs-PC kommuniziert. Dadurch kann aus der PC-Software einfach auf Register im FPGA zugegriffen werden. Darüber hinaus können auch Datenströme (z.B. Video-Streams) in beide Richtungen übertragen werden, ohne dass der Benutzer sich um Protokolle oder andere Low-Level-Spezifikationen kümmern muss. FPGA-Manager unterstützt dabei verschiedene Schnittstellen (PCI Express, Ethernet, USB), Programmiersprachen (C, C++, C#, Matlab), Betriebssysteme (Windows, Linux) und FPGA-Hersteller (Xilinx, Altera). Dadurch ist diese Kommunikationslösung flexibel genug, um in den meisten Anwendungen eingesetzt werden zu können. Der Aufwand für eine Verbindung zwischen Entwicklungs-PC und FPGA fällt dadurch minimal aus. |