Introduction

najaeda is an Electronic Design Automation (EDA) Python package for loading, elaborating, navigating, analyzing, and editing hardware designs from RTL SystemVerilog through structural netlists. It gives Python users access to Naja’s SNL database: designs, libraries, instances, terms, nets, attributes, hierarchical paths, occurrences, and equipotentials.

Typical use cases include:

  • loading Verilog, elaborated SystemVerilog, Liberty, primitive libraries, and Naja interchange files;

  • exploring hierarchy, ports, nets, instance terminals, and flat connectivity;

  • writing netlist analysis passes such as fanout, logic-level, and design inventory reports;

  • applying ECO-style edits such as renaming, reconnecting, deleting, and uniquifying designs as needed;

  • exporting data to text, JSON, pandas, DOT, Verilog, or Naja interchange for downstream tooling.

The recommended API entry point is najaeda.netlist. It keeps object identity stable across hierarchy, converts native C++ objects into Python wrappers, and performs automatic uniquification before edits that would otherwise affect shared models.

An expert raw API is also available as najaeda.naja. It exposes the compiled naja extension module and mirrors the underlying SNL C++ model more closely. See Expert Raw API when you need this lower level.

Information about the najaeda PyPI package is available at https://pypi.org/project/najaeda .

If you want more details about the underlying naja C++ library, please visit the naja GitHub repository at https://github.com/najaeda/naja .

Quick Start

To get started quickly, try the interactive notebook in Google Colab:

Open in Colab

For a local script-oriented introduction, see Quick Start.

Installation

najaeda can be easily installed using pip:

pip install najaeda

Requires Python 3.10 or later.

Bug Reports

If you encounter any bugs, please report them on the najaeda issue tracker: https://github.com/najaeda/naja/issues

You’re also welcome to join the discussion on Matrix:

Join the Matrix chat

License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.