coriolis/anabatic
Jean-Paul Chaput 97d5a1f583 Bad computation of optimal position for analog segments.
* Bug: In Anabatic::AutoSegment::computeOptimal(), the "side stack"
    computing the intersection of all the sides of the GCell that the
    segment is going through was implicitly supposing that the
    resulting intersection wasn't empty. But for analog segment, we
    compute the position of all the segments linked though simple
    doglegs, and as dogleg occurs there can be a sufficient shift
    so the intersections of all the sides became empty.
      Now the "side stack" can manage configuration when instead
    of having an intersection we have a "hole" in the GCell side
    span (only one hole is supported at the moment). When a hole
    is present, the optimal position is the center of the hole.
      Should be refined so that the position is computed according
    to the longest GCell that we go through.
* Change: In Katana::SegmentFsm::_slackenGlobal(), when slackening
    a global from a ananlog net, allow to make a dog leg once
    instead of immediately moving up. The break point is the center
    of the segment.
* Change: In Katana::Manipulator::Makedogleg(DbU::Unit) if the break
    position is over a device, choose the left of right GCell.
2018-02-21 17:03:43 +01:00
..
cmake_modules Anabatic transient commit 1. 2016-05-23 16:15:25 +02:00
doc Modularize the global to detail routing converter. 2017-12-17 00:13:19 +01:00
src Bad computation of optimal position for analog segments. 2018-02-21 17:03:43 +01:00
CMakeLists.txt Compliance with cmake 3.0 (Debian 9.2). Corrects all warnings. 2017-12-02 14:30:05 +01:00