/MP6134-FunctionalVerification-Project

Funtional verification for darkriscv.

Primary LanguageSystemVerilogApache License 2.0Apache-2.0

MP6134 - FUNCTIONAL VERIFICATION - PROJECT

license last-commit repo-top-language repo-language-count


๐Ÿ”— Table of Contents


๐Ÿ“ Overview

โฏ This repository contains the functional verification for darkriscv. This a course project for MP6134 Functional Verification of the Master's in Electronics degree at Costa Rica Institute of Technology.


๐Ÿ‘พ Features

โฏ REPLACE-ME


๐Ÿ“ Project Structure

โ””โ”€โ”€ MP6134-FunctionalVerification-Project/
    โ”œโ”€โ”€ LICENSE
    โ”œโ”€โ”€ Makefile
    โ”œโ”€โ”€ README.md
    โ”œโ”€โ”€ export_tools.sh
    โ”œโ”€โ”€ regression.sh
    โ”œโ”€โ”€ rtl
    โ”‚   โ”œโ”€โ”€ README.md
    โ”‚   โ”œโ”€โ”€ include
    โ”‚   โ”œโ”€โ”€ interfaces
    โ”‚   โ””โ”€โ”€ src
    โ”œโ”€โ”€ tb
    โ”‚   โ”œโ”€โ”€ README.md
    โ”‚   โ”œโ”€โ”€ checkers
    โ”‚   โ”œโ”€โ”€ environment
    โ”‚   โ”œโ”€โ”€ filelist.f
    โ”‚   โ”œโ”€โ”€ sequences
    โ”‚   โ””โ”€โ”€ tests
    โ””โ”€โ”€ tb_uvm
        โ”œโ”€โ”€ assertions
        โ”œโ”€โ”€ checkers
        โ”œโ”€โ”€ environment
        โ”œโ”€โ”€ filelist.f
        โ”œโ”€โ”€ sequences
        โ””โ”€โ”€ tests

๐Ÿ“‚ Project Index

MP6134-FUNCTIONALVERIFICATION-PROJECT/
__root__
regression.sh โฏ REPLACE-ME
export_tools.sh โฏ REPLACE-ME
Makefile โฏ REPLACE-ME
rtl
src
darkriscv.v โฏ REPLACE-ME
include
config.vh โฏ REPLACE-ME
interfaces
darkriscv_if.sv โฏ REPLACE-ME
tb_uvm
filelist.f โฏ REPLACE-ME
assertions
r_type_assertions.sva โฏ REPLACE-ME
environment
darkriscv_scoreboard.sv โฏ REPLACE-ME
darkriscv_agent.sv โฏ REPLACE-ME
instructions_pkg.svh โฏ REPLACE-ME
darkriscv_items_pkg.sv โฏ REPLACE-ME
darkriscv_driver.sv โฏ REPLACE-ME
darkriscv_input_cov.sv โฏ REPLACE-ME
darkriscv_output_cov.sv โฏ REPLACE-ME
darkriscv_reference_model.sv โฏ REPLACE-ME
darkriscv_input_item.sv โฏ REPLACE-ME
helper.sv โฏ REPLACE-ME
darkriscv_env.sv โฏ REPLACE-ME
darkriscv_monitor.sv โฏ REPLACE-ME
darkriscv_output_item.sv โฏ REPLACE-ME
sequences
darkriscv_seq.sv โฏ REPLACE-ME
i_instr_seq.sv โฏ REPLACE-ME
b_instr_seq.sv โฏ REPLACE-ME
random_instr_seq.sv โฏ REPLACE-ME
s_instr_seq.sv โฏ REPLACE-ME
darkriscv_item.sv โฏ REPLACE-ME
j_instr_seq.sv โฏ REPLACE-ME
l_instr_seq.sv โฏ REPLACE-ME
init_registers_seq.sv โฏ REPLACE-ME
u_instr_seq.sv โฏ REPLACE-ME
r_instr_seq.sv โฏ REPLACE-ME
save_registers_seq.sv โฏ REPLACE-ME
checkers
s_type_checker.sv โฏ REPLACE-ME
base_instruction_checker.sv โฏ REPLACE-ME
i_type_checker.sv โฏ REPLACE-ME
tb
filelist.f โฏ REPLACE-ME
environment
riscv_defs.svh โฏ REPLACE-ME
instructions_pkg.svh โฏ REPLACE-ME
dut_intf.sv โฏ REPLACE-ME
driver.sv โฏ REPLACE-ME
environment.sv โฏ REPLACE-ME
riscv_reference_model.sv โฏ REPLACE-ME
tb_top.sv โฏ REPLACE-ME
helper.sv โฏ REPLACE-ME
monitor.sv โฏ REPLACE-ME
scoreboard.sv โฏ REPLACE-ME
sequences
stimulus_types.sv โฏ REPLACE-ME
stimulus.sv โฏ REPLACE-ME
checkers
j_type_checker.sv โฏ REPLACE-ME
b_type_checker.sv โฏ REPLACE-ME
s_type_checker.sv โฏ REPLACE-ME
base_instruction_checker.sv โฏ REPLACE-ME
u_type_checker.sv โฏ REPLACE-ME
r_type_checker.sv โฏ REPLACE-ME
i_type_checker.sv โฏ REPLACE-ME

๐Ÿš€ Getting Started

โ˜‘๏ธ Prerequisites

Before getting started with MP6134-FunctionalVerification-Project, ensure your runtime environment meets the following requirements:

  • Programming Language: Shell, Verilog, SystemVerilog, SystemVerilogAssertions, Python

โš™๏ธ Installation

Install MP6134-FunctionalVerification-Project using one of the following methods:

Build from source:

  1. Clone the MP6134-FunctionalVerification-Project repository:
โฏ git clone https://github.com/ErickOF/MP6134-FunctionalVerification-Project
  1. Navigate to the project directory:
โฏ cd MP6134-FunctionalVerification-Project
  1. Install the project dependencies:
> export_tools.sh
> make compile_uvm

๐Ÿค– Usage

Run MP6134-FunctionalVerification-Project using the following command:

> make uvm_gui

๐Ÿงช Testing

Run the test suite using the following command:

> source regression.sh

๐Ÿ”ฐ Contributing

  • ๐Ÿ’ฌ Join the Discussions: Share your insights, provide feedback, or ask questions.
  • ๐Ÿ› Report Issues: Submit bugs found or log feature requests for the MP6134-FunctionalVerification-Project project.
  • ๐Ÿ’ก Submit Pull Requests: Review open PRs, and submit your own PRs.
Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your GitHub account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/ErickOF/MP6134-FunctionalVerification-Project
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b username/new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to GitHub: Push the changes to your forked repository.
    git push origin username/new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


๐ŸŽ— License

This project is protected under the SELECT-A-LICENSE License. Refer to the LICENSE file for more details.


๐Ÿ™Œ Acknowledgments