* Bug: In Katana::Track::expandFreeInterval(), the OutsideElement case was
not handled correctly, the end index must be increased in that case.
As a result, this function was returning too short an interval.
This was affecting the computation of perpandicular free interval
in DataNegociate::update() for perpandicular fixed but not in a track.
* New: In Anabatic::NetBuilder and NetBuilderVH, now manage GCells with
one Pin, and up to three globals. Used to put terminals at the
edge of a block.
* New: In EtesianEngine, now manage placed Pins.
(done through extractInstanceName())
* Change: In CRL::RoutingGauge::getHorizontalGauge() no longer skip PinOnly
gauges to find the reference one (same goes for vertical).
* Bug: In Hurricane::Interval, the ::getSize() method was returning a negative
length when the Interval was empty. Now return zero. This was causing
slight cost functions side effect when computing the overlap of a segment
with another one belonging to the same net (i.e. shareDelta)
* Bug: In Katana::AutoSegment::computeOptimal(), checks that the optimal
position for the axis is indeed inside the GCell interval.
* Bug: In Katana::DataSymmetric::getSymmetrical(Interval&), reverse the shrink
applied to GCells sides. Interval are of the type [min:max[ so after
symmetric transformation they become ]smax:smin]. Apply a correction so
that they are [smax:smin[ and could be merged with the paired interval
(the one without symmetry applied).
* Bug: In katana::TrackCost::consolidate(), the overlap (now) always positive,
and must be *substracted* to the "delta" (not *added*).
* Bug: In Katana::_computeNetOptimals(), now skip the already processeds
AutoSegments instead of re-processing them.
* New: In Katana::AutoSegment::computeOptimal(), improved computation of
the axis hint:
- For analog net, propagate through the simple doglegs to find
attractors.
- Restrict the allowed interval to the union of GCell sides and
segments constraints that are terminals.
- Consider a local as "long" if it's length exceed 20 the P-pitch.
(maybe make that a tool parameter).
* New: In Anabatic_AutoSegments collection, added a Flag to the constructors
to allow different behavior between digital and analog modes.
For "Aligneds" and "Perpandiculars" collections, now manage a new
Flag WithDoglegs to follow aligned globals through local doglegs
(for analog nets).
Adjust the log level of collections to 144 (formerly 145).
* New: In Anabatic::AutoSegment, new flag SegAnalog for segments that are
part of an analog net.
Note that with this flag, we reach the 32 bits limit...
* Change: In Anabatic::Constants, Flags are now declared as BaseFlags
objects and *not* uint64_t. This avoids overload resolution problems with
arithmetical overload of the operators.
The BaseFlags/Flags types are now completly "isolated" from the
uint64_t, it has the advantage of showing where unwanted previous implicit
conversions where occuring.
* Change: In Katana::Constants, Flags values are now of BaseFlags type instead
of uint64_t.
* Change: In Anabatic::Dijkstra, lots of log cleanup.
* Change: In Anabatic::GCell::getSide(), make the "shrink" parameter visible
to allow to substract the topmost and rightmost track for axis span
computation in AutoSegment::computeOptimal(). Used for analog mode.
* Change: In NetRoutingState, added a flag for analog mode. Use uint32_t
for the flags type.
* New: In Isobar, export the NetRoutingState and NetRoutingExtension objects.