Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⚑ MobileNet-RTL: High-Performance Hardware Accelerator

Language Target License Status Achievement

πŸ“Œ Overview

This repository contains a Verilog/SystemVerilog implementation of MobileNet-RTL, a highly optimized hardware accelerator designed for end-to-end inference of MobileNet-style workloads on edge FPGAs.

This project was submitted to the DVCon India 2026 Design Contest, achieving a placement in the Top 100 Nationwide.

The accelerator evaluates feature maps using a heavily pipelined custom Systolic Array and features intelligent Depthwise Convolution mapping, on-the-fly Global Average Pooling, and a built-in Semantic Scorer.

MobileNet-RTL Output


πŸ“ Architecture Diagram

graph TD
    A[Image Data] --> B(Window Generator)
    B --> C(Conv2D Mapper)
    C -->|Skewed Activations| D{9x16 Systolic Array}
    W[Weight Buffer] -->|Lookahead Load| C
    D -->|Spatial Accumulation| E(Global Average Pool)
    E --> F(Semantic Scorer)
    T[Task Embeddings] --> F
    F -->|Confidence Scores| G(Top-K Selector)
    G --> H[Final Classification]
    
    style D fill:#f9f,stroke:#333,stroke-width:2px
    style G fill:#bbf,stroke:#333,stroke-width:2px
Loading

πŸ“Š Hardware Utilization & Metrics

Synthesized and evaluated with a 5.0ns Target Clock Period (200 MHz). The results demonstrate a highly efficient compute mechanism with a lightweight hardware footprint and excellent thermal characteristics under heavy loads.

Metric Measured Value Notes
Max Frequency (Fmax) 207.13 MHz Positive slack (WNS: 0.172 ns)
Peak Compute Performance 106.05 GOPS Utilizing the 16x16 Systolic Array
Estimated Layer Latency 0.943 ms Assuming 100M ops/layer
Typical Power (50% Load) 0.752 W Extremely power efficient for Edge
Peak Power (100% Load) 0.815 W Max Junction Temp of 26.8 Β°C

Note: The system maintains thermal stability through dynamic clock gating triggered by the integrated Thermal Management Unit (TMU).


✨ Key Features

βœ” Custom Systolic Array Core

  • 9x16 PE Array: Features 8-bit sparse MAC processing elements perfectly sized for mobile inference.
  • Hybrid Stationary Design: The array dynamically switches between Weight-Stationary Convolution and Output-Stationary GEMM modes depending on the layer type.

βœ” Advanced Memory Mitigation

  • On-the-fly Global Average Pooling: Computes spatial accumulations internally and drains directly into the pooling module, eliminating the bandwidth overhead of writing feature maps back to memory.
  • Lookahead Weight Loading: Uses a ping-pong buffer mechanism to stream weights for the next channel while computing the current one, achieving near 100% compute utilization in Depthwise Mode.

βœ” Embedded Classification

  • Semantic Scorer: Integrated pipelined hardware directly scores pooled feature vectors against 14 distinct task embeddings.
  • Top-K Selector: Hardware-accelerated sorting to instantly determine the highest confidence classifications with zero latency overhead.

πŸš€ Verification & Results

The complete pipeline has been rigorously tested using comprehensive trace-replay methodologies and PyTorch golden models.

Simulation Environments:

  • scripts/run_tests.sh: The main regression suite. It compiles all RTL modules with Icarus Verilog (iverilog), verifies module-level unit tests, and orchestrates the full system-level inference across tb_MobileNet_Accelerator_System.v.
  • tb_MobileNet_Accelerator_Validation.v: Validates the depthwise convolution performance scaling matrix across 16 up to 128 channels.
  • src/golden_model.py: PyTorch script to generate the exact golden truth reference vectors used by the testbenches.

How to Run Verification: Navigate to the root directory and execute bash scripts/run_tests.sh.


πŸ“‚ Directory Structure

MobileNet-Accelerator-RTL/
β”œβ”€β”€ benchmark/                  # Performance measurement tools
β”œβ”€β”€ constraints/                # Synthesis constraints
β”œβ”€β”€ data/                       # Golden reference vectors
β”œβ”€β”€ reports/                    # Post-Synthesis QoR reports
β”œβ”€β”€ rtl/                        # Synthesizable RTL source files
β”‚   β”œβ”€β”€ thermal/                # Clock gating and thermal management
β”‚   └── (core modules)
β”œβ”€β”€ scripts/                    # Test execution and analysis scripts
β”œβ”€β”€ src/                        # Python golden models and pipelines
β”œβ”€β”€ tb/                         # Verilog Testbenches
β”œβ”€β”€ .gitignore
β”œβ”€β”€ LICENSE
└── README.md

πŸ“„ Acknowledgements

Developed as a submission for the DVCon India 2026 Design Contest. Thanks to the organizers for a challenging and insightful competition.

About

πŸ† Top 100 submission for the DVCon India 2026 Design Contest. A highly optimized, Verilog-based MobileNet Accelerator featuring a custom Systolic Array and on-the-fly Global Average Pooling.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages