Programmierbare Logikbausteine wie z.B. die FPGAs von Xilinx, werden von fortschrittlichen Entwicklungswerkzeugen unterstützt. In diesen Entwicklungsumgebungen sind die Programmiersprachen hardware-orientiert wie z.B. Verilog und VHDL. Software-Entwickler arbeiten meist exklusiv mit Hochsprachen wie C/C++, die ebenfalls von den heutigen prozessor-basierenden Lösungen unterstützt werden. In der Extensible-Processing-Platform ermöglicht Xilinx Unterstützung für populäre Software-Entwicklungs- und Debugging-Umgebungen wie u.a. ARM Real View und Werkzeuge von Fremdanbietern, auf Eclipse basierende IDEs, GNU oder Xilinx-Software-Entwicklungs-Kit. Der programmierbare Logikteil kann mit der Standardentwicklungsumgebung ISE oder den HDL- und algorithmischen Entwicklungswerkzeugen von Drittanbietern entwickelt und von Fehlern befreit werden.
Weil die Extensible Processing Platform einen prozessor-zentrischen Ansatz verfolgt (es bootet das Prozessorsystem bei Reset zuerst und konfiguriert dann die programmierbare Logik), ist ein deutlich stärkerer software-zentrischer Entwicklungsablauf möglich. Dieser Entwicklungsablauf erlaubt es Systemarchitekten, Logik- und Software-Entwicklern, parallel zu arbeiten, dabei ihre vertraute Programmierumgebung zu verwenden und dann die endgültigen Versionen für den Software-Anteil zusammenzubinden (Bild 2). Als Ergebnis können wichtige Entscheidungen für die Aufteilung von Systemfunktionen/Leistungsfähigkeit sehr früh und anschließend selbst noch während des gesamten Entwicklungsprozesses gefällt werden. Dies ist besonders wichtig bei Embedded-Systemen, bei denen die Komplexität der Applikationen eine extrem hohe Systemleistung bei eng geschnürten Kosten-, Zeit- und Verlustleistungs-Budgets erfordert.
Systemarchitekten und Software-Entwickler definieren das System anfangs üblicherweise aus der Software-Perspektive und bestimmen anschließend, welche Funktionen sie auslagern oder in Hardware beschleunigen müssen. Dies erlaubt es ihnen, ihr Design versuchsweise an die Leistungs-, Kosten- und Verlustleistungs-Zielvorgaben der Applikation anzupassen.
Auf Stufe dieser Machbarkeitsstudie sind die Systemarchitekten und Software-Entwickler am meisten besorgt, die Flexibilität dafür zu haben, was in Hardware ausgeführt werden kann oder was in Software läuft. Schrittweise gehen sie deshalb zur optimalen Aufteilung in Hardware und Software über und verfeinern dann diese beiden Anteile, um die Systemanforderungen zu erfüllen. Die Extensible Processing Platform eignet sich ideal für diesen Prozess, da sie diese Konvergenz mit einer idealisierten Programmierplattform beschleunigt. Es ist wichtig anzumerken, dass die AMBA-AXI-Schnittstellen der Schlüssel dazu sind, diesen software-zentrischen Entwicklungsablauf zu ermöglichen, weil sie eine nahtlose, gemeinsame und gut definierte Umgebung für die Hardware-Erweiterungen darstellen. Während der Logikentwickler diese Technik vollständig verstehen muss, abstrahieren die AMBA-Schnittstellen die erweiterte Logik für den Software-Entwickler als Memory-Mapped-Aufrufe. Dies erlaubt eine gleichzeitige fortwährende parallele Wechselwirkung von Hardware- und Software-Entwicklung in der gesamten Entwicklung.
Bereits Bestehendes nutzen
Die Adaption der ARM-Technik ist Teil der Strategie von Xilinx, offene Industriestandards zu nutzen, um die Entwicklung von Systemlösungen zu fördern. Die Xilinx-Strategie der Targeted-Design-Plattformen ist Ausgangspunkt dieser Initiativen und verbindet diese Bestrebungen mit denen von wichtigen Drittanbietern, um Xilinx-Kunden mit einem robusten Ecosystem zu versorgen, das ihre Entwicklungsaktivitäten ergänzt.
Zusammen mit der Fähigkeit, eine Vielzahl von Betriebssystemen wie Linux, Wind River VxWorks, Micrium µC/OSII und andere, die den Cortex-A9 unterstützen, auf diesem laufen zu lassen, wird die Extensible Processing Platform in der Lage sein, das große Angebot kommerziell verfügbarer Open-Source-Software-Komponenten aus Bibliotheken sowie auch älteren ARM-basierten Code zu nutzen.
Xilinx liefert dazu die Software, die speziell auf die Extensible Processor Platform zugeschnitten ist, wie Treiber, Stacks und APIs. Logikentwickler sind aber auch in der Lage, sowohl die verfügbare ARM-basierte IP als auch Systemlösungen aus einer Vielzahl von Industriequellen zu nutzen, die in Verbindung mit den Targeted-Design-Plattformen von Xilinx oder von weiteren System-Fremdanbietern entwickelt wurden.