A simple utility using Pyverilog that lists the differences between two netlists.
- Python 3.8+ with PIP
- IcarusVerilog
python3 -m pip install --upgrade --no-cache-dir nldiff
nldiff <first netlist> <second netlist>
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
andoutput
widths must be expressed in the form of integer constants and not expressions.
- Assign statements and procedural blocks are not supported.
The Apache License, version 2.0. See 'License'.