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
Create the metrics needed by a verification component during analyzer construction.
-
2
Connect a monitor or other producer to the analyzer’s UVM analysis path.
-
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.