FPGA control implementation example

Getting started with FPGA control development

This note explains how to get started with the implementation of power converter control algorithms in the FPGA of imperix power electronic controllers. The benefit of offloading all or parts of the computations from the CPU to the FPGA is that it often results in much faster closed-loop control systems. First, the FPGA control starter…

FPGA dq current control

FPGA-based control of a grid-tied inverter

This note presents an FPGA control implementation of a grid-tied current-controlled inverter. It combines several control modules presented in different Technical Notes to form a complete converter control, executed entirely in the FPGA of a B-Box RCP controller. Thanks to the FPGA programmability of the B-Box controller, complex control algorithms can be effectively executed at…

HLS FPGA-based controller

High-Level Synthesis for FPGA developments

High-level synthesis (HLS) tools greatly facilitate the implementation of complex power electronics controller algorithms in FPGA. Indeed HLS tools allow the user to work at a higher level of abstraction. For instance, the user can use Xilinx Vitis HLS to develop FPGA modules using C/C++ or the Model Composer plug-in for Simulink to use graphical…

FPGA PWM modulator block diagram

Custom PWM modulator implementation in FPGA

To implement power converter control algorithms in an FPGA, it is often required to develop an FPGA-based pulse-width modulation (PWM) module. Therefore, this note presents how to implement a custom PWM modulator in the Xilinx FPGA of the imperix controller (B-Box RCP or B-Board PRO). The presented modulator uses FPGA pulse-width modulation with a triangular…

fixed point vs floating point in fpga

Fixed point vs floating point arithmetic in FPGA

The choice of fixed vs floating-point arithmetic for an FPGA algorithm is a decision that has a significant impact on the FPGA resources usage, computation latency, as well as data precision. This page provides a comparison between fixed-point vs floating-point arithmetic and gives advantages and drawbacks for each approach. Then, it shows how to use…

FPGA development on imperix controllers

FPGA development on imperix controllers

Usually, the user programs the B-Box RCP or the B-Board PRO CPU using imperix ACG SDK or C++ SDK, and simply uses the pre-implemented FPGA peripherals such as the ADC drivers or PWM generators. Nevertheless, advanced users can also directly program the FPGA to implement high-performance algorithms, interface with specialized peripherals, or implement high-speed communications…

Download and update imperix IP for FPGA sandbox

Download and update imperix IP for FPGA sandbox

This page provides the imperix IP and other source files required for FPGA development on imperix controllers. To learn how to use the imperix IP, please refer to the getting started with FPGA page and the imperix IP user guide page. Download The following table lists the different imperix IP version available. The minimal Vivado version required is 2022.1….

FPGA-based decoder for a Delta-Sigma modulator

FPGA-based decoder for a Delta-Sigma modulator

This technical note shows how to build a decoder IP for a Delta-Sigma Modulator and establish communication with such a device through USR ports of the B-Box RCP and B-Board PRO. The corresponding approach uses the user-programmable area inside the FPGA, also known as sandbox. Introduction Delta-Sigma Modulators are a class of analog-to-digital converters (ADCs)…

LTC2314-14 Serial Interface Timing Diagram in SCK Continuous Mode

FPGA-based SPI communication IP for ADC

This technical note shows how an SPI communication link can be established between an FPGA and an external Analog-to-Digital Converter (ADC). The development setup will consist of an imperix B-Board PRO evaluation kit and an LTC2314 demonstration circuit. The LTC2314 ADC driver will be developed using VHDL integrated into the user-programmable area (the sandbox) of…

End of content

End of content