The OpenCPI framework offers a rapid and flexible way to develop and deploy reconfigurable applications across multiple processors, making it ideal for developing with software defined radios (SDRs).
In this article we dive down into everything you need to get started developing in OpenCPI, which platforms are supported, and the various benefits that the framework offers.
Read more about What is OpenCPI in our accompanying article.
WHAT ARE THE BENEFITS OF USING OpenCPI?
Developing in OpenCPI framework offers a wide range of benefits.
Flexible and futureproof
OpenCPI provides a common runtime environment for any current or future platform. If the OSP exists or can be written for a platform, then it can be used in an OpenCPI based system.
Extensive component library contains proven functionality
OpenCPI features an extensive pre-existing library of functional components which developers can draw on to write applications. This is beneficial, as those components will have been functionally proven on various existing platforms. The library is constantly expanding as more entities contribute to it.
Open standard minimises development time
OpenCPI is an open-source platform, allowing anyone to contribute to it with new functionality, enhancements or bug fixes. It is constantly being updated to reflect these changes, which reduces the amount of development time required.
Simulate software without needing hardware
OpenCPI provides integration with commonly used FPGA simulators and its infrastructure allows componentised testing and prototyping, both on the development platform and on a real target platform.
OpenCPI is ideal in environments where fast evaluation of new algorithms is required. Using existing components from the library, an application can be constructed in a short time and a concept quickly proven. A longer optimisation phase can then follow once confidence has been established.
Hardware in the loop simulation
OpenCPI supports applications across a range of platforms, including both the target and the development platforms. If these platforms are connected in a supported manner, such as via Ethernet, then OpenCPI can be directed to run portions of the application on the physical hardware while keeping the remaining portions within the development environment. This effectively allows a simulator to be connected to the physical hardware without a complicated setup process.
Because OpenCPI provides a common development environment for platforms, applications can be compiled for any target hardware. This provides a wide range of benefits, such as:
- The ability to develop and test an application on a development board and then seamlessly move it to physical hardware with little overhead
- The ability to recompile an existing application for a different target platform or an upgraded version of an existing platform with little effort
WHAT CAN I USE OpenCPI WITH?
A range of ready built support files for a variety of common platforms, including commercial SDRs and evaluation boards are available for use with OpenCPI. These are provided in the form of OpenCPI System support Projects (OSP).
Supported off-the-shelf commercial SDRs include:
- ADALM-PLUTO Software-Defined Radio Active Learning Module (PlutoSDR)
- USRP E310 Embedded Software Defined Radio
Supported evaluation boards include:
- AD-FMCOMMS2/3 AD9361 Software Defined Radio Board coupled with a Xilinx Zynq evaluation board or ZedBoard
HOW DO I DEVELOP IN OpenCPI?
Enabling an OpenCPI platform for development includes procuring, installing, configuring and integrating the various tools and software necessary to enable a developer to design and create executable binaries for a target platform from source code.
If you’re planning to start developing in OpenCPI, there are a few setup requirements you’ll need. These are:
- A Linux environment with sudo privileges which will allow OpenCPI to install all necessary software development tools for the platform
- A Git clone of the OpenCPI repository in a new directory. You can read more on cloning OpenCPI repositories here
- If your platform uses an FPGA (field-programmable gate array) then you’ll also need the relevant development tools and software, such as Intel® Quartus® or Xilinx Vivado. This is because FGPA platforms do not have built in operating systems or drivers that can interface with the OpenCPI infrastructure.
HOW DO I RUN APPLICATIONS IN OpenCPI?
Following the development activities being completed during the build-time phase, the next step is to execute these developed binaries during the run-time phase.
In order to run applications in OpenCPI, you will need:
- A hardware platform that supports OpenCPI, such as one of our dedicated software defined radios (SDRs)
- EITHER: Required pre-compiled application executable files or application .xml files and their associated artifacts;
- OR: An OpenCPI development environment and the application and associated worker resources. Available OpenCPI system support projects (OSP) typically contain everything required and can be built straight away.
Want to find out more?
If you’d like to find out more about how our family of high-performance, fully integrated OpenCPI software defined radios (SDRs) could help you meet your challenging and evolving mission needs, get in contact with us today.