SystemVerilog

SystemVerilog `timescale: Simulation timeunit and timeprecision

In SystemVerilog, simulation time units and precision are crucial aspects that determine how time is modeled and controlled during simulation. They help define the scale and accuracy of time-related operations within the simulation environment. Simulator is used to imitate the operation of a real-world process of the system description or model being simulated. Maintaining system […]

SystemVerilog `timescale: Simulation timeunit and timeprecision Read More »

SystemVerilog Clocking Block

[wpbread] In digital design and verification, precise signal timing is paramount to prevent race conditions and ensure the system operates reliably. Signals must be driven or sampled concerning specific clock edges to maintain synchronization between the Design Under Test (DUT) and the testbench. Table of Contents SystemVerilog Clocking Block SystemVerilog clocking blocks are invaluable for

SystemVerilog Clocking Block Read More »

SystemVerilog New logic specific processes: always_comb, always_latch, and always_ff

[wpbread] In SystemVerilog, always_comb, always_latch, and always_ff are procedural blocks that are used for different types of hardware modeling. They provide different timing and sensitivity control to describe the behavior of combinational logic, latches, and flip-flops respectively. All forms of always procedures repeat continuously throughout the duration of the simulation. In this post we will discuss about these always procedures. Table of Contents

SystemVerilog New logic specific processes: always_comb, always_latch, and always_ff Read More »

SystemVerilog Concurrency: A Comprehensive Guide to Fork-Join Constructs and Their Variants

[wpbread] Concurrency enhances the efficiency of digital design and verification. In SystemVerilog, a language that plays a pivotal role in hardware design and verification, the fork-join construct is the key to unlocking the potential of parallel execution. It’s a fundamental mechanism that allows for concurrent execution of statements, threads, and processes. The Verilog fork-join block

SystemVerilog Concurrency: A Comprehensive Guide to Fork-Join Constructs and Their Variants Read More »

Fine-grain process control – How to use SV built-in class “process”

[wpbread] SystemVerilog defines a built-in class “Process” that allows one process to access and control another process once it has started. It allows users to define variables of type process and safely pass them through tasks. It is powerful technique of fine-grain process control. The process class cannot be extended. Object of type process is

Fine-grain process control – How to use SV built-in class “process” Read More »

Writing SystemVerilog Testbenches for beginner

Introduction: This guide serves as a foundational resource for beginners looking to understand SystemVerilog testbench structure. It focuses on a simple Design Under Test (DUT) to provide clear insights into the various components of a testbench. By the end of this guide, users will have a solid understanding of different testbench components and will be

Writing SystemVerilog Testbenches for beginner Read More »