Giter Site home page Giter Site logo

esp-tools-prebuilt's Introduction

Simmani Runtime Power Modeling

This repo contains Simmani's core implementation as well as its simple examples.

Preliminaries

  • Power modeling is implemented with Python, which resides in simmani.
  • All Scala code is for example designs generated by Chisel:
    • GCD: the Euclide's algorithm for the greatest common divisor (GCD) of two numbers. A.k.a. hello world of hardware.
    • Stack: hardware implementation of stack.
    • Risc: simple RISC machine with flip-flop-based memories.
    • RiscSRAM: simple RISC machine with SRAMs.
    • mini: RISC-V mini, a 3-stage RISC-V pipeline.
  • Each command is executed as follows:
    scons --<design> <command>
    
    <design> is one of examples available above, which is mini by default. For example, if you want to generate verilog for GCD, run: scons --GCD rtl-v.
  • All CAD tools were run with HAMMER. Due to the NDA, we cannot release code in tools/hammer-cad-plugins and tools/hammer-adept-plugins.
  • Instead, we provide pre-generated power traces in power. RISC-V mini's power traces are available as a tarball due to their sizes.

Prerequisites

  • SBT
  • Python3
  • Python packages: scons, numpy, scipy, matplotlib, scikit-learn
    pip3 install [--user] <package>
    
  • Synopsys VCS

Step 1: Getting Started

git clone https://github.com/Simmani/simmani.git
cd simmani
./setup.sh # initialize submodules

Step 2: Generating Verilog

scons --<design> rtl-v

Step 3: Running RTL Simulation for VCDs

scons --<design> run-testers

Step 4: Training Power Models with Pre-generated Power Traces

scons --<design> simmani-train

Step 5: Test Power Models with Pre-generated Power Traces

scons --<design> simmani-test

Power training and test results are available in power/<design>/simmani.

Publications

  • Donggyu Kim, Jerry Zhao, Jonathan Bachrach, and Krste Asanović, "Simmani: Runtime Power Modeling for Arbitrary RTL with Automatic Signal Selection", In proceedings of the 52nd IEEE/ACM International Symposium on Microarchitecture (MICRO'19), Columbus, OH, October 2019.
  • Donggyu Kim, "FPGA-Accelerated Evaluation and Verification of RTL Designs", Ph.D. Thesis, University of California, Berkeley, May 2019.

esp-tools-prebuilt's People

Contributors

donggyukim avatar

Watchers

 avatar  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.