System-Verilog-bootcamp
System-Verilog-bootcamp copied to clipboard
System Verilog BootCamp
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
underTestbench + Design
tab - Leave the default settings for
OVM/UVM
andOther Libraries
- Under
Tools and Simulators
selectSynopsys 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 indesign.sv
- Click
Run
button to Run the code.
Topics
- Data Types
- Control Flow
- Processes
- Communication
- Interface
- Class
- Constraints
- MISC
- Functional Coverage
- Assertion
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