PyPPA is a Python library for running Power Performance and Area (PPA) analysis and is based on the OpenROAD flow scripts. Planned features include switchable EDA tools, sweeping ranges of hyperparameters, optimization, and parallelized flows.
PyPPA is entirely written in Python, except for the TCL scripts called by the EDA tools, and the platform (PDK).
- Install Python dependencies.
pip install -r requirements.txt
- Install Python 3.
- Install Yosys and OpenROAD by either of the following methods:
- Install from
litex-hub
via Conda (recommended).- Install Miniconda.
- Create a new environment:
conda create --name "pyppa" python=3.10
- Activate the new environment:
conda activate pyppa
- Run
conda install -c litex-hub yosys openroad
to install Yosys and OpenROAD. - Activate the environment to use these packages each time.
- OpenFASoC installation guide but it includes extra tools.
- Since PyPPA is based on the OpenROAD flow scrips (ORFS), its documentation can be followed to install the tools but this also includes Klayout.
- Build from source: Yosys documentation, OpenROAD documentation.
- Install from
- Optionally, install IVerilog for Verilog simulations.
- On Debian-based systems, you can install it using
apt install iverilog
. However, version >= 12.0 is preferred, especially for Systemverilog.
- On Debian-based systems, you can install it using
See the simple_sweep.py example for a parameter-sweep example and simple_opt.py example for an optimization example. See vizier_opt.py example a more complex optimization example using the Vizier optimization tool.
For a list of flow configuration options, see the file design_config.py.