Skip to main content

Python vivado control API for synthesis, simulation and report automation.

Project description

Pyvado

Python Tests Python License

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:

  1. TCLManager : Basic manager for runing TCL command
  2. ProjectManager : Vivado project manager
  3. FileManager : Vivado file system manager
  4. FlowManager : Vivado synthesis flow manager
  5. HardwareManager : Vivado hardware manager
  6. ReportManager : Vivado hardware report manager
  7. SimulatorManager : 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


Download files

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

Source Distribution

pyvado-1.0.0.tar.gz (24.5 kB view details)

Uploaded Source

Built Distribution

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

pyvado-1.0.0-py3-none-any.whl (28.8 kB view details)

Uploaded Python 3

File details

Details for the file pyvado-1.0.0.tar.gz.

File metadata

  • Download URL: pyvado-1.0.0.tar.gz
  • Upload date:
  • Size: 24.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for pyvado-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4c21edecb9792832e414b4569ddaa8dc0b1d6b63cec05876c9cc0cf3daecba30
MD5 25a335f58aa2572faf3a129d4265c18e
BLAKE2b-256 26d5e0917e36b1c51aa07943e17e6ea154d705d7ad7294c2b239b346ce60a5ec

See more details on using hashes here.

File details

Details for the file pyvado-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pyvado-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 28.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for pyvado-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a30e00d38f7f5ba1c1ca3086aa8ee36a0ecb6bfd15cefcacdc7d1ddd7133ce80
MD5 b944d61a6650254e3b131b551c99fc6b
BLAKE2b-256 a1277197e1f44309500401d5cc0803879f7053f0408dfd5757be48307faa8b42

See more details on using hashes here.

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