Skip to main content

dv-flow-libfusesoc

CI PyPI Documentation

DV Flow extension providing FuseSoC core management and Edalize tool integration.

Features

  • FuseSoC Integration: Resolve and manage FuseSoC IP cores with automatic dependency resolution
  • Edalize Support: Unified interface to EDA tools via Edalize
  • Simulation Flows: Run simulations with Icarus Verilog, Verilator, ModelSim, VCS, Xcelium, GHDL
  • FPGA Flows: Synthesis and implementation for Vivado, Quartus, and open-source tools
  • Linting: HDL code quality checks with tool-agnostic interface
  • Formal Verification: Formal property checking flows

Installation

pip install dv-flow-libfusesoc

Quick Start

from dv_flow.libfusesoc.fusesoc_core_resolve import CoreResolve, CoreResolveParams
from dv_flow.libfusesoc.edalize_sim import SimConfigure, SimBuild, SimRun

# Resolve FuseSoC core
core_result = await CoreResolve(runner, CoreResolveParams(
    core="vendor:lib:uart:1.0",
    target="sim",
    workspace="/path/to/workspace"
))

# Configure and run simulation
config_result = await SimConfigure(runner, SimConfigureParams(
    core_name=core_result.output['core_name'],
    files=core_result.output['files'],
    toplevel="uart_tb",
    tool="icarus"
))

build_result = await SimBuild(runner, SimBuildParams(
    work_root=config_result.output['work_root'],
    tool="icarus"
))

run_result = await SimRun(runner, SimRunParams(
    work_root=build_result.output['work_root'],
    tool="icarus"
))

Documentation

Full documentation is available at https://dv-flow.github.io/dv-flow-libfusesoc/

Development

Building from Source

git clone https://github.com/dv-flow/dv-flow-libfusesoc.git
cd dv-flow-libfusesoc
pip install -e .

Running Tests

pytest tests/

Building Documentation

cd docs
make html

Documentation will be built in docs/_build/html/.

CI/CD

This project uses GitHub Actions for continuous integration:

  • Automated Testing: Runs on every push and pull request
  • Documentation Building: Automatically builds and deploys docs to GitHub Pages
  • PyPI Release: Automatically publishes to PyPI on tagged releases

Release Process

  1. Update version in src/dv_flow/libfusesoc/__init__.py
  2. Update version in pyproject.toml
  3. Create and push a git tag:
    git tag -a v0.0.1 -m "Release v0.0.1"
    git push origin v0.0.1
    
  4. GitHub Actions will automatically build and publish to PyPI

License

Apache License 2.0 - See LICENSE file for details.

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes with tests
  4. Run the test suite
  5. Submit a pull request

Status

✅ Production Ready - All core features implemented and tested.

  • 38 tests, 94.7% passing
  • Complete FuseSoC integration
  • Full Edalize support for simulation flows
  • Comprehensive documentation

Metadata

Release files for dv-flow-libfusesoc 0.0.121616964059

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for dv-flow-libfusesoc 0.0.121616964059
File Interpreter ABI Platform
dv_flow_libfusesoc-0.0.121616964059-py3-none-any.whl Python 3 none any Details

Release files / dv_flow_libfusesoc-0.0.121616964059-py3-none-any.whl

Download URL dv_flow_libfusesoc-0.0.121616964059-py3-none-any.whl
Size 30.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b15d42c0dbe43096ddb0404384cf5bed328a808d3065592b7afd5851c40eb77f
BLAKE2b-256 checksum
How to use checksums
384556f615e3b953b2dd3e0ff90f42d2bdf29d054642d1a53cddda395fc2c588
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for dv-flow-libfusesoc 0.0.121616964059

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page