Accelerating RFSoC Solutions with Vitis
(Source: Xilinx)
The Zynq® UltraScale+ RFSoC family of devices from Xilinx is a truly groundbreaking class of devices that fuse RF data converters with a high-performance processing system and programmable logic within a signal device. Notably, the RF data converter includes analog-to-digital converter (ADC) and digital-to-analog converter (DAC) and all the elements required to generate and process radio frequency signals. As such, the RF data converter provides digital up and down converters, mixers, and numerically controlled oscillators. The radio frequency system on chip (RFSoC) also has soft-decision, low-density parity-check forward-error correcting blocks that support the latest forward error correction (FEC) coding scheme to help maximize channel capacity.
This single silicon solution offers several advantages to the system developer, including a tightly integrated solution that significantly reduces the size and complexity of the circuit board and reduces overall power dissipation. The Zynq UltraScale+ RFSoC also provides the developer with a direct sampling solution. Direct sampling becomes enabled thanks to the ADC and DAC used within the RF data converter. These provide a high sampling frequency (10GSPS in Gen3 devices) and a wide analog input bandwidth (6GHz in Gen3 devices). Using a direct sampling approach removes the need for analog front ends, which provide up or down conversion. This offers significant system-level advantages as these analog front ends are not programmable or readily adaptable to support licensing or geographic restrictions, which often require the use of different frequency bands.
The Zynq UltraScale+ RFSoC also contains a 64-bit quad-core Arm® Cortex-A53 Application Processing Unit and a 32-bit dual-core Arm Cortex-R5 Real-time Processing Unit (Figure 1).
Figure 1: The Zynq UltraScale+ RFSoC Block Diagram outlines the solution structure. (Source Xilinx)
Real-time control and safety applications, along with high-performance applications, may be implemented within the Zynq UltraScale+ RFSoC processing system (PS). To support interfacing, the Zynq UltraScale+ RFSoC PS also provides support for multiple industry-standard interfaces, such as GigE, SATA, USB3, PCIe, CAN, I2C, SPI, and more. At the same time, the programmable logic, combined with the GTY Serializer/Deserializer (SERDES), provides the ability to support all Common Public Radio Interface (CPRI) line rates and up to 100GE.
Development of RFSoC solutions will strive to leverage the programmable logic in order to benefit from the throughput, determinism, and responsivity provided by its parallel structure. Of course, solutions implemented using a Zynq UltraScale+ RFSoC will be complex. Software-defined radios, RADAR, and test equipment are excellent examples. Developing and implementing these algorithms purely at the register-transfer level (RTL) can be very time consuming and impact the time to market.
One method that enables an optimal time to market while still allowing the developer to leverage the parallel nature of programmable logic is to use the Vitis unified software platform from Xilinx. Vitis enables users to accelerate algorithms from the processing system into the programmable logic. This acceleration is made possible thanks to high-level synthesis and OpenCL when working with Xilinx heterogeneous system-on-chip devices or acceleration cards.
Vitis enables users to leverage the OpenCL framework to implement acceleration kernels within the programmable logic. These acceleration kernels have been defined using a higher-level language than a traditional RTL.
OpenCL is an industry-standard framework that supports parallel computing on heterogeneous systems. One of the core principles behind OpenCL is to enable cross-platform functionality without the need for code changes. This allows the same code to be portable across CPUs, GPUs, FPGAs, DSPs, etc., with the performance scaling depending upon the platforms capabilities.
OpenCL uses a host and kernel model (Figure 2). Each system will have one host, which is typically x86-based, and several kernels that provide the acceleration and are usually GPU-, DSP-, or FPGA-based. To support the OpenCL flow, the host application is often developed in C/C++ and uses OpenCL APIs. These OpenCL APIs allow the host to manage the entire application lifecycle of loading, configuring, and executing kernels. While supporting cross-platform portability, the kernel is developed using the OpenCL C language, which is based upon C but has limitations to support cross-platform portability.
This model allows the host program to be compiled using a standard compiler such as GCC or G++, while the kernel compiler is vendor-specific.
Figure 2: The diagram shows how the Open CL structure enables a host program to use a standard compiler while the kernel uses a vendor-specific compiler. (Source: Xilinx)
When working with Xilinx heterogeneous system-on-chip devices, the Arm Application Processing Unit is the host, while the programmable logic instantiates kernels. Vitis provides the developer with everything required to generate, debug, and analyze both the host and kernel elements when targeting Xilinx heterogeneous SoC or acceleration cards.
To be able to leverage the Vitis OpenCL capabilities, a base platform is required. This base platform defines both hardware and software configuration of the underlying hardware. The hardware platform is created using the Vivado® Design Suite, makes available clocks, Advanced eXtensible Interface processing system/programmable logic (AXI PS/PL) interfaces, and interrupts the Vitis compiler. Using these interfaces, the Vitis compiler can connect the acceleration kernels into the processing system memory map. This allows for efficient data transfer using Direct Memory Access (DMA) and control of the kernels. The platforms software element is provided by PetaLinux and provides an embedded Linux operating system that supports the Xilinx Run Time (XRT) (Figure 3).
Figure 3: The diagram illustrates the Vitis Platform Development Flow. (Source: Author)
Of course, the base platform developed in Vivado can also contain design elements and the hooks available to Vitis. In the case of the Zynq UltraScale+ RFSoC, the base design can include the necessary infrastructure to connect the RF Data Converters to external interfaces using the GTY transceivers or transferring data to and from the processor memory space.
Once the acceleration platform is available, developers can begin to develop their solution using Vitis. Using Vitis, they can implement control and configuration of the RF data converters and additional IP. The developers can then also implement the desired RF data-processing algorithm using C/C++ and OpenCL C to accelerate through bottlenecks and improve overall system performance.
To aid with the development of the algorithm, Vitis provides several open-source acceleration-ready libraries (Figure 4). These libraries include support for math, linear algebra, DSP, data compression, and, of course, AI.
Figure 4: The Vitis Development Environment provides open-source acceleration-ready libraries to aid in designing solutions. (Source: Author)
Once the software algorithms are implemented, the developer can use the software and hardware emulation flows provided by Vitis to optimize the algorithm for implementation in the programmable logic before generating the final boot image (Figure 5).
Figure 5: Vitis Application Development Flow optimizes the algorithm using SW and HW emulation in the programmable logic before creating the final boot image. (Source: Author)
To leverage the parallel nature of programmable logic, the developer might want to pipeline or unroll loops, organize memory, and AXI interfacing structures in the kernel. These optimizations are implemented using pragmas within the source code. Identifying the potential areas for optimizing the kernel code can be performed using the Vitis Analyzer and Vitis HLS analysis view (Figure 6).
Figure 6: Vitis Analyzer Platform View helps developers identify the potential areas for optimizing the kernel code. (Source: Author)
Once the optimization has been completed, the developer can build the final boot files and deploy the system for the next stage of testing and verification.
The RFSoC, combined with Vitis OpenCL capabilities, provides the developer with a groundbreaking, tightly-coupled solution. This solution can provide the most responsive and deterministic solution by leveraging high-level languages, libraries, and frameworks. This development methodology enables a higher level, system-driven approach to solution implementation, which results in a reduced time to market.
Adam Taylor is a professor of embedded systems, engineering leader, and world-recognized expert in FPGA/System on Chip and Electronic Design.
It has been said that revolutions often start with books and a new book just published, titled Software Defined Radio with Zynq® UltraScale+ RFSoC, will help to revolutionize teaching, research and practice in software defined radio (SDR). SDR is transforming modern radios in ways that would have been unimaginable to Marconi when he energized his first spark-gap transmitter nearly 130 years ago. AMDs Zynq UltraScale+ RFSoC devices extend this trend by packing a complete SDR platform into a single semiconductor device. This feat is achieved by integrating Arm processors, programmable logic, and direct RF converters into a single RFSoC. The new book explains the skills necessary to use these direct RF signal chains to build state-of-the-art software defined radios.
If you are looking for more details, kindly visit interwiser.
Software Defined Radio with Zynq® UltraScale+ RFSoC is the latest outcome from a long-term collaboration between AMD and the University of Strathclyde in Glasgow, Scotland. Last year marked the twentieth anniversary of this partnership which started with joint projects to help train students to use FPGAs in their designs. The University and the AMD Xilinx University Program developed and presented FPGA-centric DSP workshops throughout the US, Europe, and Asia starting in . To date, this partnership has produced three influential technical books including The Zynq Book, Exploring Zynq MPSoC, and now this latest book based on RFSoC.
SDR is not a new concept. The term became popular during the s, notably in a couple of articles written by Joseph Mitola III, but its origins go back to the s. Fundamentally, SDR uses software or firmware to alter one or more aspects of a radios functionality. For many decades, radios had been fixed-function, hard-wired devices but the advent of fast DSPs followed by numerous advancements in FPGA design have made it possible to create compact, capable, and potent SDR platforms.
The RFSoC is a groundbreaking device because it integrates direct RF signal chains into SoCs with FPGA fabric and Arm microprocessors. By integrating analog-to-digital and digital-to-analog converters sampling at multiple giga samples per second, multi-Nyquist zone operation is possible, resulting in the elimination of external analog mixers and filters. The availability of single-chip SDR implementations opens up entirely new applications in a wide greenfield yet to be explored. The Software Defined Radio with Zynq® UltraScale+ RFSoC book was developed to help students and experienced engineers alike to explore that greenfield.
Hard-wired radios worked well for decades in the world of fixed-spectrum allocation, but that world is rapidly changing. The radio spectrum is crowded and theres global pressure to find better ways to manage a finite resource the radio spectrum to permit wider use by more applications. That pressure to improve spectrum utilization creates something frequently called spectrum crunch. As a result, the spectrum crunch is forcing fixed spectrum allocation to give way to shared spectrum allocation and will ultimately lead to dynamic spectrum access (DSA). SDR is an important enabling technology for DSA and provides the ideal platform for cognitive radio systems that can make spectrum access and bandwidth decisions autonomously.
The chapters in the new SDR book have been ably written, assembled, and edited by three exceptionally talented editors and writers: Louise Crockett, David Northcote, and Robert Stewart are the leaders of the StrathSDR team, which is a dedicated SDR research, development, and design team at the University of Strathclyde. Between them, they have worked with more than a dozen other authors to create this 720-page SDR book.
With 19 chapters and the accompanying Jupyter Notebooks, this book can easily serve as the foundation for a one- or two-semester course in DSP, SDR and RFSoC concepts. Its also clear enough and thorough enough to serve as a complete self-study course for a motivated individual.
The books nineteen chapters are:
1. Introduction
2. Software Defined Radio
3. Introduction to Zynq UltraScale+ RFSoC
4. DSP Fundamentals
5. Spectral Analysis
6. Wireless Communications Fundamentals
7. Quadrature Modulation and Complex Exponentials
8. SDR Architectures
9. RF Data Converters: Analog to Digital
10. RF Data Converters: Example Receiver Architectures
11. RF Data Converters: Digital to Analog
12. RF Data converters: Figures of Merit and Frequency Planning
13. Design Tools and Workflows for RFSoC SDR
14. Forward Error Correction
15. Practical SD-FEC Design
16. OFDM: Orthogonal Frequency Division Multiplexing
17. RFSoC Applications in Cellular Networks
18. MIMO and Beamforming
19. Dynamic Spectrum Access and Cognitive Radio
The books accompanying Jupyter Notebooks transform these topics into living examples by creating an open-ended way to learn the material and to conduct experiments. Jupyter Notebooks are executable documents that run in the Jupyter Lab IDE, an open-source browser-based, integrated development environment. They include live code, widgets, plots, explanatory text, equations, images, and video, making them excellent for interactive learning and exploration of new concepts. Thanks to RFSoC-PYNQ, all of the Jupyter Notebooks that accompany the RFSoC book can run directly on RFSoC devices on a range of RFSoC development kits including ZCU111 kits and the RFS0C 4x2 academic kit, which I discussed in a previous blog. (See AMD's new RF development platform for education and research in academia).
The 30+ individual Jupyter Notebooks that come with the RFSoC book are organized by topic into nine sets of notebooks as follows:
A. Introduction to Jupyter Notebooks and PYNQ
B. DSP Fundamentals
C. Exploring the Spectrum with the RFSoC
D. Wireless Communications Fundamentals
E. Complex Frequency Domain
F. Frequency Planning
G. RFSoC Radio Demonstrator
H. Forward Error Correction
I. Practical OFDM Design
Thanks to the collaboration between AMD and the University of Strathclyde, a PDF of the book can be downloaded at no cost from RFSoC Book PDF. The accompanying Jupyter Notebooks are open-source materials hosted on GitHub. They can be downloaded from RFSoC Book Notebooks. In addition, printed copies of the book are now available from Amazon. Click here to take a look and to order yourself a printed copy.
For more information, please visit Open Source RFSOC Algorithm Verification Evaluation Board.