30-Day SystemVerilog/UVM Verification Series
A project-based learning path from a working testbench skeleton to a complete, coverage-closed verification environment.
Every day builds on the previous one. The FIFO testbench from Day 1 keeps growing throughout the series. Each post follows the same structure: Example → Minor Details → Advantages → Disadvantages/Pitfalls → Implementation Details → 10-Question Quiz.
How to use this page: Replace each
href="#" with the actual URL of that day's post on your blog. The cards are already styled and linked — you just drop in the URLs.
Week 1 — Foundations
Day 1 UVM Architecture — Components, Objects, and the FIFO Testbench Component vs object, the full FIFO testbench skeleton, and the exact order to write files in. Day 2 UVM Phases — The Simulation Lifecycle Full phase order, why build is top-down and connect is bottom-up, objections, cleanup phases, and timeout patterns. Day 3 Sequences, Sequencer, Driver — The Stimulus Handshake start_item/finish_item vs get_next_item/item_done, why randomize goes after start_item, and deadlock patterns. Day 4 Transactions and TLM — How Data Moves Between Components Analysis ports vs point-to-point, port→import direction, reference vs copy semantics, and building a real scoreboard. Day 5 uvm_config_db and the Factory set/get path rules, type_id::create() vs new(), and type and instance overrides for per-test configuration. Day 6 Agents and Environment Layering Active vs passive agents, get_is_active(), env composition, and reusable VIP patterns. Day 7 Week 1 Review + Mini-Project Assemble a working FIFO verification environment with write sequence, read sequence, and scoreboard comparison.Week 2 — Checking and Coverage
Day 8 Monitors in Depth Passive observation, #1step clocking-block sampling, publishing to multiple subscribers, monitor reuse. Day 9 Scoreboards and Reference Models Shadow models, expected-vs-observed comparison, queue-based architectures, ordering checks. Day 10 Functional Coverage covergroup, coverpoint, cross, bins, sample(), and coverage-driven verification basics. Day 11 Coverage Closure Coverage holes, illegal bins, ignore_bins, bin weighting, coverage reports, and when coverage is "enough." Day 12 Assertions (SVA) Immediate vs concurrent assertions, assert property, bind constructs, and using assertions inside monitors. Day 13 Assertion Patterns Handshake assertions, overflow/underflow checks, liveness vs safety properties in practice. Day 14 Week 2 Review + Mini-Project Add coverage and assertions to the FIFO environment; close a specific coverage hole end to end.Week 3 — Advanced UVM
Day 15 Virtual Sequences Coordinating stimulus across multiple agents, virtual sequencers, and when to reach for them. Day 16 Sequence Layering Composing small sequences into complex scenarios, do macros, sequence libraries, reusable scenarios. Day 17 Arbitration and Grab/Lock Sequencer arbitration policies, grab() vs lock(), priority-based stimulus, and avoiding starvation. Day 18 uvm_config_db Deep Dive Hierarchical set/get, wildcards, config objects vs scalar values, and common path bugs. Day 19 Factory Overrides in Practice Running the same testbench against DUT or golden model, swapping monitors per test, override timing pitfalls. Day 20 Testbench Reuse and VIP Passive agents for integration, port-level VIP vs protocol VIP, and adapter patterns. Day 21 Week 3 Review + Mini-Project Multi-agent environment with a virtual sequence coordinating a FIFO plus a separate read-back check.Week 4 — Methodology and Scale
Day 22 Register Abstraction Layer (RAL) uvm_reg, uvm_reg_block, uvm_reg_map, and frontdoor vs backdoor access. Day 23 RAL in Practice Register model integration, uvm_reg_adapter, auto-prediction, and register tests. Day 24 Memory Models uvm_mem, sparse memory, memory-aware sequences, and memory access policies. Day 25 Reporting and Messaging uvm_info/warning/error/fatal, verbosity levels, custom report servers, and log formatting. Day 26 Phasing Edge Cases Runtime sub-phase interactions, phase jumping, phase timeouts, and run_phase vs sub-phases. Day 27 Debugging UVM Factory debug, config_db tracing, print_topology(), isolating hangs, common deadlock patterns. Day 28 Regression and Test Management Test selection, +UVM_TESTNAME strategies, regression result parsing, and coverage across regression.Week 5 — Capstone
Day 29 Capstone Part 1 — Verification Plan and Environment Design a verification plan for a multi-port FIFO with back-pressure; build the UVM environment from scratch. Day 30 Capstone Part 2 — Coverage Closure and Regression Sequence library, functional coverage closure, assertions, RAL integration, regression run, and final review.30 days of SystemVerilog/UVM verification.
No comments:
Post a Comment