FSIMX STUDIO SERIES · PART 07 · VWIZ-COVERAGE

Coverage: Power-Aware Coverage from UPF Intent

The coverage metric engineers have wanted for a long time.
WIOWIZ Technologies • August 2026 • 8 min read

Functional coverage says the logic was exercised.
It does not say the power intent was.
Power-aware coverage measures whether the domains powered down, isolated, retained, restored and woke correctly.

A low-power design carries intent that ordinary coverage never sees. The UPF describes power domains, isolation, retention, and the legal power states. A functional coverage report can read 95 percent while not one domain was ever powered down in simulation. The states that matter most, the ones that only exist because the chip saves power, sit outside the code and functional metrics entirely.

Power-aware coverage is a separate model that measures that closure. It is gated on its own and is never averaged into the code or functional number, because blending a power metric into a code average is how a design signs off with its power sequencing untested. It takes two inputs: a UPF-derived inventory as the denominator, and the simulator's runtime event stream as the hits. Coverage bins the events the design actually produced against the intent the UPF declared.

Power-aware coverage overview with per-collector boards
The power-aware overview: each power parameter is a separate collector with its own covered and total, gated on its own.

The measurement model: inventory and events

The inventory is authored upstream from the UPF, one entry per power point with a stable identifier, so a run compares against a fixed denominator rather than against whatever happened to occur. The event stream is what FSiMX observed while the design ran: a domain entering a state, an isolation applied and released, a retention save followed by a restore. Coverage joins the two. A power point with no matching event is uncovered, and the report says so by name.

The power parameters it measures

Each parameter below is a first-class collector, ingested and gated on its own terms:

CollectorWhat it measuresCounted covered when
Domain stateper-domain ON, OFF, RETENTION and related statesthat state was entered
PST statenamed power-state-table states, with a per-domain vector (the state-by-domain matrix)the state was entered
PST transitionlegal transitions, and illegal ones as negative controlslegal: the transition was taken; illegal: attempted and detected
Isolationisolation strategy per domain crossingapply and release both seen
Retentionretention groupa save with a matching restore
X-propagationcorruption containment across an off domaininjected and contained; any escape is a defect
Recoveryfunctional wakea domain resumed after an off
DVFS pointoperating points, with voltage and frequency when the producer emits themthe operating point was entered
DVFS transitionmoves between operating pointsthe move was taken; frequency raised before voltage is good is a defect
Structuraldomains, switches and level shifters from static low-power signoffrecorded as context, not counted as simulation coverage
Power state table shown as a state-by-domain matrix
The state-by-domain matrix: each power state resolved to the value of every domain, so a state that was never entered is visible against the ones that were.

Negative controls, and the false-green it refuses

Two mechanisms keep the metric from reading better than the design behaved. An illegal transition is a negative control: it counts only when it was attempted and detected, never as an ordinary hit, and an illegal edge taken without detection is reported as a defect rather than as coverage. Scenario correlation catches the classic false-green, a power scenario that was requested while no power-down or retention state was ever entered. The mini SoC feed in this release shows exactly that case rather than hiding it, because the test did not drive a power-down yet.

The residual is gated, never rounded to a comforting number. A run reports one of a small set of verdicts:

PASS_POWER_AWARE_FUNCTIONAL
POWER_COVERAGE_INCOMPLETE: STATE 2/4 ...
POWER_COVERAGE_DEFECT
Power transition matrix showing legal and illegal edges
The from and to transition matrix. Legal edges are covered when taken; illegal edges are covered only when attempted and detected.

Where LPG, SPG and APG fit

Power-aware design classifies its supply and ground nets, and three of those classes carry names an implementation engineer will recognize:

  • LPG, Local Power Ground: the supply tied to a specific local logic block or power domain, the domain that gets scaled or shut down.
  • SPG, Switched Power Ground: a net routed through header or footer power-switch transistors, connected and disconnected as a domain enters and leaves sleep.
  • APG, Always-On Power Ground: an unswitched, permanent net for the cells that must never lose power during a power-down, the retention flip-flops, the isolation clamps, and the controllers that sequence the wake.

These are generic engineering nomenclature from the physical-implementation and power-aware flows, popularized by the EDA toolchains; they are not reserved keywords in IEEE 1801, which expresses the same intent through generic supply-net and power-state constructs. That distinction is why coverage stays class-agnostic: it bins events against whatever classes a methodology declares, so LPG, SPG, APG and DVFS closure all flow through the same collectors. The always-on class is where isolation and retention coverage carry the most weight, because those are exactly the cells a power-down must not corrupt.

What is built, and what completes later

The measurement model is built. Every parameter above is ingested and gated, with negative-control and defect semantics, false-green detection, gated closure, and a drill-down GUI with the state-by-domain matrix, the transition matrix, per-collector boards, and scenario correlation. It is demonstrated on a PCIe run with IP-agent vectors and on wz_mini_soc with an inline power feed.

What remains is content and depth as the SoC gains power strategies, which is gated on the producers rather than on coverage:

  • Driven power runs that power domains down, so the collectors show hits instead of a false-green.
  • The SoC-level state table, the integrated per-domain vectors from the full-chip UPF rather than per-IP.
  • The step timeline, observed against required transition sub-steps: quiesce, clock-stop, retain, isolate, off, power-good.
  • DVFS voltage and frequency values and unsafe-ordering defects, once the engine carries a voltage and frequency model.
  • Power source anchors, so a power point double-click reaches its UPF or RTL declaration.
  • Per-class closure for LPG, SPG, APG and DVFS once the scenarios that drive those domains are mapped onto the SoC.

Coverage measures closure. It does not author the power intent or define the classes, and separating those jobs is what keeps the metric from marking its own work.

Scenario correlation board flagging a requested power scenario with no power-down entered
Scenario correlation: a requested power scenario is matched against the states that were entered, so a run that claimed a low-power scenario without entering one is flagged rather than passed.
A functional pass says the logic ran.
Power-aware coverage says the design saved power the way its intent required.
#lowpower #UPF #coverage #powerintent #FSiMX

Download FSiMX Studio

FSiMX Studio is available now. It ships as a Docker bundle from the WIOWIZ website — download it, build the image, and run the same examples, waveforms and coverage you saw in this article. The native FSiMX engine, vWIZ-Wave and vWIZ-Coverage, in one window.

Download FSiMX Studio on wiowiz.ai →

FSiMX Studio: compile, run, waveform debug and coverage closure in one window.
FSiMX Studio on wiowiz.ai/fsimx-studio.html — one persistent session for compile, run, waveform debug and coverage closure.

 

#vWIZCoverage #FSiMX #verification

Our Approach

We're building systems that think about specifications the way engineers do.

We build our own in-house EDA with an intelligence layer across it. Our stack covers the full flow,
from spec to comprehensive sign-off, on tools we build and control.

Walk-in ones, walk-in zeros