dv-flow-libfusesoc
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
- Update version in
src/dv_flow/libfusesoc/__init__.py - Update version in
pyproject.toml - Create and push a git tag:
git tag -a v0.0.1 -m "Release v0.0.1" git push origin v0.0.1
- GitHub Actions will automatically build and publish to PyPI
License
Apache License 2.0 - See LICENSE file for details.
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes with tests
- Run the test suite
- 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)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.