* New: In LefImport, add setGdsForeignDirectory() to point out from where
to load the extra GDS file in case a FOREIGN directory is present
in MACRO.
Also add support for merging the supply nets. It may happens that
the supply nets have different names in the GDS ("vdd!") and LEF files
("pvdd"), in that case, the LEF name supersede the GDS one.
The GDS file will be loaded *first* then completed by the LEF contents.
Blockage in the GDS file are *not* loaded.
* Change: In GdsParser, perform an early recognition of supply nets. For now
it's hardwired to names starting by "vdd" and "gnd", but should be
parametrized in the future.
Needed for the LefImport to merge, if needed, the power supplies.
In GdsStream::xyToComponent(), skip the blockage if required.
Formerly we were using Placement::Area::TrackAvoid() to shift cells terminals
out of the way of the reserved vertical track. With double height cells,
this is coming more complex and due to heavy tracks uses in some cells,
the shift required may becomes too great. Instead, we place filler cells
just underneath the reserved track to prevent their usage. This is a
supplemental constraint on the router, but the new version manage it
correctly.
* New: In cumulus/block.spares.Spares.trackAvoid() to place filler cells
under a given vertical area.
* Change: In LefImport::_pinCbk(), if a pin has "USE POWER" or "USE GROUND"
make it a global signal (previously flagged only "!" appended to name).
* Change: In LefImport::_pinStdPostProcess() do not try to find "on grid"
components for supply nets, just make all their components externals.
* Change: RoutingGauge in KatanaEngine::annotateGlobalGraph(), when
accounting for obstacles, skip new types of RoutingGauges that
are not accounted either when computing initial edge capacity in
EdgeCapacity CTOR. Now only take into account the "Default" kind.
* New: In LefImport::LefParser, add support for LEF Polygons that are
translated into Hurricane Rectilinears.
* Change: In LefImport::setMergeLibrary(), the default behavior for the
LEF parser is to create a new separate library under LEF/<lib_name>
for each file. But if the various cells are put each one in it's own
cell, this is suitable. So we can now set a library beforehand into
which they will be all put.
* New: in CRL/technos.node180.gf180mcu, configuration files for the
GF180MCU open PDK.
* New: in cumulus/designflow.technos, added a setupGF180MCU_GF() to
initialize the GF PDK.