Coder Social home page Coder Social logo

mesbah-lab-ucb / hw-sw_codesign4coc Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 156.65 MB

Code repository for the paper on A Practical Multi-Objective Learning Framework for Optimal Hardware-Software Co-Design of Control-on-a-Chip Systems by Kimberly J. Chan, Joel A. Paulson, and Ali Mesbah.

Jupyter Notebook 0.39% MATLAB 9.77% Batchfile 0.01% Python 0.05% C 5.88% Shell 0.03% Verilog 3.49% VHDL 77.26% Tcl 0.24% Stata 0.01% Pascal 0.01% JavaScript 0.10% PureBasic 0.01% SystemVerilog 0.27% V 2.38% HTML 0.13% Makefile 0.01% Objective-C 0.01%

hw-sw_codesign4coc's Introduction

HW-SW_CoDesign4CoC

NOTE: This article is under review Contribution to IEEE Transactions on Control Systems Technology Issue xx, Volume xx:

A Practical Multi-Objective Learning Framework for Optimal Hardware-Software Co-Design of Control-on-a-Chip Systems

DOI - to be added upon publication

Authors: Kimberly J. Chan, Joel A. Paulson, and Ali Mesbah

NOTE: to be updated upon publication... If you use our work, please cite:

@article{chan2024practical,
  title={A Practical Multi-Objective Learning Framework for Optimal Hardware-Software Co-Design of Control-on-a-Chip Systems},
  author={Chan, Kimberly J and Paulson, Joel A and Mesbah, Ali},
}

Implementation

Several components of this code was implemented using Python AND MATLAB.

To run the Python code on your own device, it is recommended to work within a virtual environment. You may create your own virtual environment and then install the required Python packages by using the command pip3 install -r requirements_wo_appj_testbed.txt (for simulations only) and pip3 install -r requirements_w_appj_testbed.txt (additional packages for experiments with the atmospheric pressure plasma jet (APPJ)).

This code requires MATLAB, specifically R2021a. Additionally, the following toolboxes were installed (not all may be necessary):

  • Control System Toolbox
  • Embedded Coder
  • Deep Learning HDL Toolbox
  • Deep Learning Toolbox
  • Fixed-Point Designer
  • Global Optimization Toolbox
  • HDL Coder
  • HDL Verifier
  • MATLAB Coder
  • Optimization Toolbox
  • Statistics and Machine Learning Toolbox Note, if the code implementation requires additional toolboxes, then the user should install those additional toolboxes.

For multi-objective optimization, MATLAB function(s) are called by a Python script. This can be set up using the instructions at this link

Finally, this code requires the installation and use of Xilinx Vivado 2020.1 during the FPGA-in-the-loop simulations and experiments.

Illustrative Example

The illustrative example can be implemented completely in MATLAB.

The main file to run comparisons for the illustrative example is toy_problem/run_comparison.m.

Control-on-a-chip for Plasma Devices

The main file to run simulations with multi-objective Bayesian optimization for the artificial plasma control system is sim_src/run_mobo_hw_ax.py.

The main file to run experiments with the in-house Mesbah Lab APPJ testbed is exp_src/run_exp.py.

Additional details may be found within the README's within the individual source code folders as well as in commentary within the files.

(c) 2024 Mesbah Lab

in collaboration with Joel A. Paulson and Ali Mesbah.

Questions regarding this code may be directed to kchan45 (at) berkeley.edu

hw-sw_codesign4coc's People

Contributors

kchan45 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.