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.0.tar.gz (15.9 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.0-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

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

Hashes for pyvado-1.1.0.tar.gz
Algorithm Hash digest
SHA256 c6eb844bd2afed23f6bc4b02f438dafa9d47d67eadb97a4622d53aa1dd25785c
MD5 30ef569c93cb03c997eca7ea53dbd0d4
BLAKE2b-256 b2397dc5cc815b5f05ef4310493ce4008b3256ed8ed8bcd8003c2e062df5ce65

See more details on using hashes here.

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

Hashes for pyvado-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 78333ee1a0824cf7348882ed33a091417ba9dfc90949ebd7f4365a03ca3a75ed
MD5 c2116c484c55effb66396d068fbdc0e4
BLAKE2b-256 2ffd6092a438d17bd6588f7c244d6637e685e361b758a83fc906e82713373583

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