Damit sich ein Software-Entwickler nicht mit Details der FPGA-Technologie beschäftigen muss, gibt es eine strikte Trennung zwischen der Software- und Hardware-Entwicklungsumgebung. So kann beispielsweise der Hardware-Designer die komplette ZYNQ Plattform konfigurieren. Der Software-Entwickler arbeitet dann mit dieser Plattform, als wäre diese ein ganz normaler Mikrocontroller oder DSP.
Auch die Verwendung von 3rd Party Tools wird unterstützt; hierzu gehören beispielsweise ARM DS-5, CodeSourcery CodeBench oder Trace32 von Lauterbach. Für den ARM-Prozessor wird zudem eine Vielzahl bekannter Betriebssysteme unterstützt. Anbei einige der wichtigsten Vertreter: Linux, VxWorks, Android, Windows Embedded Compact 7, µC/OS-II und ThreadX/NetX.
Xilinx liefert zudem ein eigenes SDK aus. Dieses Basiert auf einem GNU Compiler und Debugger. Das Frontend wird mit der Ecilpse-Umgebung bereitgestellt. Im kostenlosen Webpack von Xilinx, sind alle nötigen Tools für die drei kleinsten Zynq-Varianten enthalten. Es fallen hier also keine versteckten Kosten für Tools für den Kunden an, sobald er ein ZYNQ-Design startet. Beim Webpack wird auch der ZYNQ FPGA-Teil voll unterstützt: von der Synthese bis zum Bitfile.
Xilinx XPS
Zur Konfiguration des Prozessorblocks steht das Xilinx Platform Studio (XPS) zur Verfügung. Hierbei handelt es sich um ein eigenständiges Tool, das auch Software Ingenieure gut bedienen können, die keine Erfahrung mit FPGA und deren klassischen Entwicklungsumgebung haben. Hier steht eine GUI zur kompletten Konfiguration des ZYNQ-Prozessorblocks zur Verfügung. Die Einstellungen dienen später als Grundlage für die Erzeugung des FSBL. Alle veränderbaren Blöcke sind dazu in Bild 6 in grün dargestellt: DDR-Controller, AXI-Interfaces zum FPGA-Teil, Clocking, DMA-Block und die Aktivierung der IO-Peripherals. Die benutzerdefinierten Einstellungen kann der Anwender anschließend auch exportieren. Zudem gibt es bereits für einige Evaluation Boards vorgefertigte Settings zum Import (z.B. das KC702 Board). Auf diese Weise erhält der Entwickler innerhalb weniger Minuten ein lauffähiges Design. Im XPS stehennauch Soft-IP Peripherals zur Verfügung, um das System zu ergänzen. Die Quellen der kostenlosen Varianten stehen in der Regel als frei lesbarer VHDL- und C-Code bereit, sollten Sie beispielsweise Anpassungen für Ihre Zwecke vornehmen wollen. Aber der Anwender kann auch komplett eigene IPs generieren – dazu im Verlauf des Beitrages mehr.
Xilinx SDK
Für die Software-Seite stellt Xilinx ein SDK bereit. Es arbeitet auf der Basis von GNU C/C++ Complier und Debugger sowie Eclipse als Frontend. Um die Einstellungen im XPS zu erhalten, werden die Dateien zum SDK exportiert. Die Menge der exportieren Dateien hat Xilinx bewusst übersichtlich gehalten, um eine klare und transparente Übergabe sicherzustellen. Exportiert werden fünf Dateien.
* ps7_init.c , ps7_init.h
Werden benötigt, um ein FSBL unabhängig vom SDK zu erzeugen (für 3rd Party Tools).
* ps7_init.tcl
Ein TCL Script zur Initialisierung des ZYNQ, alternativ zum FSBL. Wird beispielsweise im JTAG-Modus verwendet, um die Konfiguration automatisiert zu laden (z.B. via »Configuration« in Eclipse). So wird vermieden, dass der User bei jedem Kaltstart ohne Flash Konfiguration, das FSBL manuell laden muss.
* system.xml
Ein XML-Skript, das von Eclipse genutzt wird, um komfortabel ein FSBL und BSP zu generieren.
* ps7_init.html
Eine HTML Übersicht über die ZYNQ Plattform. Diese dient der persönlichen Dokumentation und als Übersicht der Konfiguration aus dem XPS.