vlsiquest

Exploring UCIe: The Future of Chiplet Interconnects

Universal Chiplet Interconnect Express (UCIe) is an open standard that allows for high-speed communication between chiplets in a single package. UCIe offers a standardized interface that enables interoperability between chiplets from different vendors. It also provides a plug-and-play interconnect at the package level. In the ever-evolving world of technology, the demand for more powerful and efficient computing […]

Exploring UCIe: The Future of Chiplet Interconnects Read More »

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 »

Regular Expression in UVM – uvm_re_match

Table of Contents [wpbread] uvm_re_match Sometimes it is useful to use a regular expression within the testbench, such as filtering based on instance hierarchy. To do this, UVM has a function called uvm_pkg::uvm_re_match(), which is a DPI-C function that makes use of the POSIX function regexec() to perform a string match. import “DPI-C” function int uvm_re_match

Regular Expression in UVM – uvm_re_match Read More »

UVM_Phases categories and how are phases executed

[wpbread] UVM (Universal Verification Methodology) provides a framework for organizing the execution of a testbench into different phases, known as the UVM phases. The UVM phases help to structure the testbench creation and execution, making it easier to build and debug complex testbenches. UVM Phases also provide synchronizing mechanism for the environment. UVM phasing interface

UVM_Phases categories and how are phases executed Read More »