Giter Club home page Giter Club logo

smitrv's Introduction

smitrv

A verilog implementation of RISC-V core from SMIT.

Contributing to the source

The source directory is composed of the following directories:

  • src/hardware strictly contains the verilog files
  • src/models strictly contains the corresponding reference models. The models may be written in any language but it should be enclosed within a python wrapper for testing purposes. Every top python model file should be suffixed with _model.py

Every sufficiently complicated module must have a corresponding model.

Getting started with the testing framework

The python version used through the testing of the framework is 3.10.0

  • Verilator is the prefered simulator. NOTE: The framework is compatible with Verilator version 4.106 only. Any later or earlier versions are incompatible. Verilator can be installed by following the guidelines here.

  • The testing framework is based on Cocotb. The following command will install the required pip packages. In the root directory of the repository, run:

      $ pip install -r requirements.txt
    
  • For waveform generation, the framework uses gtkwave to read .fst files. To install gtkwave, run (Ubuntu):

      $ sudo apt-get install gtkwave
    

How to compose and run tests?

Following are the various files of interest for the test engineer

  • test/test_list.yaml file helps you populate names of modules for testing.
  • test/signals.yaml is used to furnish the signals of interest in the test hardware module. The signals may be categorized under the nodes inputs, outputs, wires and reg.

test/test_bench/ directory holds the various tests for a target module. Python test files should be prefixed with test_. The framework automatically searches for @cocotb.test decorated functions in every enabled module and initiates the test.

How to contribute?

Please read CONTRIBUTING.md for notes on how to contribute. Check the issues tab and engage in discussions.

smitrv's People

Contributors

edwin7026 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 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.