coriolis/anabatic/src
Jean-Paul Chaput dbb16b618f Correct managment of macro block regarding to P&R.
* Change: In NetBuilder::getPositions(), ordering of source/target points
    is now integrated to this function instead of left to the caller.
    In case of real (non-symbolic) routing gauge, skrink the ends of
    half the wire width.
* Change: In NetBuilderHV::doRp_AutoContacts(), in case of non-METAL1
    RoutingPad, put the axis of the segment on the nearest track.
    Issue a warning if we have to shift, as it may be a potential
    source of routing problems.
* New: Anabatic::Session::getNearestTrackaAxis(), proxy to compute
    track positions, knowing the design abutment box.
* Bug: In Katana::PreProcess::propagateCagedConstraints(), when
    looking at all the slave components anchoreds on a RoutingPad,
    if they do not have an AutoSegment lookup, skip them instead
    of crashing.
* New: In cumulus/plugins.block.Block.placeMacro(), new method to
    place a macro cell, partly delegating to the Macro block wrapper.
      Must be called *after* both core and corona abutment boxes have
    been set.
      Adjust the macro block position so the METAL2 & METAL3 pins
    are exactly on pitch regarding the full routing grid. The reference
    being the corona.
      A shift, less than one pitch may be applied, leading in some
    cases of overlapping abutment boxes. But this shouldn't be a
    problem.
      The macro to place is designated through a path of instances
    names, rooted at the *core* (not the corona). Meaning that the
    head instance must be one of the core.
* Change: In cumulus/plugins.chip.Chip, the complete chip I/O pads
    plus corona and core placement is moved out from doPnR() and
    put into doChipFloorplan(). It is now mandatory to call this
    method *before* doPnR().
      Those methods are now cleanly separated so we can perform macro
    block placement or any inner core floorplaning operations between
    them.
* Change:  In cumulus/plugins.macro.Macro, instead of creating large
    pads for the I/O pins so whatever the block position, they will
    be under a grid point, create a simple dogleg to put them on
    grid.
      To ensure that they are "on grid", the block pins must be
    in METAL2 (horizontal E/W) or METAL3 (vertical N/S) and the block
    is assumed to be placed so the bottom left corner of it's
    abutment box is exactly on one grid point for M2/M3.
      This should be done by Block.placeMacro().
2021-03-14 16:16:54 +01:00
..
anabatic Correct managment of macro block regarding to P&R. 2021-03-14 16:16:54 +01:00
AnabaticEngine.cpp Set all segments of external net as external components. 2021-03-05 00:44:15 +01:00
AntennaProtect.cpp Second version of the antenna effect protection. 2021-01-27 11:38:00 +01:00
AutoContact.cpp Set all segments of external net as external components. 2021-03-05 00:44:15 +01:00
AutoContactHTee.cpp Pin management implemented for NetBuilderHV. 2019-03-10 13:25:43 +01:00
AutoContactTerminal.cpp Bug fix: Never slacken a segment from a Pin. 2020-08-02 18:13:47 +02:00
AutoContactTurn.cpp Bug fix, In Katana, do not remove AutoSegment conflicting with blockages. 2020-04-21 15:40:59 +02:00
AutoContactVTee.cpp Pin management implemented for NetBuilderHV. 2019-03-10 13:25:43 +01:00
AutoHorizontal.cpp Added support for loading user defined global routing in Anabatic. 2020-09-30 11:55:39 +02:00
AutoSegment.cpp DRC correct on Arlet6505 / TSMC C180. 2020-11-23 23:07:15 +01:00
AutoSegments.cpp Improved management of AutoContactTerminal for VH gauges (real ones). 2018-01-25 11:58:04 +01:00
AutoVertical.cpp Bug fix: Never slacken a segment from a Pin. 2020-08-02 18:13:47 +02:00
CMakeLists.txt Second version of the antenna effect protection. 2021-01-27 11:38:00 +01:00
ChipTools.cpp Happy New Year 2018 ! Update license years... 2018-01-06 17:55:44 +01:00
Configuration.cpp Second version of the antenna effect protection. 2021-01-27 11:38:00 +01:00
Constants.cpp DRC correct on Arlet6505 / TSMC C180. 2020-11-23 23:07:15 +01:00
Dijkstra.cpp Second version of the antenna effect protection. 2021-01-27 11:38:00 +01:00
Edge.cpp Added support for loading user defined global routing in Anabatic. 2020-09-30 11:55:39 +02: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 GoStraight & GCell density sorting bugs. 2021-02-01 16:36:26 +01:00
LayerAssign.cpp GoStraight & GCell density sorting bugs. 2021-02-01 16:36:26 +01:00
Matrix.cpp Improve Edge ripup method. Improve two-metal terminal management. 2018-03-06 01:48:44 +01:00
NetBuilder.cpp Correct managment of macro block regarding to P&R. 2021-03-14 16:16:54 +01:00
NetBuilderHV.cpp Correct managment of macro block regarding to P&R. 2021-03-14 16:16:54 +01:00
NetBuilderM2.cpp Happy New Year 2018 ! Update license years... 2018-01-06 17:55:44 +01:00
NetBuilderVH.cpp Bug fix, restore the FreePDK 45 (real) support. 2020-04-27 10:34:19 +02: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 DRC correct on Arlet6505 / TSMC C180. 2020-11-23 23:07:15 +01:00
PyAnabatic.cpp Tuning of Anabatic & Katana for AMS 350nm (c35b4). 2018-06-11 16:44:26 +02:00
Session.cpp Correct managment of macro block regarding to P&R. 2021-03-14 16:16:54 +01:00