Optimized Local ML Models on nanoSoC Cortex-M0 Platform
Overview

Project is based on NanoSoc reusable MCU platform where the custom machine-learning (ML) inference accelerator to the Cortex-M0 SoC.
Tenserflow is used for custom ML model training (TFLM), using TensorFlow Lite for Microcontrollers port model will be ported to C++ and compiled for Arm Cortex-M0 platform that is suitable to run on NanoSoC. After successful software port, trained neural-network model is converted into hardware accelerator using high-level synthesis (HLS) hls4ml for inference in FPGA and connected via an accelerator wrapper on the AHB-Lite bus. Accelerator is controlled by the software running on Cortex-M0.
This platform will be validated on FPGA first and then prepared for tapeout.
This project is meant to become a reusable platform for PhD and student projects in local custom embedded ML models.
Approach
The most ideal scenario is to run works in parallel so that each approach can be compared with the software-only implementation as a baseline.
| Software-Only | Run models with TFLM on bare NanoSoC Cortex-M0. Benchmark the metrics of running models to get the baseline parameters for comparing custom hardware solutions. |
| Custom Hardware Accelerator | Generate RTL for the model with hls4ml and integrate to the NanoSoC platform. Write custom drivers and compare performance with the software-only baseline. |
| Dedicated NPU | Explore the possibility of an Arm Ethos-U based platforms on SoC Labs for heavier workloads such as real-time human recognition. |
Project Milestones
Do you want to view information on how to complete the work stage ""
or update the work stage for this project?
-
Project Structure
Design FlowTarget DateCompleted DateResult of WorkTaking submodule approach and all files and other repositories used by the project is inside forked NanoSoC.

-
Continuous Integration and Deployment for verification
Target Date -
Specifying a SoC
Design FlowTarget Date- Official project page.
- Architectual UML diagrams.
- Accelerator specificatoion
-
data model
Design FlowTarget Date- Trained TFLite model on real data to detect voltage discharges.
-
IP Selection
Design FlowTarget Date -
Getting Started
Design FlowCompleted Date- NanoSoC running on PYNQ-Z2.
- TFLM toolchain setup.
- Custom TF model built and running on FPGA.
Result of WorkNanoSoC with no accelerator runs on PYNQ.
TFLM toolchain set up and build on Cortex-M0 platform.
MNIST model runs on FPGA.

-
Behavioural Modelling
Design Flow- TFLM software running on the M0.
- hls4ml model.
-
Generate RTL
Design FlowGenerate custom ML model using hls4ml to HLS and then to RTL.
-
RTL Verification
Design Flow- Run on FPGA with custom accelerator.
- UVM tests for protocol implementation.
-
Simulation
Design Flow -
Logical Design
Design Flow -
Synthesis
Design Flow -
Logical verification
Design Flow -
Physical Design
Design Flow -
Physical Verification
Design Flow -
Post Silicon
Design Flow -
Basic System Accelerator Integration Verification
- Run on fpga.
-
Manfredas
Cortex-M0
Tape Out
Comments
Thanks for sharing the project details
Hi,
Thanks for sharing the project details. We have some experience now of this type of flow. I would suggest a quick look at this project.
Arrhythmia Analysis Accelerator : A-Cube
Sadly for me there is a lot more detail and knowledge associated with this project that we can share but has not been captured in the project over time. I tried to capture some points in the comments. We are keep to collaborate and there is much we can share with you.
John.
Updating due dates for tasks…
Updating due dates for tasks to better communicate what is being actively worked on.
First version of the project.
First version of the project.
Add new comment
To post a comment on this article, please log in to your account. New users can create an account.