skillfed

pyucis

PyUCIS provides a Python API for manipulating UCIS coverage data.

pyucis v0.2.0.22787133465 552.2K downloads/30d#6,044 on PyPI38
Permissive license Apache 2.0 Active released

What it is and what it does

PyUCIS is a Python library and command-line tool for working with coverage data from hardware verification flows. It implements the Unified Coverage Interoperability Standard (UCIS) data model, allowing you to read, write, convert, and analyze coverage databases from multiple verification frameworks including Verilator, cocotb, and AVL. The package supports multiple formats (XML, YAML, SQLite, NCDB binary, LCOV, Cobertura, JaCoCo, Clover) and can merge coverage runs, generate reports, and export to industry-standard formats.

The tool includes both a Python API for programmatic access and a CLI with an interactive terminal UI for exploring coverage hierarchies, identifying gaps, and analyzing coverage hotspots. It also provides an MCP server for AI agent integration and AgentSkills support for LLM-based coverage analysis. The package is actively maintained, supports Python 3.8 through 3.12, and has no known security vulnerabilities.

Use it for:

  • Convert coverage data between verification frameworks (e.g., cocotb XML to LCOV for CI/CD reporting).
  • Merge coverage results from multiple test runs or simulation batches into a single database.
  • Interactively explore coverage hierarchies and identify untested design areas using the terminal UI.
  • Import Verilator or cocotb coverage and export to standard formats for integration with existing tools.
  • Query coverage statistics and generate reports via CLI or Python API for test planning.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

PyUCIS provides a Python API and CLI tools for reading, writing, converting, and analyzing coverage data in the Unified Coverage Interoperability Standard (UCIS) format, supporting imports from Verilator, cocotb, and AVL verification frameworks.

Yes. PyUCIS is actively maintained, has no security vulnerabilities, and fills a clear need for hardware verification teams working with multiple coverage tools. The low install friction, permissive Apache 2.0 license, and support for current Python versions make it a practical choice. Install it if you need to work with UCIS coverage data, convert between verification frameworks, or integrate coverage analysis into CI/CD pipelines.

Install

pyucis on PyPI

pip

pip install pyucis

uv

uv add pyucis

poetry

poetry add pyucis

Installing pyucis

Before you install

Low friction install with six runtime dependencies (lxml, python-jsonschema-objects, jsonschema, pyyaml, mcp, rich). Active maintenance with recent releases; last commit 2026-03-07.

License in practice

Licensed under Apache 2.0 (permissive), allowing commercial and private use with minimal restrictions.

Quickstart

pip install pyucis

from pyucis import UCIS

db = UCIS("coverage.xml")
for scope in db.scopes():
    for coveritem in scope.coveritems():
        print(f"{coveritem.name}: {coveritem.count} hits")

Requires Python 3.8 or later.

Verify before relying

  • Whether lxml requires a C compiler for installation on some systems.
  • Performance characteristics when working with large coverage databases (file size thresholds, memory usage).
  • Completeness of the NCDB format's claimed 60–73× size reduction in real-world verification workflows.

Package facts

License Apache 2.0 (permissive)
Python support supports the current Python release (>=3.8)
Install friction low — pure-Python wheel
Runtime dependencies 6 — lxml, python-jsonschema-objects, jsonschema, pyyaml, mcp, rich
Maintenance actively maintained — 160 days since the last release
Last repo commit
First released
Downloads 552,162/month — #6,044 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pyucis-0.2.0.22787133465-py2.py3-none-any.whl

Keywords: SystemVerilog, Verilog, RTL, Coverage, UCIS, verification

Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Testing

Tags

UCIS coverage database APIcoverage format conversionverification coverage analysiscocotb coverage importVerilator coverage toolscoverage merging and reportingRTL coverage management
hardware-verificationcoverage-analysisformat-conversion

More Testing packages