Skip to content

ReaLLMASIC/pyPPA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyPPA - PPA Analyzer Flow In Python

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.

Getting Started

PyPPA is entirely written in Python, except for the TCL scripts called by the EDA tools, and the platform (PDK).

Installation

  1. Install Python dependencies.
    • pip install -r requirements.txt
  2. Install Python 3.
  3. Install Yosys and OpenROAD by either of the following methods:
    • Install from litex-hub via Conda (recommended).
      1. Install Miniconda.
      2. Create a new environment: conda create --name "pyppa" python=3.10
      3. Activate the new environment: conda activate pyppa
      4. Run conda install -c litex-hub yosys openroad to install Yosys and OpenROAD.
      5. 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.
  4. 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.

Usage

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks