coriolis/anabatic/src
Jean-Paul Chaput 24dedce09c Added core2chip support for Phenitec80.
This commit degrades the run success rate of ARMv2a to 87% (40 iters).
* New: In CRLcore/etc/.../kite.conf, add configuration parameters:
      katana.termSatReservedlocal
      katana.termSatthreshold
    for the new edge capacity computation system.
* New: In CRLcore/etc/symbolic/phenitec06/, add support for N. Shimizu
    small I/O pads (supplied in phlib80). Tune various parameters of
    Anabatic/Katana to increase routing success.
* Change: In CRLcore/alliance/ap/ApParser, make Pin external components,
    so RoutingPad will be build upon in global routing.
      Do not complain when a I/O pad has a physical instance that did
    not exists in the netlist. Just create it (appeared in phlib80).
      When no netlist instance exists in a pad, the pad Cell is still
    considered as terminal.
* New: In Etesian::BloatCells, new profile named "3metals" better suited
    for two routing metals technologies (i.e. Phenitec).
* New: In Anabatic::RawGCellsUnder, new CTOR which take only source &
    target points instead of a segment. Needed to manage wide segment for
    which the axis to consider is not that of the segment (one axis for
    each track it intersect).
* New: In Anabatic::GCell, add a RoutingPad count attribute, for Edge
    reservation computation.
* New: In AnabaticEngine::computeEdgeCapacities(), instead of decreasing
    all edges of a fixed amount (hTrackReservedLocal), guess the GCell
    cluttering from the number of RoutingPads that it contains.
      For non-saturated GCells, the four edges are decreased by the number
    of RoutingPads. We use the maximum from the two neigboring GCells.
    The hTrackReservedLocal parameter is now used only as a *maximum*
    that the edge reservation can reach.
      If a GCell is saturated (more than 8 RoutingPads, the saturation is
    propagated horizontally to 2 neigboring GCells).
* Change: In AutoContactTerminal::getNativeConstraintBox(), use a more
    flexible gauge name matching for terminal vertical extensions correction.
    Namely, match all "msxlib*" kind of gauges.
* Change: In AutoSegment::setAxis(), add the ability to force the axis
    position, even if it is a non-canonical segment. Maybe needed in the
    initialisation steo, before the first canonisation is performed.
* New: In NetBuilder, added new methods _do_1G_1PinM1() and _do_2G_1PinM1(),
    to manage coronas for Phenitec designs.
      To avoid various side effects from segments being too close from
    the north / east side of the routing area, make those segments fixeds.
* Change: In KatanaEngine::annotateGlobalGraph(), the management of wide
    wires was wrong. The axis to use to find the underlying GCells is the
    one of the track, not of the segment. This was creating bad edge
    capacity computation under the power ring of a block and subsequently
    routing failures.
* New: In Kanata::Manipulator, added method reprocessParallels(), not used
    though, but keep it anyway, might be of use later...
* New: In Kanata::Manipulator, added method avoidBlockage() for terminal
    METAL2 in non-preferred direction, restrict the terminal and turn
    constraint box at the current position of the perpandicular, so it
    doesn't create a deadlock in METAL2.
* Change: In SegmentFsm::conflictSolveByPlaceds(), if we cannot break
    using the whole overlap, try the first atomic overlap.
* New: In SegmentFsm::_slackenStrap(), manage conflict between a non-prefered
    segment and a blockage, this when to call avoidBlockage()...
* New: In Katana::Configuration, management of the new edge computation
    parameters:
      katana.termSatReservedlocal
      katana.termSatthreshold
* New: In Cumulus/plugins/Core2Chip, support for Phenitec I/O pads.
2019-09-17 17:05:54 +02:00
..
anabatic Added core2chip support for Phenitec80. 2019-09-17 17:05:54 +02:00
AnabaticEngine.cpp Added core2chip support for Phenitec80. 2019-09-17 17:05:54 +02:00
AutoContact.cpp Upgrade of Katana detailed router to support Arlet 6502. 2019-07-28 23:20:00 +02:00
AutoContactHTee.cpp Pin management implemented for NetBuilderHV. 2019-03-10 13:25:43 +01:00
AutoContactTerminal.cpp Added core2chip support for Phenitec80. 2019-09-17 17:05:54 +02:00
AutoContactTurn.cpp Upgrade of Katana detailed router to support Arlet 6502. 2019-07-28 23:20:00 +02:00
AutoContactVTee.cpp Pin management implemented for NetBuilderHV. 2019-03-10 13:25:43 +01:00
AutoHorizontal.cpp Improvements in routing quality for ARMv2a, reached 100% success. 2019-08-23 23:48:09 +02:00
AutoSegment.cpp Added core2chip support for Phenitec80. 2019-09-17 17:05:54 +02:00
AutoSegments.cpp Improved management of AutoContactTerminal for VH gauges (real ones). 2018-01-25 11:58:04 +01:00
AutoVertical.cpp Improvements in routing quality for ARMv2a, reached 100% success. 2019-08-23 23:48:09 +02:00
CMakeLists.txt In Anabatic, correctly set the wire width according to the routing gauge. 2019-02-12 12:43:09 +01:00
ChipTools.cpp Happy New Year 2018 ! Update license years... 2018-01-06 17:55:44 +01:00
Configuration.cpp Added core2chip support for Phenitec80. 2019-09-17 17:05:54 +02:00
Constants.cpp Added core2chip support for Phenitec80. 2019-09-17 17:05:54 +02:00
Dijkstra.cpp Upgrade of Katana detailed router to support Arlet 6502. 2019-07-28 23:20:00 +02:00
Edge.cpp Support for density estimation for the global router. 2019-02-26 20:03:53 +01:00
EdgeCapacity.cpp Capacity managment by layer in Edges & GCells (plus fixes). 2018-02-21 00:16:50 +01:00
Edges.cpp Support for density estimation for the global router. 2019-02-26 20:03:53 +01:00
GCell.cpp Added core2chip support for Phenitec80. 2019-09-17 17:05:54 +02:00
LayerAssign.cpp Added core2chip support for Phenitec80. 2019-09-17 17:05:54 +02:00
Matrix.cpp Improve Edge ripup method. Improve two-metal terminal management. 2018-03-06 01:48:44 +01:00
NetBuilder.cpp Added core2chip support for Phenitec80. 2019-09-17 17:05:54 +02:00
NetBuilderHV.cpp Added core2chip support for Phenitec80. 2019-09-17 17:05:54 +02:00
NetBuilderM2.cpp Happy New Year 2018 ! Update license years... 2018-01-06 17:55:44 +01:00
NetBuilderVH.cpp Pin management implemented for NetBuilderHV. 2019-03-10 13:25:43 +01:00
NetConstraints.cpp Improvements in routing quality for ARMv2a, reached 100% success. 2019-08-23 23:48:09 +02:00
NetOptimals.cpp Pin management implemented for NetBuilderHV. 2019-03-10 13:25:43 +01:00
PreRouteds.cpp Redesign of I/O pads and Corona support to mix real and symbolic. 2019-05-10 11:58:05 +02:00
PyAnabatic.cpp Tuning of Anabatic & Katana for AMS 350nm (c35b4). 2018-06-11 16:44:26 +02:00
Session.cpp Upgrade of Katana detailed router to support Arlet 6502. 2019-07-28 23:20:00 +02:00