Skip to content

efabless/nldiff

Repository files navigation

🔍 nldiff (ALPHA)

License: Apache 2.0 CI Status Invite to the Open Source Silicon Slack Code Style: Black

A simple utility using Pyverilog that lists the differences between two netlists.

Requirements

  • Python 3.8+ with PIP
  • IcarusVerilog

Installation

python3 -m pip install --upgrade --no-cache-dir nldiff

Usage

nldiff <first netlist> <second netlist>

Limitations

The tool is designed to operate on netlists coming out of OpenROAD and Yosys. In the interest of expedience, these limitations currently exist:

  • Port polarity and widths must be declared inside the module: the module's port argument list must only have the port names.
  • Only exactly one netlist allowed per file (flat netlist.)
  • Each instance declaration statement must declare exactly one instance: arrays of instances are not allowed and more than one instance in a declaration statement are not allowed.
  • Multi-dimensional nets and ports are not supported.

While the previous ones may be addressed in the future, the following will assuredly not:

  • Parameters are not supported.
    • wire, input and output widths must be expressed in the form of integer constants and not expressions.
  • Assign statements and procedural blocks are not supported.

License

The Apache License, version 2.0. See 'License'.