Skip to main content

Local-first RTL verification knowledge platform for UVM scaffolds, reviewed maps, pattern packs, and CI gates.

Project description

LazyUVM

LazyUVM checked PyPI

LazyUVM is a local-first Git-native verification knowledge layer for RTL projects.

Start from RTL, generate starter verification artifacts, capture reviewed protocol/register/behavior knowledge, and turn simulator output into CI-readable evidence.

LazyUVM is not trying to replace VCS, Xcelium, Questa, Verilator, or vManager. It makes their output reviewable, local, Git-tracked, and CI-friendly.

RTL + lazyuvm.toml + simulator reports
  -> LazyUVM
  -> UVM/cocotb/C-header starters
  -> spec/register/behavior/coverage/waiver traceability
  -> Markdown/JSON evidence for local review and CI

LazyUVM is deliberately local-first: no required cloud service, no required third-party Python dependencies, and optional local Ollama summaries only when a user explicitly asks for local AI help.

Try It In 3 Minutes

Install from PyPI:

pipx install lazyuvm
lazyuvm --version

Then print the shortest runnable demo:

lazyuvm demo quickstart

That demo shows the copy/paste path from a public coverage report to normalized LazyUVM evidence and a gate report. It does not require a simulator, private spec PDF, cloud service, or local AI.

Product Boundary

LazyUVM is not a simulator.

LazyUVM is not a vManager replacement.

LazyUVM is not sign-off verification.

It sits next to those tools as a Git-native evidence layer:

VCS / Xcelium / Questa / Verilator / existing reports
  -> LazyUVM normalized evidence
  -> Git review, CI summaries, manifests, and local knowledge reuse

Why Use It

Most verification projects lose knowledge across specs, spreadsheets, old emails, waiver notes, coverage reports, and personal debug history. LazyUVM keeps that knowledge close to the code:

Need LazyUVM gives you
Start a project quickly RTL scan, project config, starter UVM/SVA/coverage/cocotb output
Keep intent reviewable lazyuvm.toml protocol maps, register maps, behavior specs, spec references
Reuse knowledge reviewed pattern packs, local pack dependencies, lockfiles, overlay diffs
Review simulator output normalized lazyuvm.eda_report.v1 JSON from VCS/Questa/Xcelium/Verilator-style reports
Keep CI honest lazyuvm gate Markdown/JSON evidence, waiver checks, manifest verification
Use AI safely facts-only context for optional local Ollama explanations; humans still approve

The useful stickiness is not hidden telemetry. It is the team's reviewed verification knowledge living in Git.

Pick Your Path

LazyUVM has a lot of commands, but most users should start with only one path:

User Start with Add later Avoid at first
Student / open-source RTL demo quickstart, check, uvm, cocotb, coverage parse regs --c-header, spec --coverage-plan strict gates, waivers, pack policy
Solo developer / small team init, check, gate, know trace, know manifest reviewed waivers, pack reuse, init-ci enterprise-style process too early
Startup / design house CI gate, EDA report JSON, C headers, cocotb/UVM starters pack lockfiles, overlay diff, waiver governance public packs without review
Enterprise / existing EDA flow coverage parse, gate --eda-report-json, offline/security docs strict waiver policy, manifests, local AI review bundle claims of sign-off replacement

The adoption rule is simple: begin with local evidence, then add governance only when the team is ready to review it.

Install

From a checkout:

python3 -m pip install -e .
lazyuvm --version

For command discovery:

lazyuvm --help
lazyuvm demo --help

Older one-off flags still exist behind lazyuvm legacy --help, but new project work should use lazyuvm.toml and the project commands below.

Five-Minute Path

Create a project config:

lazyuvm init --filelist path/to/files.f --top your_top_module

Run local checks and starter exports:

lazyuvm check
lazyuvm uvm
lazyuvm cocotb --out-dir generated_cocotb
lazyuvm regs --c-header --out regs.h

Validate reviewed knowledge:

lazyuvm regs
lazyuvm spec
lazyuvm know trace --out LazyUVM_Traceability.md
lazyuvm know manifest --out LazyUVM_Knowledge_Manifest.json

Turn the current state into CI evidence:

lazyuvm gate --update-manifest --json-out LazyUVM_Gate.json --report LazyUVM_Gate.md

Add GitHub Actions when the local flow is stable:

lazyuvm init-ci --filelist path/to/files.f --top your_top_module --repo OWNER/REPO --cocotb

EDA Report Flow

LazyUVM v0.7 adds a small adapter contract for simulator and coverage reports. The goal is to absorb report output into the same Git-reviewed evidence loop, not to replace the simulator.

lazyuvm coverage parse reports/vcs_urg.txt \
  --tool vcs \
  --json-out LazyUVM_EDA_Report.json \
  --out LazyUVM_EDA_Report.md

lazyuvm gate \
  --eda-report-json LazyUVM_EDA_Report.json \
  --json-out LazyUVM_Gate.json \
  --report LazyUVM_Gate.md

Bundle the local JSON evidence into a static CI artifact:

lazyuvm report bundle \
  --gate-json LazyUVM_Gate.json \
  --eda-report-json LazyUVM_EDA_Report.json \
  --out LazyUVM_Report

Open LazyUVM_Report/index.html for the overview, LazyUVM_Report/coverage.html for coverage-hole review, or LazyUVM_Report/waivers.html for waiver health.

Supported starter profiles:

Profile Typical source
vcs Synopsys VCS URG-style summaries
questa Siemens Questa vcover-style summaries
xcelium Cadence Xcelium IMC-style summaries
verilator / lcov Verilator and LCOV-style text reports
generic simple line-oriented coverage notes

See docs/v0.7_stabilization.md for the stable lazyuvm.eda_report.v1 fields and the coverage parse -> gate handoff. See docs/report_bundle.md for the v0.8 static report bundle skeleton.

Typical Team Workflow

  1. Commit lazyuvm.toml.
  2. Add reviewed protocol/register/behavior/spec references as the project becomes understood.
  3. Parse coverage or simulator reports into LazyUVM JSON.
  4. Run lazyuvm gate locally and in CI.
  5. Review Markdown/JSON evidence in pull requests.
  6. Use packs, waivers, and manifests only when the team actually needs them.

That progression matters. Teams should not start by enabling every feature. Start with a small reviewed config, then add governance as it pays for itself.

Documentation Map

Do not read every document first. Pick one path:

If you want to... Start here
Find a runnable sample examples/README.md
Try the product flow docs/team_governance_demo.md
Understand PR repair commands docs/pr_workflow_cookbook.md
Export UVM, cocotb, C headers, and CI evidence docs/export_targets.md
Reuse local knowledge packs docs/pack_reuse_workflow.md
Parse EDA reports in CI docs/eda_ci_recipes.md
Review offline/security boundaries docs/eda_offline_adoption.md
Use local AI safely docs/ai_review_workflow.md

The full documentation index is docs/README.md.

Local AI Boundary

LazyUVM does not ask AI to sign off RTL.

LazyUVM = extract facts, link evidence, write stable JSON/Markdown
AI      = optionally explain those facts in local prose
Human   = review, approve, sign off

Useful commands:

lazyuvm know context "coverage closure" --gate-json LazyUVM_Gate.json --out LazyUVM_AI_Context.json
lazyuvm know context-verify LazyUVM_AI_Context.json
lazyuvm know prompt --context-json LazyUVM_AI_Context.json --out LazyUVM_AI_Prompt.txt
lazyuvm know explain "coverage closure" --context-json LazyUVM_AI_Context.json --ai --out LazyUVM_Knowledge_Explain.md
lazyuvm know guard --context-json LazyUVM_AI_Context.json --ai-output LazyUVM_Knowledge_Explain.md

AI output is a reading aid, not a reviewed fact or root-cause decision.

Who It Is For

LazyUVM is a practical fit for:

  • students and open-source RTL projects that need repeatable verification structure without enterprise tooling;
  • small teams that want Git-reviewed protocol/register/spec knowledge;
  • teams already using commercial simulators but wanting lightweight PR evidence;
  • engineers who want local-first AI summaries without uploading design data.

It is not a substitute for a mature enterprise sign-off flow. If your company already has vManager, Verdi, VCS, Xcelium, Questa, Jasper, or internal dashboards, LazyUVM should complement that flow by making local evidence easier to review.

For enterprise conversations, the safest framing is:

LazyUVM does not replace the enterprise flow.
LazyUVM turns local RTL knowledge and EDA output into reviewable Git/CI evidence.

Release Status

Current repository version: 0.8.3

Latest tagged release: 0.8.3

Latest release note: docs/releases/v0.8.3.md

See CHANGELOG.md for release history and RELEASE_CHECKLIST.md before cutting a tag.

For small public-safe contributions, see CONTRIBUTING.md. For sensitive reports and private design-data boundaries, see SECURITY.md.

Project Philosophy

The project is intentionally boring where it matters:

  • local files over hidden services;
  • reviewable TOML/JSON/Markdown over opaque databases;
  • explicit spec/register/behavior links over magic inference;
  • deterministic CI evidence over unverifiable AI claims;
  • human approval over automated sign-off.

That is the adoption path: make the first local workflow useful, then let teams keep more of their verification memory in a format they can review, diff, and carry between projects.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lazyuvm-0.8.3.tar.gz (268.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lazyuvm-0.8.3-py3-none-any.whl (269.8 kB view details)

Uploaded Python 3

File details

Details for the file lazyuvm-0.8.3.tar.gz.

File metadata

  • Download URL: lazyuvm-0.8.3.tar.gz
  • Upload date:
  • Size: 268.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lazyuvm-0.8.3.tar.gz
Algorithm Hash digest
SHA256 2e598e90060e1926195602fdaeee903b42ff4f50c857d2067d4b1334354c0a4a
MD5 0cb17c0d2d4bc6c7446230f235b9d651
BLAKE2b-256 98f059d68353119bf8e7d6fd9c616dc4b286d0fd39f2f8f731abf35d13119ad3

See more details on using hashes here.

Provenance

The following attestation bundles were made for lazyuvm-0.8.3.tar.gz:

Publisher: release.yml on jeonghunx/LazyUVM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lazyuvm-0.8.3-py3-none-any.whl.

File metadata

  • Download URL: lazyuvm-0.8.3-py3-none-any.whl
  • Upload date:
  • Size: 269.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lazyuvm-0.8.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7fd82862d48fb345884c7dd15c868f56394cbd0a037b33088940156c6bd82daf
MD5 0f577e26a5aa26a4b81ff85ab9d140ad
BLAKE2b-256 125024fc809a4ec29871f6bdceadec6c847db6f8dbcb7c1d56595417db52328a

See more details on using hashes here.

Provenance

The following attestation bundles were made for lazyuvm-0.8.3-py3-none-any.whl:

Publisher: release.yml on jeonghunx/LazyUVM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page