Giter Site home page Giter Site logo

practical-uvm-step-by-step / practical-uvm-step-by-step Goto Github PK

View Code? Open in Web Editor NEW
158.0 158.0 101.0 17.53 MB

This is the main repository for all the examples for the book Practical UVM

License: Other

Makefile 0.60% C 7.72% SystemVerilog 10.29% Shell 0.15% Verilog 79.20% Assembly 0.01% Tcl 0.17% Standard ML 0.01% Perl 0.74% Stata 0.01% Coq 0.79% Python 0.03% C++ 0.08% Objective-C 0.22%

practical-uvm-step-by-step's Introduction

**** IMPORTANT - PLEASE READ **********************

PLEASE FORK this repository rather than downloading a zip. I just want to be able to notify if anybody makes any updates or finds issues that are fixed.

All of the examples are Tested on UVM-1.2 and VCS 2016.06-SP1. I have provided a in each RUN Directory to show example is running properly.

compilation log: vcs.log run log : simv.log

Since the UVM 1.2 is latest version, the examples are shown to be UVM-1.2 compliant. I have used the +UVM_NO_DEPRECATED define during compile.

Some examples therefore may NOT Compile on uvm-1.1d. If you want such a variant, let me know, and I will do my best to address it.

If any thing is NOT clear, or missing details, please file a bug/let me know and I will do my best to fix it.


Book_Examples

These are the examples for the book Practical UVM Step By Step written by Srivatsa Vasudevan

Each of these examples are designed to be SELF Contained. They contain code that is REPEATED from the other examples.

There are typically only 1-2 files in each example that are different from the other examples.

DO NOT GO AND PORE THROUGH EACH FILE. YOU would be wasting your time that way. Just look at the section below in each README to look at specific files

*********FILES CHANGED IN THIS EXAMPLE *****

<list of files changed WRT the Part 2 example>


The rest of the files are there so that you can just copy the directory over and just compile without doing too much work.

All the directories for the most part are organized using the approach below in all the examples for the testbenches.

env --> This contains all the environment container files. Any Register Abstraction RALF files are here.
hdl --> Usually contains the top level testbench
include --> List of include files
README --> This file
run --> All runtime files are kept here. The Makefile is here.
src --> Sources for the example. If it is a wishbone, there may be files in a common directory one level up depending on the example.
tests --> All UVM tests are stored here

practical-uvm-step-by-step's People

Contributors

practical-uvm-step-by-step avatar srivatsa-snps avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

practical-uvm-step-by-step's Issues

interface module:wb_slave_if

BAD coding style: wb_slave_if

define output tye as wire, than do procedural assignment to wire
The results is of course error.
e.g. DAT_O

buggy dut2.v

assign mast_if.DAT_I = slave_if.DAT_O;

assign mast_if.DAT_I = slave_if.DAT_O;

multiple defintions

wb_transaction.sv file

status_e status;
wb_config cfg; // Must be non-NULL to randomize
rand status_e status;

wb_config.sv error

Extrea semicolon:
constraint supported {
port_size == DWORD;
granularity == BYTE;
cycles == CLASSIC;
}

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.