The Nutaq ZeptoSDR platform offers a complete solution for software-defined radio (SDR) application development. The ZeptoSDR consists of a Radio420S FPGA mezzanine card (FMC), an RF transceiver, and a ZedBoard baseboard within an air-cooled enclosure.
The ZedBoard has a community-based website with lots of tutorials and reference designs. In addition, ZeptoSDR users can benefit from the Nutaq reference designs and API when performing rapid application development.
This blog post explains the architecture of the different Nutaq reference designs as well as the APIs.
Figure 1: ZedBoard platform
Figure 2: Radios420S FMC
Board Support Package (BSP)
The example included with the BSP shows how to send and receive data between the Radio420S FMC and the FPGA logic and how to configure the Radio420S with the embedded processor. On the Zedboard, all these operations are done by the Zynq system-on-chip (SoC) as it has a dual ARM Cortex-A9 processor and programmable FPGA logic.
The BSP example lets the user develop applications with the architecture shown in Figure 3.
Figure 3: BSP application architecture
In the FPGA section of the Zynq, a Radio420 FPGA core is used for configuring the FMC and for RF data transfer. The FPGA core has input and output ports that enable FPGA user logic to send and receive data with the radio front-end. In the example, a Direct Digital Synthesizer (DDS) core in the user logic sends data to the Radio420. A Chipscope core in the user logic receives the data and displays it to the user. All communication protocols within the Radio420S FMC are controlled by the Radio420 core.
The AXI Lite protocol manages communication between the ARM and the Radio420 FPGA core. All the Radio420 core registers are mapped to the Zynq memory space. An API is provided to simplify configuration of the Radio420S FMC chips and the Radio420 FPGA core. The API can be called by a user application that runs on the ARM processor. All the low-level logic and register accesses for chip configuration are handled by the API, making high-level functions available to the user.
See the Radio Peripheral Configuration section of the blog post,