Deutschland - Kennzeichen Deutschland

Incoterms:DDP
Alle Preise sind inklusive Zoll und Gebühren bei der Auswahl der Versandart.

Bitte bestätigen Sie Ihre Währungsauswahl:

Euro
Versand ist kostenfrei bei den meisten Bestellungen über 50 € (EUR)

US Dollar
Versand ist kostenfrei bei den meisten Bestellungen über $60 (USD)

Bench Talk for Design Engineers

Mouser German Blog

rss

Mouser Electronics, Inc german language blogs


Beschleunigung von RFSoC-Lösungen mit Vitis Adam Taylor

(Quelle: Xilinx)

Die Produktfamilie Zynq® UltraScale+RFSoC von Xilinx ist eine revolutionäre Klasse von Bauelementen, die HF-Datenwandler mit einem hochleistungsfähigen Verarbeitungssystem und programmierbarer Logik in einem Signalbaustein vereint. Der HF-Datenwandler beinhaltet unter anderem einen Analog-Digital-Wandler (ADC) und einen Digital-Analog-Wandler (DAC) sowie alle Elemente, die zur Erzeugung und Verarbeitung von Hochfrequenzsignalen erforderlich sind. So bietet der HF-Datenwandler digitale Auf- und Abwärtswandler, Mischer und numerisch gesteuerte Oszillatoren. Das Radio Frequency System on Chip (RFSoC) verfügt außerdem über Fehlerkorrekturblöcke (FEC, Forward Error Correction) für Soft-Decision und Low-Density Parity Check (LDPC), die das neueste FEC-Codierschema unterstützen, um die Kanalkapazität zu maximieren.

Diese Single-Silicon-Lösung bietet dem Systementwickler mehrere Vorteile, wie z.B. ein hoch integriertes System, das Größe und Komplexität der Leiterplatte deutlich reduziert und die Gesamtverlustleistung verringert. Zudem unterstützt der Zynq UltraScale+ RFSoC den Entwickler mit einer direkten Sampling-Lösung. Das direkte Sampling erfolgt über den ADC und den DAC, die im RF-Datenwandler verwendet werden. Diese bieten eine hohe Abtastfrequenz (10GSPS in Gen3-Geräten) und eine große analoge Eingangsbandbreite (6GHz in Gen3-Geräten). Durch die Verwendung einer direkten Abtastung entfällt die Notwendigkeit von analogen Frontends, die eine Auf- oder Abwärtswandlung ermöglichen. Dies bietet erhebliche Vorteile auf Systemebene, da diese analogen Frontends nicht programmierbar oder leicht anpassbar sind, um lizenzrechtliche oder geografische Einschränkungen zu berücksichtigen, die oft die Verwendung unterschiedlicher Frequenzbänder erfordern.

Der Zynq UltraScale+ RFSoC verfügt außerdem über eine 64-Bit Quad-Core Arm® Cortex-A53 Application Processing Unit und eine 32-bit Dual-Core Arm Cortex-R5 Real-time Processing Unit (Abbildung 1).

Abbildung 1: Das Zynq UltraScale+ RFSoC-Blockdiagramm zeigt den Aufbau der Lösung. (Quelle: Xilinx)

Im Zynq UltraScale+ RFSoC Processing System (PS) können Echtzeitsteuerungs- und Sicherheitsanwendungen sowie Hochleistungsanwendungen implementiert werden. Das Zynq UltraScale+ RFSoC PS bietet außerdem Schnittstellenunterstützung für mehrere Industriestandards, wie GigE, SATA, USB3, PCIe, CAN, I2C, SPI und andere. Gleichzeitig ist die programmierbare Logik in Kombination mit dem GTY Serializer/Deserializer (SERDES) in der Lage, alle CPRI-Leitungsraten (Common Public Radio Interface) und bis zu 100 GE zu unterstützen.

Bei der Entwicklung von RFSoC-Lösungen wird angestrebt, die programmierbare Logik zu nutzen, um vom Durchsatz, Determinismus und der Reaktionsfähigkeit zu profitieren, die durch die parallele Struktur ermöglicht werden. Lösungen, die mit einem Zynq UltraScale+ RFSoC implementiert werden, sind natürlich komplex. Software-definierte Funksysteme, RADAR und Testgeräte sind hervorragende Beispiele. Die Entwicklung und Implementierung dieser Algorithmen rein auf der Register-Transfer-Ebene (RTL) kann sehr zeitaufwändig sein und die Markteinführungszeit beeinträchtigen.

Eine Methode, mit der eine optimale Markteinführungszeit erreicht werden kann und die es dem Entwickler dennoch ermöglicht, die parallelen Fähigkeiten der programmierbaren Logik zu nutzen, ist die Verwendung der Unified-Software-Plattform Vitis von Xilinx. Mit Vitis können Anwender Algorithmen vom Verarbeitungssystem in die programmierbare Logik beschleunigen. Diese Beschleunigung wird durch High-Level-Synthese und OpenCL bei der Arbeit mit heterogenen System-on-Chip-Bausteinen oder Beschleunigungskarten von Xilinx ermöglicht.

Beschleunigung mit Vitis und OpenCL

Mit Vitis können Anwender das OpenCL-Framework nutzen, um Beschleunigungs-Kernel innerhalb der programmierbaren Logik zu implementieren. Diese Beschleunigungs-Kernel wurden mit einer höher entwickelten Sprache als einer traditionellen RTL definiert.

OpenCL ist ein Industriestandard-Framework, das Parallelverarbeitung auf heterogenen Systemen unterstützt. Eines der Kernprinzipien hinter OpenCL ist es, plattformübergreifende Funktionalität zu ermöglichen, ohne dass Codeänderungen erforderlich sind. Dadurch kann derselbe Code auf CPUs, GPUs, FPGAs, DSPs usw. portiert werden, wobei die Performance abhängig von den Fähigkeiten der jeweiligen Plattform ist.

OpenCL verwendet ein Host- und Kernel-Modell (Abbildung 2). Jedes System hat einen Host, der typischerweise x86-basiert ist, sowie mehrere Kernel, die die Beschleunigung bereitstellen und in der Regel GPU-, DSP- oder FPGA-basiert sind. Zur Unterstützung des OpenCL-Flows wird die Host-Anwendung oft in C/C++ entwickelt und verwendet OpenCL-APIs. Diese OpenCL-APIs ermöglichen es dem Host, den gesamten Anwendungslebenszyklus von Laden, Konfiguration und Ausführung von Kernels zu steuern. Der Kernel wird zur Unterstützung der plattformübergreifenden Portabilität in der Programmiersprache OpenCL C entwickelt, die zwar auf C basiert, aber Einschränkungen aufweist, um die plattformübergreifende Portabilität zu unterstützen. 

Bei diesem Modell kann das Host-Programm mit einem Standard-Compiler wie GCC oder G++ kompiliert werden, während der Kernel-Compiler herstellerspezifisch ist.  

Abbildung 2: Das Diagramm zeigt, wie ein Host-Programm dank der Open-CL-Struktur einen Standard-Compiler verwenden kann, während der Kernel einen herstellerspezifischen Compiler verwendet. (Quelle: Xilinx)

Bei der Arbeit mit heterogenen System-on-Chip-Geräten von Xilinx ist die Arm Application Processing Unit der Host, während die programmierbare Logik die Kernel implementiert. Vitis bietet dem Entwickler alles, was er beim Einsatz von heterogenen Xilinx-SoCs oder Beschleunigungskarten zum Generieren, Debuggen und Analysieren sowohl der Host- als auch der Kernel-Elemente benötigt.

Vitis-Plattform

Um die Möglichkeiten von Vitis OpenCL nutzen zu können, wird eine Basisplattform benötigt. Diese Basisplattform definiert sowohl die Hardware- als auch die Softwarekonfiguration der zugrunde liegenden Hardware. Die Hardware-Plattform wird mit der Vivado® Design Suite erstellt, stellt Takte, Advanced eXtensible Interface Processing System/Programmable Logic (AXI PS/PL)-Schnittstellen zur Verfügung und unterbricht den Vitis Compiler. Über diese Schnittstellen kann der Vitis-Compiler die Beschleunigungs-Kernel in die Speicherabbildung des Verarbeitungssystems einbinden. Das ermöglicht einen effizienten Datentransfer mittels Direct Memory Access (DMA) und die Steuerung der Kernel. Das Software-Element der Plattform ist ein PetaLinux und stellt ein Embedded-Linux-Betriebssystem bereit, das die Xilinx Run Time (XRT) unterstützt (Abbildung 3).

Abbildung 3: Das Diagramm zeigt den Vitis Platform Development Flow. (Quelle: Autor)

Natürlich kann die in Vivado entwickelte Basisplattform auch Designelemente und die für Vitis verfügbaren Hooks enthalten. Im Fall des Zynq UltraScale+ RFSoC kann das Basisdesign die notwendige Infrastruktur beinhalten, um die HF-Datenwandler mit den GTY-Transceivern an externe Schnittstellen anzuschließen oder Daten in den und aus dem Prozessorspeicherbereich zu übertragen.

Vitis-Beschleunigung

Sobald die Beschleunigungsplattform verfügbar ist, können Entwickler damit beginnen, ihre Lösung mit Vitis zu entwickeln. Mit Vitis können sie die Steuerung und Konfiguration der HF-Datenwandler und zusätzlicher IP implementieren. Sie können dann auch den gewünschten HF-Datenverarbeitungsalgorithmus mit C/C++ und OpenCL C implementieren, um durch Engpässe hindurch zu beschleunigen und die Gesamtsystemleistung zu verbessern.

Zur Unterstützung bei der Entwicklung des Algorithmus stellt Vitis mehrere Open-Source-Bibliotheken zur Beschleunigung bereit (Abbildung 4). Diese Bibliotheken umfassen Unterstützung für Mathematik, lineare Algebra, DSP, Datenkompression und natürlich KI.

Abbildung 4: Die Vitis-Entwicklungsumgebung bietet Open-Source-Bibliotheken zur Beschleunigung, die bei der Entwicklung von Lösungen unterstützen. (Quelle: Autor)

Nach der Implementierung der Software-Algorithmen kann der Entwickler die von Vitis bereitgestellten Software- und Hardware-Emulationsabläufe nutzen, um den Algorithmus für die Implementierung in die programmierbare Logik zu optimieren, bevor er das finale Boot-Image erzeugt (Abbildung 5).

Abbildung 5: Vitis Application Development Flow optimiert den Algorithmus mittels SW- und HW-Emulation in der programmierbaren Logik, bevor das finale Boot-Image erzeugt wird. (Quelle: Autor)

Um die parallelen Möglichkeiten der programmierbaren Logik auszunutzen, kann der Entwickler Schleifen in der Pipeline verlegen oder auflösen sowie Speicher und AXI-Schnittstellenstrukturen im Kernel organisieren. Diese Optimierungen werden mithilfe von Pragmas im Quellcode implementiert. Die Identifizierung der potenziellen Bereiche für die Optimierung des Kernel-Codes kann mit dem Vitis Analyzer und der Vitis HLS-Analyseansicht durchgeführt werden (Abbildung 6).

Abbildung 6: Die Vitis Analyzer Platform View hilft Entwicklern, die potenziellen Bereiche für die Optimierung des Kernel-Codes zu identifizieren. (Quelle: Autor)

Nach Abschluss der Optimierung kann der Entwickler die finalen Boot-Dateien erstellen und das System für die nächste Test- und Verifizierungsphase bereitstellen.

Zusammenfassung

In Kombination mit den OpenCL-Fähigkeiten von Vitis bietet RFSoC dem Entwickler eine innovative, nahtlos gekoppelte Lösung. Dies kann durch die Nutzung von höheren Programmiersprachen, Bibliotheken und Frameworks eine äußerst reaktionsschnelle und deterministische Gesamtlösung liefern. Mit Hilfe dieses Entwicklungsverfahrens wird ein systemgesteuerter Ansatz zur Implementierung der Lösung auf höherer Ebene ermöglicht, was zu einer kürzeren Markteinführungszeit führt.



« Zurück


Adam Taylor ist Professor für Embedded Systeme, Entwicklungsleiter und weltweit anerkannter Experte für FPGA/System on Chip und Elektronikdesign.


Alle Autoren

Alle anzeigen Alle anzeigen
Blog nach Datum anzeigen