UVM reference implementation

Generic Metric Analyzer

A small reusable UVM analysis component that demonstrates how transactions can feed custom numeric metrics such as count, sum, mean, minimum, and maximum.

01

Understanding the project

The idea in plain language.

Generic Metric Analyzer is a compact teaching and reuse example for adding measurement logic to a UVM environment. A metric object stores real-number observations and exposes common aggregate operations, while an analyzer can receive transactions through a UVM analysis connection and update one or more metrics.

The useful idea is separation: the monitor or scoreboard publishes transactions, the analyzer decides which values to measure, and each metric owns its calculation. Engineers can add domain-specific metric subclasses without rewriting the transaction producer.

02

Core capabilities

What the project can do.

  • 01

    Collects numeric observations in a reusable UVM object.

  • 02

    Provides measurement count, sum, mean, minimum, maximum, and removal of the latest observation.

  • 03

    Demonstrates how to connect transaction analysis flow to metric collection.

  • 04

    Includes a top-level example, package, and sample output for quick experimentation.

  • 05

    Links to an EDA Playground version that can be run without a local simulator setup.

03

Typical workflow

How someone uses it.

  1. 1

    Create the metrics needed by a verification component during analyzer construction.

  2. 2

    Connect a monitor or other producer to the analyzer’s UVM analysis path.

  3. 3

    Extract the relevant numeric values in write(), call measure(), and report aggregate values when required.

04

Under the hood

Technology and design choices.

  • SystemVerilog
  • UVM
  • Analysis ports
  • Reusable metric objects
  • EDA Playground example

05

Important considerations

What to know before using it.

  • This repository is an example implementation rather than a packaged production library.
  • Teams are expected to define their own transaction types, measurement rules, reporting, and any statistical operations beyond the simple aggregates shown.