Skip to content

Reusable and scalable verification framework for Deep Neural Network (DNN) accelerators using Pyuvm, Cocotb, and Portable Stimulus Standard (PSS). Supports generic layer-wise verification and automated multi-layer scenario generation.

Notifications You must be signed in to change notification settings

Moayad-Ahmed/Reusable-Verification-Framework-for-Deep-Learning-Accelerators-using-PyUVM-COCOtb-and-PSS

Repository files navigation

Reusable Verification Framework for Deep Learning Accelerators using PyUVM, Cocotb and PSS

This repository presents a project focused on the development of a reusable, scalable, and portable verification framework for Deep Neural Network (DNN) hardware accelerators. The primary goal is to significantly reduce the verification effort required across different DNN accelerator designs by introducing a generic and modular testbench architecture.

The framework utilizes Python-based verification methodologies, specifically Pyuvm and Cocotb, to build reusable UVM-like verification components tailored to fundamental DNN layers such as Convolution, Max Pooling, ReLU, and Fully Connected layers. These components are designed to be highly parameterizable, enabling efficient and adaptable layer-wise verification for a wide range of accelerator configurations, including variations in tensor sizes, data precision, and architectural parameters.

In addition, the project integrates the Portable Stimulus Standard (PSS) to enable automated scenario generation. Instead of relying on manually written, isolated test cases for individual layers, PSS is used to describe and generate complex, multi-layer verification scenarios that closely resemble real DNN workloads. This allows the verification flow to seamlessly generate realistic model execution paths, such as Convolution → ReLU → Pooling → Fully Connected, improving coverage and scalability.

Through this approach, the project aims to establish a modern verification framework that supports both layer-level and end-to-end verification of DNN accelerators, enhances reusability across designs, and aligns with industry-standard verification practices.

🎯 Project Objectives

  • Develop a reusable verification framework for DNN accelerator

  • Enable generic layer-wise verification (Conv, ReLU, Pooling, FC)

  • Reduce verification effort across multiple accelerator configurations

  • Move from single-layer tests to multi-layer realistic model flows

  • Integrate PSS-based scenario generation for automation and portability

⚙ Key Technologies

  • Cocotb – Python-based coroutine-driven testbench

  • Pyuvm – UVM-like verification methodology in Python

  • PSS (Portable Stimulus Standard) – High-level, portable scenario modeling

  • Python Golden Models – Reference models using NumPy / PyTorch-style computation

🧩 Framework Architecture

PSS Scenarios
     │
     ▼
Stimulus Generation (Pyuvm Sequences)
     │
     ▼
Driver  ───► DUT (DNN Accelerator RTL)
     │               │
     ▼               ▼
Monitor          Output Signals
     │
     ▼
Scoreboard  ◄── Golden Model (Python)
     │
     ▼
Coverage & Reporting

About

Reusable and scalable verification framework for Deep Neural Network (DNN) accelerators using Pyuvm, Cocotb, and Portable Stimulus Standard (PSS). Supports generic layer-wise verification and automated multi-layer scenario generation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •