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…

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…

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…

FPGA logic of the direct torque control

FPGA-based Direct Torque Control using Vivado HLS

This technical note presents an FPGA-based Direct Torque Control (DTC) of a PMSM motor using Vivado HLS, coupled with the possibility to customize the FPGA firmware of a B-Box. This approach increases the responsiveness of the DTC implementation presented in AN004 by porting part of the control logic to the FPGA. Xilinx Vivado High-Level Synthesis (HLS) is…

FPGA-based hysteresis current controller for three-phase inverter

FPGA-based hysteresis current controller for three-phase inverter

This technical note provides an example of how a fast hysteresis current controller can be implemented, leveraging the possibility of editing the FPGA firmware for rapid control prototyping applications. This example implements the direct current control of a three-phase passive load. It relies on manually-generated VHDL code. The automated generation of VHDL code is presented…

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….

End of content

End of content