Synthesis of Distributed Controllers in Hardware/Software

Background:

The Matlab software environment is often used to develop control systems for engineering purposes. While this development is useful for testing purposes, often an engineer will desire to create a physical implementation of their system.

Problem Statement:

The process of taking a virtual control system in Matlab and turning it into a physical reality is a time consuming, but commonly used process. Normally the control system is constructed in either a VHDL or C-dependent platform. However, both of these systems have unique strengths and limitations. A control system that contains a balanced mixture of these two designs will allow for the control system to operate with greater efficiency. Therefore, in implementing a hardware/software control system, two separate tasks must be accomplished. A portion of the control system must be translated into a software equivalent in the C Programming Language. Another portion of the control system must be translated into a hardware equivalent in the VHDL description language. The C code runs onboard a desktop CPU while the VHDL is placed into an FPGA. These two systems can run simultaneously, transferring data via a PCI bus. This translation process, which normally requires a great deal of effort by hand, can be automated and will consequently reduce the time to first test and errors caused by human development.

Team Members:

Robin Forry, Electrical Engineer, forryrl@email.uc.edu
Jon Hoffman, Computer Engineer, hoffmaj1@email.uc.edu
Jon Nafziger, Computer Engineer, nafzigjw@email.uc.edu

email all team members

Faculty Advisor:

Dr. Ranga Vemuri

Goal:

The overall goal of this project is to automate the implementation of a hardware/software platform based on simple control systems developed in Matlab.

Subgoals:

  1. Develop an automated process for creating a software representation of controllers in C programming language

  2. Develop an automated process for creating a hardware representation of controllers in VHDL/Verilog Hardware Description Language

  3. Automated synthesis of controller into hardware/software

  4. Develop an automated process for creating a communication interface between the FPGA and the Host PC

Helpful Skills:

  • C and VHDL/Verilog

  • C Compilers/Synopsis

  • Matlab

  • Controllers

  • FPGA/ASIC