CPP SDK

STRAIGHTFORWARD PROGRAMMING

The CPP Software Development Kit (SDK) supports the direct implementation and validation of converter control techniques using C/C++ code.

When compared to using the ACG SDK, this approach also offers superior performance and flexibility over code that is automatically generated using Simulink or PLECS.

You are here:

Home | Software | CPP SDK
CPP SDK
your price


Icon
CPP SDK
TRIAL VERSION
CPP SDK
your price


CPP SDK
TRIAL VERSION

Volume pricing

When multiple licenses are related to the same customer, degressive pricing applies, according to the overall purchase history. The table below shows the proposed volume discounts:

Volume discounts

2nd41%6th65%
3rd53%7th67%
4th59%8th69%
5th63%9th70%
PRODUCTION LICENSES

All controllers can be flashed up to 20 times with this free-of-charge license. This authorizes firmware upgrades during the entire system lifetime in production environments.

Licensing policy

R&D LICENSES

These licenses allow unlimited access to the controllers. All software licenses are:

  • Target-locked (i.e. tied to the controller unit)
  • Lifetime (no renewal fees, free software updates)
  • Usable on an unlimited number of computers

In multi-B-Box configurations, only the master unit must be licensed. The master is the controller hosting the user-defined CPU program.

PRODUCTION LICENSES

All controllers can be flashed up to 20 times with these free-of-charge licenses. This authorizes firmware upgrades during the entire system lifetime in production environments.

A fully integrated development environment

The imperix Integrated Development Environment (IDE) is based on the popular Eclipse software which is easy to use, highly customizable, and brings features such as auto-completion, refactoring, and syntax checking.

Once the code is ready, a simple click on the launch button compiles the code, sends it to the target through Ethernet, and starts the execution.

 Hover to find out more.

Coding with c/C++

With the CPP SDK, users have direct access to the Application Programming Interface (API) provided by BBOS, imperix’s real-time operating system. This allows to easily manage and control all FPGA-based peripherals.

Other user functions are also provided, such as controllers, transformations and PLLs, which allow configuring and implementing control algorithms with a minimum of code, maximum readability, and the best possible real-time performance.

Initialization

In this example, the initialization function contains the configuration of the interrupt mapped to a 20 kHz clock, two ADCS, a PWM with dead-time, and a PID controller.

Interrupt

In this interrupt, analog measurements are retrieved, a PLL is run for grid synchronization, and appropriate duty-cycles are applied to the PWM modulators.

HOW TO write AND RUN CODE IN C/C++

1. Configure the environment

The CPP SDK provides a ready-to-use template to use as a starting point. Import it into your workspace and you are ready to code! Do you want to see things for real first, download our software and try it for free!

 

Write your C or C++ control code in the provided template file. Looking for a helper or library function, just hit CTRL+Space. You get then a list of all available library and OS functions.

 

2. Write your code
3. Get inspired
At any time, browse and download one of the code examples, for getting some shortcuts in programming. You can also access and freely edit the open-source code libraries provided in the API folder.

A single click on the launch button and the code is compiled and executed on the target within seconds.

Alternatively, if you want the B-Box or B-Board to be able to boot in standalone, you can save your compiled project to flash memory. This way, the device automatically runs your code at startup and is fully autonomous.

4. Compile and launch your code
5. Monitor and tune your variables

A dedicated software, the BB Control Utility, is part of imperix’s software suites. It offers test, debugging and monitoring features, tailored for power electronic applications. Using it, you will be able to plot any variable, tune your controllers online, take oscilloscope-like shots, generate transients on your setpoints, etc.

HOW TO write AND RUN YOUR CONTROL IN C/C++

1. Configure the environment

The CPP SDK provides a ready-to-use template to use as a starting point. Import it into your workspace and you are ready to code! Do you want to see things for real first, download our software and try it for free!

2. Write your code

Write your C or C++ control code in the provided template file. Looking for a helper or library function, just hit CTRL+Space. You get then a list of all available library and OS functions.

3. Get inspired

At any time, browse and download one of the code examples, for getting some shortcuts in programming. You can also access and freely edit the open-source code libraries provided in the API folder.

4. Compile and launch your code

A single click on the launch button and the code is compiled and executed on the target within seconds.

Alternatively, if you want the B-Box or B-Board to be able to boot in standalone, you can save your compiled project to flash memory. This way, the device automatically runs your code at startup and is fully autonomous.

5. Monitor and tune your variables

A dedicated software, the BB Control Utility, is part of imperix’s software suites. It offers test, debugging and monitoring features, tailored for power electronic applications. Using it, you will be able to plot any variable, tune your controllers online, take oscilloscope-like shots, generate transients on your setpoints, etc.

LEARN MORE ABOUT…

Programming imperix controllers with the CPP SDK is not limited to developing C/++ code for the main processing core. The suite also comprises a dedicated debug and monitoring software, FPGA programming options, and much more!

BB Control utility

BB Control is imperix's real-time monitoring software for B-Box and B-Board. This remote control utility allows to view, edit and log all control variables. Furthermore, BB Control facilitates the configuration of the controllers.

  • Real-time parameter tuning
  • Data logging and visualization

To see how to extract impactful experimental results, get more insight on BB Control.

FPGA programming

For the advanced cases when part of the control must be executed on FPGA, the firmware can be freely edited. Users only need to instantiate one imperix IP. Besides, all FPGA resources and I/Os can be accessed with complete freedom.

  • Multi-rate control implementation
  • Peripheral communication extension 

To see how to extend the capabilities of imperix controllers, read more on FPGA programming.

Firmware technology

The acclaimed ease of use of imperix controllers is made possible by a dedicated firmware architecture. This also guarantees the portability of the user software as well as the advanced performance of the networking.

  • Long-term code portability
  • Transparent networking

To learn more about how the control hardware operates, see more details on our firmware.

Browse OUR Software solutions

 

In addition to C/C++ programming using the CPP SDK, imperix supports other programming workflows. Notably, the ACG SDK supports automated code generation from Matlab Simulink and Plexim PLECS.

Furthermore, for advanced applications, it is also possible to program the FPGA. To this end, both the ACG SDK and the CPP SDK contain templates for use with the Xilinx Vivado software.

 Hover to find out more.

Want to know more?

For all questions related to our software, feel free to get in touch with our technical team. We're here to help! Online demos can also be organized upon request.

Alternatively, you can always download and install the software. As our licenses are hardware-related, our software is essentially unrestricted and all features can be tested free of charge.