uvm-methodology

Deep expertise in Universal Verification Methodology (IEEE 1800.2) for FPGA verification

509 stars

Best use case

uvm-methodology is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Deep expertise in Universal Verification Methodology (IEEE 1800.2) for FPGA verification

Teams using uvm-methodology should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/uvm-methodology/SKILL.md --create-dirs "https://raw.githubusercontent.com/a5c-ai/babysitter/main/library/specializations/fpga-programming/skills/uvm-methodology/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/uvm-methodology/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How uvm-methodology Compares

Feature / Agentuvm-methodologyStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Deep expertise in Universal Verification Methodology (IEEE 1800.2) for FPGA verification

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# UVM Methodology Skill

## Overview

Expert skill for Universal Verification Methodology (UVM) development following IEEE 1800.2 standards for comprehensive FPGA verification.

## Capabilities

- Generate UVM agent architecture (driver, monitor, sequencer)
- Create UVM environments and scoreboards
- Implement uvm_sequence and virtual sequences
- Configure UVM factory and config_db
- Implement functional coverage with covergroups
- Design UVM register models (RAL)
- Apply UVM phasing and objections correctly
- Debug UVM testbenches effectively

## Target Processes

- uvm-testbench.js
- constrained-random-verification.js
- testbench-development.js

## Usage Guidelines

### Agent Architecture
- **Driver**: Converts sequence items to pin-level activity
- **Monitor**: Observes DUT interface and creates transactions
- **Sequencer**: Routes sequence items to driver
- **Agent**: Contains driver, monitor, sequencer; configurable active/passive

### Environment Structure
- Top-level environment contains agents and scoreboard
- Scoreboard performs reference model comparison
- Config objects distribute configuration
- Virtual sequencer coordinates multiple agents

### Sequence Development
- Extend from uvm_sequence#(item_type)
- Use `start_item()` / `finish_item()` paradigm
- Create layered sequences for complex scenarios
- Use virtual sequences for multi-agent coordination

### Coverage Strategy
- Embed covergroups in monitors
- Sample on transaction completion
- Cross functional coverage points
- Track coverage closure progress

### Best Practices
- Use factory for all component creation
- Configure via config_db, not constructors
- Raise/drop objections properly
- Use UVM reporting macros consistently

## Dependencies

- UVM 1.2 or UVM IEEE 1800.2 library
- SystemVerilog expertise
- Verification methodology knowledge