User Setup — Installing the Waveflow Package

This page is for users who want to use Waveflow as a library in their own project — import waveflow, declare hardware, run simulations, generate HLS. You do not need to clone the repository. If you instead want to modify Waveflow itself or run the bundled examples and tests, see Developer Setup.

Waveflow requires Python 3.10 or newer.

What is a virtual environment (and why use one)?

A virtual environment is a self-contained Python installation dedicated to a single project. Any packages you install into it are isolated from your system Python and from your other projects, so one project’s dependency versions can never break another’s. This is standard practice for Python work — it avoids the classic “everything worked until I installed something else” problem — and Python ships with the venv tool to create one. We recommend installing Waveflow into a fresh virtual environment.

1. Create and activate a virtual environment

From whatever directory holds your project:

python -m venv env          # create an environment named "env" (any name works)

This can take a minute and prints little; afterward an env/ directory holds the environment. Activate it:

.\env\Scripts\Activate.ps1   # Windows PowerShell
.\env\Scripts\activate.bat   # Windows Command Prompt
source env/bin/activate      # macOS / Linux

Your prompt shows (env) while it’s active. If Windows PowerShell refuses to run the activation script (“…Activate.ps1 is not digitally signed”), run this first:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

2. Install Waveflow from GitHub

With the environment active:

(env) pip install git+https://github.com/sdrangan/waveflow.git

This downloads and installs the waveflow package and its dependencies — no clone required. (pip uses git under the hood, so Git must be installed.)

3. Verify the install

(env) python -c "import waveflow; print('Waveflow installed at', waveflow.__file__)"

What you get — and what needs the repo

pip install gives you the Waveflow package: the API for building data schemas, components, interfaces, simulations, and HLS code generation inside your own scripts.

The example walkthroughs in this guide (the register-map, polynomial, histogram designs, …) live in the repository’s examples/ directory, which a package install does not include. To run those directly, clone the repo via Developer Setup, or simply follow along in the docs.

Optional AI-assistant integrations (the MCP server, semantic search, the VS Code extension) are covered separately under AI Tooling and are not needed to use Waveflow.


This site uses Just the Docs, a documentation theme for Jekyll.