Skip to content

Suntrakanesh/System-Verilog-bootcamp

Repository files navigation

System Verilog

System-Verilog Practice

Want to learn System Verilog but don't know where to start ?
Here is the complete System Verilog BootCamp for you. This repository contains System Verilog practice code from basic to advance.

Compiler Setup

  • EDA Playground is free web application that allows users to edit, simulate, synthesize, and share their HDL code.
  • Select SystemVerilog/Verilog under Testbench + Design tab
  • Leave the default settings for OVM/UVM and Other Libraries
  • Under Tools and Simulators select Synopsys VCS 2020.03 (If you wish to simulate it in some other simulator, then you can choose that in drop down list box)
  • design.sv is to design the actual logic circuit. testbench.sv is to test the design that we have done in design.sv
  • Click Run button to Run the code.

eda_playground

Topics

Syllabus

Data Types
  • New Data types: logic, bit, Signed integers, byte
  • Strings
  • Enumeration
  • Arrays
  • Packed, Unpacked, Dynamic and, Associative Arrays
  • Array Manipulation Methods
  • Queues
  • Structures
  • User-defined Data Types
Control Flow
  • Loops
    • while/do-while loop
    • foreach loop
    • for loop
    • forever loop
    • repeat loop
  • break, continue
  • if-else-if
  • case
  • Blocking & Non-blocking Statements
  • Events
  • Functions
  • Tasks
Processes
  • SystemVerilog Threads
    • fork join
    • fork join_any
    • fork join_none
  • Disable fork join
  • Wait fork
Communication
  • Interprocess Communication
  • Semaphores
  • Mailboxes
Interface
  • Interfaces, Interface bundles
  • Modports
  • Clocking Blocks
Class
  • Class, Class Handles and Objects
  • Constructors
  • this pointer
  • super keyword
  • typedef forward decl.
  • Inheritance
  • Polymorphism
  • Virtual Methods
  • Static Variables/Functions
  • Shallow/Deep Copy
  • Parameterized Classes
  • extern keyword
  • Abstract Class/Pure Methods
  • Randomization
Constraints
  • Random variables
  • Constraint blocks
  • Array Randomization
  • Common Constraints
  • inside constraint
  • Implication Constraint
  • foreach Constraint
  • solve before Constraint
  • Static Constraints
  • Practical Constraint Examples
  • Bus Protocol Constraints
  • Randomization Methods
  • In-line Constraints
  • Soft Constraints
  • Disable Constraints
  • Disable Randomization
  • Random Weighted Case
Misc Constructs
  • Program Block
  • Dynamic Casting
  • Packages
  • Commandline Input
  • File Operations
  • Scope Resolution Operator
Functional Coverage
  • Functional Coverage
  • Covergroup & Coverpoint, Coverpoint bins