Motivation
Hardware-software partitioning has become a key issue in the design of embedded systems when performance constraints have to be met and chip area is critical. The designer has to decide to implement an application component in hardware or software to meet tight system constraints. It has been shown that efficient techniques for partitioning can achieve results in performance or power superior to software-only solution. The general hardware-software partitioning problem is known to be NP-complete. Therefore, developing an algorithm to achieve the optimal or near-optimal solution will be a significant contribution to both the engineering and academic fields.
CAPRI incorporates a number of multi-constraint aware hardware software partitioning strategies that can produce optimal/near optimal partitioning solutions.
Case Study: Accelerating EKF-based Sensorless Motor Control Algorithm
The Brushless DC (BLDC) motor is widely used in industrial, automotive and domestic applications as it offer numerous advantages e.g. high efficiency, maintainability, compact form, etc. Position and speed sensors are required to control BLDC motors as the current commutation is performed based on the rotor position. However, these sensors are undesirable from the standpoint of size, cost, maintenance, and reliability. Due to these reasons, techniques for sensorless BLDC motor control have attracted wide attention. This project aims to implement an Extended Kalman Filter (EKF) based sensorless motor control algorithm on the microprocessor to control a 3-phase BLDC motor.
Application profiling results on the EKF motor controller revealed that the timing constraint can be met if the most compute intensive function (i.e. Kalman gain computation) in the EKF motor controller is implemented as a hardware accelerator on FPGA. We have proposed an optimized FPGA implementation for Kalman gain computation. The proposed implementation overlaps the computation time with the data transfer time between the microprocessor and the FPGA, hence reducing the overall latency.
Hardware-software partitioning of EKF based sensorless motor control algorithm on the microprocessor-FPGA platform: