In order to accurately find the rectangles (Components) causing a short
circuit, we need to aggregate the equipotentials as soon as we starts
to merge the tiles. Because tiles being a union set, the tree compression
forbid to know which tile overlap which one afterwards. So the equipotentials
are created early on the fly. We also add an accounting of all the net's
components (Plug excluded) to know if it is fully included in the
equipotential. If not, we have an open.
This is an impacting change from the previous version in which we build
the equipotentials *after* aggregating the tiles only. The added cost
comes from the number of equipotential merging that we have to perform
when we merge tiles. Almost two times slower. May need to have a deep
look on how to optimize it later (efficient merge or keeping the order
tiles where merged).
* Change: In Occurrence::getCompactString(), when the path is void,
still display a double colon (::) instead of just one so we know
for sure that the it is void.
Updated cmake files to have find_package with Devlopment.Module to
make build work both locally and from cibuildwheel.
Added set Python_LIBRARIES="-Wl,--unresolved-symbols=ignore-all"
in case when it is not set (in manylinux) as lipython not found.
Added RPATH to be '$ORIGIN/libs:$ORIGIN' for all shared library
be discoverable.
Added CMakeFiles.txt that perform sequential build of coriolis components
Fixed some cmake files bugs
Added extra files to coriolis python wheel to make shared library preload
* In cumulus.designflow.technos.setupCMOS(): export back the guessed
ALLIANCE_TOP *before* importing technos.symbolic.cmos so it is
used for the CELLS_TOP. This avoid defaulting to /soc/alliance
which does exists only on LIP6 computers...
Added config directory to be determined through platformdirs package
Added pysetup directory with setup.py script and additional code to make
properly assembled python wheel distribution.
To make wheel run: python3 pysetup/setup.py bdist_wheel
When wheel installed into the system the 'coriolis' command available.
Running coriolis from python package folder implemented
through preloading of required *.so files in proper order
(no need to install shared libraries in system folders).