In the rapidly evolving world of digital design, verification is paramount to ensuring that designs function correctly and efficiently. SystemVerilog, an extension of the Verilog hardware description language, has become a critical tool for verification engineers. This blog post aims to introduce SystemVerilog verification, highlighting its significance, features, and basic concepts to help you get started on your verification journey.
Automated Workflow in Vivado
Layered Testbench
Data Types
- Logic Type
- Fixed-Size Arrays
- Packed and Unpacked Array
- Dynamic Arrays
- Queues
- Associative Arrays
- Array Methods
- Enumeration
- Structures
- Streaming Operator
Type Converstion
Flow Control
Tasks and Functions
Process
OOP in SV
- Object-Oriented Programming
- Class
- Handle
- Object
- Method
- This Keyword
- Static Class Properties and Methods
- Shallow Copy and Deep Copy
- Four Pillars of OOP
- Inheritance
- Super Keyword
- Virtual Keyword
- Polymorphism
- Encapsulation
Interprocess Communication
Interface
Randomization
- $urandom and $urandom_range
- rand and randc
- Constraint Randomization
- Constraint: Inside Operator
- Constraint: Array Randomization
- Constraint: Bidirectional and Conditional
- Constraint: Implication and Equivalence
- Constraint: Solve-Before
- Constraint: Weighted Distribution
- Constraint: In-line and External