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.1.1.tar.gz (25.4 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.1.1-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pyvado-1.1.1.tar.gz
Algorithm Hash digest
SHA256 696bad37c0976f0dcba777f8800501b9b1793d98d111f666cc7785586434d143
MD5 e67417838ce4d1bbafc1cd0ef63c966c
BLAKE2b-256 354e465ed4e022b8c6eefe89cc87971ac4cb4df9cff891f648e9cf23d9c90385

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyvado-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 30.1 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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9a7792801b7cfeaacb4479964dc902ee877d97a29344ce662061ba677dd7dcb9
MD5 6d89b59fa8026f28859930c1e4d1dd79
BLAKE2b-256 8ae031b3ebb9d453683bdb78fbebe82c346486b255c36ea3c8848474362627d4

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