Coloquinte / naja

Structural Netlist API (and more) for EDA post synthesis flow development

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Naja

build Codacy Badge codecov License


Introduction

Naja is an umbrella repository containing mainly (for the moment) the SNL netlist data structure.

Compilation

Getting sources

# First clone the repository and go inside it
git clone https://github.com/xtofalex/naja.git
cd naja
git submodule init
git submodule update

Dependencies

Mandatory dependencies:

  1. Boost
  2. cmake: at least 3.22 version

Optional dependencies:

  1. Python3: for building the Python3 interface
  2. Doxygen: for the documentation

Embedded dependencies:

For convenience, google test (https://github.com/google/googletest) is provided through git submodule.

Building

#First define an env variable that points to the directory where you want naja to be installed:
export NAJA_INSTALL=<path_to_installation_dir>
# Create a build dir and go inside it
mkdir build
cd build
cmake <path_to_naja_sources_dir>
#For instance: cmake ~/srcs/naja
make
make test
make DESTDIR=$NAJA_INSTALL install

Building documentation

#make sure that doxygen was available when launching the cmake command
cd build
make docs
make DESTDIR=$NAJA_INSTALL install

Documentation will be installed in $NAJA_INSTALL/doc directory. Starting file to open in browser is: $NAJA_INSTALL/doc/html/index.html.

Snippets

c++

https://github.com/xtofalex/naja/blob/main/src/snl/snippets/app/src/SNLSnippet.cpp

Python

https://github.com/xtofalex/naja/blob/main/src/snl/snippets/python/snl_snippet.py

Application snippet

An application snippet can be found at:

https://github.com/xtofalex/naja/blob/main/src/snl/snippets/app

This "app" directory and its contents can be copied to start a new application.

About

Structural Netlist API (and more) for EDA post synthesis flow development

License:Apache License 2.0


Languages

Language:C++ 96.3%Language:CMake 1.9%Language:Cap'n Proto 0.9%Language:Verilog 0.5%Language:Python 0.4%