Commit Graph

3 Commits

Author SHA1 Message Date
Jean-Paul Chaput d07cdf03e9 Replace "unsigned int" by "Flags" in all AutoSegments collections.
* Change: In Anabatic::AutoSegments collections, change the type of all
    the flags that where in "unsigned int" (32 bits) to Flags (uint64_t)
    as there is now more than 32 flags for functions.
* New: In Ababatic::Constants, added new flag Flags::WithPerpands, which
    makes the number of flags tip over 32 bits, thus making mandatory
    to uses Flags and not unsigned int.
* New: In Anabatic::AutoSegments_Perpandiculars, manage a new flag
    Flags::WithDoglegs to allow to propagate through global segments that
    are connecteds via doglegs on local segments. Meaning that there is
    a good chance that they could be aligned.
      Slighly change the way we propagate on aligned segments: no longer
    check for VTee or HTee, but only for same direction and layer as
    master.
* New: In Anabatic & Katana, replace all the "int", "long" and their
    variants by the less implementation ambiguous "int32_t", "int64_t"
    (and variant). This should help to better detect bit trucation in
    flags.
      Use the type to give a hint about the flags kind:
        - Type "Flags", for flags shared among Anabatic & Katana
          functions/methods (may also appear in some objects states).
        - Type "uint32_t" for flags belonging to an object internal
          state of from Hurricane functions flags (those should be
          grouped in a Flag subclass in a perfect world).
2017-05-16 14:53:33 +02:00
Jean-Paul Chaput 44500a2329 Correct management of last E/N GCell boundaries.
* Bug: In Anabatic::GCell, new functions getConstraintUMax() to return the
    correct bounding box for the last north/east GCell. The GCells do not
    own their north/east edges, except for the last ones. Thoses functions
    must distinct from getUMax() because for them, the shrink is always
    applied. getConstraintBox() uses the "getConstraintUMax()" functions.
* Bug: In Anabatic::AutoContact, initialize the constraint box from the
    new GCell::getConstraintUMax(), to manage correctly the boundaries
    of the nothernmost & easternmost GCells. The problem was showing for
    pins on the north/east side of a circuit, the constraint
* Bug: In Anabatic::AutoContactHTee, Anabatic::AutoContactVTee and
    Anabatic::AutoContactTerminal forgot to call the _preCreate() function
    in the various create().
* Bug: In Matrix::getUnder(), if on the N/E boundary, decrease by one to
    be enclosed in it.
2016-08-27 15:59:12 +02:00
Jean-Paul Chaput 9114766129 Anabatic transient commit 11. Merge Katabatic into Anabatic.
* New: In Anabatic, merge in the Katabatic tool. The merge is not complete
    yet. Only basic capabilities have been moved.
2016-07-18 14:48:37 +02:00