
Outline a UVM verification course that builds environments for combinational and sequential circuits, UART/SPI/I2C interfaces, bus protocols, and advanced features like virtual sequencers and TLM ports.
Extend a UVM agent to connect driver, sequencer, monitor, and scoreboard, build and connect components in the environment, and verify clock generator and UART interface.
Explain the UART receiver design, including the RX clock, start and reset signals, length and parity handling, and two stop bits, with center sampling at a 16x RX clock.
Implement a 128-location i2c slave memory that initializes on reset and uses a state machine to collect an 8-bit address (7-bit address plus operation bit) for read or write.
Explore how to verify read, write, and reset operations for memory using a uvm environment with sequences, drivers, monitors, and a scoreboard.
Explore the AB memory interface, including reset, clock select, slave enable, P enable, and 32-bit write and read data paths. Follow the four-state design: idle, setup, access, transfer.
Build a UVM testbench for an APB RAM with a config class, a constrained op_mode transaction, and sequences that exercise write, read, and error scenarios.
Explain the write data channel, including W valid/ready, W ID, and W data across four lanes with AW size and W strobe, and how W last triggers write response channel.
Explore AXI burst types—fixed, increment, and wrap—and how they determine next address. Learn increment mode by showing current address plus bytes stored, guided by W strobe.
Implement a write response channel FSM that waits for W last and B ready, computes the response from address and aw size, and asserts B valid before returning to idle.
Demonstrate tlm analysis with a simple 4-to-1 mux that selects among four 4-bit inputs A, B, C, D using a 2-bit select and outputs Y, with default zeros.
Build a UVM verification environment with an agent (driver, sequencer, monitor), connect analysis ports and exports, and validate DUT transactions with a reference model and scoreboard.
Writing Verilog test benches is always fun after completing RTL design. You can assure clients that the design will be bug-free in tested scenarios. As system complexity grows day by day, System Verilog becomes a choice for verification due to its powerful capabilities and reusability, which help verification engineers quickly locate hidden bugs. System Verilog lags behind the structured approach, whereas UVM works hard to form a general skeleton. The addition of the configuration database shifts the way we used to work with the verification language in the past. Within a few years, verification engineers recognized the capabilities of UVM and adopted it as a de facto standard for RTL design verification. The UVM will have a long run in the verification domain; hence, learning about the UVM will help VLSI aspirants pursue a career in this domain.
This is a Lab-based course designed such that anyone with the fundamentals of UVM could understand how verification engineers use UVM to perform verification of commonly used RTLs and sub-blocks in FPGA. The course covers verification of the combinational circuit like combinational adder, Sequential circuit like Data flip-flop, communication interfaces like a clock generator, UART, SPI, and I2C, and Bus protocols like APB, AXI, and demonstration of few useful UVM concepts like a virtual sequencer, TLM analysis FIFO, and a sequence library.