Python vivado control API for synthesis, simulation and report automation.
Project description
Pyvado
Python Vivado API
Motivation
This project aims to provide a simple and as much comprehensive as possible tools for controlling vivado with python methods for vivado automation
Structure
Pyvado is base on multiple manager, each runing a specific part of vivado. Manager are follows:
TCLManager: Basic manager for runing TCL commandProjectManager: Vivado project managerFileManager: Vivado file system managerFlowManager: Vivado synthesis flow managerHardwareManager: Vivado hardware managerReportManager: Vivado hardware report managerSimulatorManager: Vivado simulation manager
These managers communicate to each other via PyvadoSession object and send TCL command directly to vivado process open in batch mode and controlled via PyvadoProcess class.
Installation
pip install pyvado
Usage
Basic synthesis flow annd hbitstream deploy usage
# open Pyvado
with Pyvado("path/to/vivado/project.xpr") as pv:
# open project
pv.project.open()
# add files
pv.files.add_files("path/to/toplevel.vhd")
pv.files.add_constraint_file("path/to/const.xdc")
# run synthesis to bitstream
pv.flow.set_toplevel("toplevel")
pv.flow.run_all()
# deploy bitstream to hardware
pv.hardware.deploy()
Basic simulation
# open Pyvado
with Pyvado("path/to/vivado/project.xpr") as pv:
# open project
pv.project.open()
# add testbench
pv.files.add_simulation_file("path/to/testbench.vhd")
# open simulator
pv.simulator.open()
# run 80ns simulation
pv.simulator.run("80ns")
Basic reports
# open Pyvado
with Pyvado("path/to/vivado/project.xpr") as pv:
# open project
pv.project.open()
# add files
pv.files.add_files("path/to/toplevel.vhd")
pv.files.add_constraint_file("path/to/const.xdc")
# run synthesis to bitstream
pv.flow.set_toplevel("toplevel")
pv.flow.synhtesis()
# open run
pv.report.open("synth_1")
pv.report.utilization("path/to/utilization.txt")
pv.report.power("path/to/utilization.txt")
For more comprehensive tutorials, see example.
Features
- open vivado project
- run TCL command lines
- open vivado project
- adding files
- complete deployment workflow from synthesis to device programation
- run behavioral simulation
- generate report
- vectorized simulation and vectorized power report
- create vivado project
- multiple vivado execution
Roadmap
- comprehensive report manager
- create vivado project
- multiple vivado execution
Contributing
Contribution are welcome.
License
GPL v3
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyvado-1.1.0.tar.gz.
File metadata
- Download URL: pyvado-1.1.0.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6eb844bd2afed23f6bc4b02f438dafa9d47d67eadb97a4622d53aa1dd25785c
|
|
| MD5 |
30ef569c93cb03c997eca7ea53dbd0d4
|
|
| BLAKE2b-256 |
b2397dc5cc815b5f05ef4310493ce4008b3256ed8ed8bcd8003c2e062df5ce65
|
File details
Details for the file pyvado-1.1.0-py3-none-any.whl.
File metadata
- Download URL: pyvado-1.1.0-py3-none-any.whl
- Upload date:
- Size: 14.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78333ee1a0824cf7348882ed33a091417ba9dfc90949ebd7f4365a03ca3a75ed
|
|
| MD5 |
c2116c484c55effb66396d068fbdc0e4
|
|
| BLAKE2b-256 |
2ffd6092a438d17bd6588f7c244d6637e685e361b758a83fc906e82713373583
|