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:
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:
License
This project is licensed under the Apache License 2.0. See the LICENSE file for details.