Commit Graph

11 Commits

Author SHA1 Message Date
Jean-Paul Chaput 3c9d064fd8 * ./Kite:
- New: In BuildPowerRails, special processing for the power ring segments.
        The "diagonal" of vias at each corner is causing a misbehavior of the
        routing algorithm (due to fully saturated GCells in one direction).
        As a temporary fix, extend the segments so they form a "square corner".
        (problem arise on "d_in_i(22)").
    - New: In RoutingEvent::_processNegociate, disable the "isForcedToHint()"
        feature. No noticeable loss of quality or speed.
    - New: In TrackElement/TrackSegment, wraps the AutoSegment parent's mechanism.
        Allows to gets the DataNegociate of either the segment or it's parent.
    - New: State::solveFullBlockages(), dedicated method to solves the case when
        all the allowed tracks of a segment are blocked, tries to moves up
        local segments and to break-up global ones.
    - New: RoutingEventLoop, a more sophisticated way to detect looping.
        Maintain a dynamic histogram of the last N (default 10) segments routeds,
        with the count of how many times they have occurred. If that count
        exeed 40, we *may* be facing a loop.
    - Change: In State::conflictSolve1, implement new policy. The global segments
        no more can be broken by local ones. The idea behind is that breaking
        a global on the request of a local will only produce more cluttering
        in the GCell. Globals must be keep straigth pass through, especially
        inside near-saturated GCells. Globals breaking however can occurs at
        another global's request.
    - Change: In TrackCost, implement the new policy about locals segments that
        cannot break globals segments. The sorting class now accept flags to
        modulate the sorting function. Two options avalaibles: IgnoreAxisWeigth
        (to uses for strap segments) and DiscardGlobals (to uses with locals).
    - Change: In TrackCost, the "distance to fixed" have now an upper bound of
        50 lambdas (no need to be greater because it means it's outside the
        begin & en GCells). Take account not only of fixed segment, but also
        of placed segments which makes bound.
    - Bug: In Track::_check(), while calling each individual TrackSegment check,
        uses it as the *first* argument of the "or", otherwise it may not be
        called.
    - Bug: In ProtectRoutingPad, loop over segment Collections while modificating
        it was producing non-deterministic results. The fact that a collection
        must be not modificated while beeing iterated is becoming a more and more
        painful problem.
2010-12-30 18:42:17 +00:00
Jean-Paul Chaput 551adf4213 * ./kite:
- New: In Configuration & RoutingEvent, adds support for minimal break length
        by layer (METAL1 through METAL7).
    - New: Added measures for final detailed wirelength, wirelength expansion ratio,
        failed wirelength, number of processeds events and number of unique events.
2010-08-22 12:38:27 +00:00
Jean-Paul Chaput 4dadeb3f63 * ./kite:
- New: Parameter "kite.globalMinBreak" (in lambda) telling the minimal size
        under wich a global segment will not be broken, used in "conflictSolve1()".
2010-08-18 20:25:02 +00:00
Jean-Paul Chaput 5705929dc8 * ./katabatic, ./kite:
- Bug: In Configuration, discrepencies of parameter types.
2010-06-22 13:59:22 +00:00
Jean-Paul Chaput 05095032a2 * ./nimbus,
./metis,
    ./mauka,
    ./katabatic,
    ./kite :
    - Change: switch toward the XML configuration system. Suppress the need
        of a default static configuration (now built on demand from the XML
        database).
          In Mauka and Kite, suppress the ConfigurationWidget, wich are
        obsoleted by the generic XML configuration widget.
2010-06-18 14:03:38 +00:00
Jean-Paul Chaput 0c7878df11 * ./kite:
- Bug: In CMakeLists.txt, local include directories *first*.
    - Change: In Configuration::setRipupLimit(), swap the two parameters,
        more natural ordering.
    - New: In ConfigurationWidget, adds an "apply" button to register the
        new parameters values.
2010-06-08 12:03:24 +00:00
Jean-Paul Chaput f29ec72d80 * ./kite:
- New: Adds support to restrict the number of routing layers. Not enabled yet
        because the router needs some more tweak if using only two routing layers.
2010-05-27 16:12:44 +00:00
Jean-Paul Chaput 22f8a25ced * ./kite:
- Change: In Configuration, sets the default expandStep parameter to
        0.99 (gives better results).
    - Change: In KiteEngine::_computeCagedConstraints(), detect and build
        a list of segments on which caged constraints are incompatibles
        (tearing effect shown in ieee_division). All caged constraints
        functions are modificated accordingly.
    - Change: In Session::_revalidate(), makes doglegs on Segment with
        incompatible caged constraints.
    - Mark: vld & ieee_division works.
2010-05-11 11:04:47 +00:00
Jean-Paul Chaput 6a3440f4e6 * Most of tools:
- Bug: In top CMakeLists.txt the SETUP_PROJECT_PATHS was not inserting
        X_USER_TOP *before* X_TOP, thus potentially allowing an obsolete
        system-wide configuration to shadow an up-to-date local one.

  * ./kite:
    - Change: In Configuration/KiteEngine, propagate changes in Configuration
        in Kite. Note that a *second* singleton is created at Kite level.
    - New: KiteEngine::printConfiguration() method to allow quick checks of
        the router's main parameters.
    - New: ConfigurationWidget to display/sets all the revelant Katabatic/
        Kite configuration parameters. To be used with the TabSettings from
        the ControllerWidget.
          The ConfigurationWidget is bound to the default (static) Kite
        configuration, as once it has been run you obviously cannot change the
        router's settings.
2010-04-28 15:44:07 +00:00
Jean-Paul Chaput b2c3c68601 * ./kite:
- Change: In TrackFixedSegment, when the source/target coordinates of the
        fixed segment are outside the grid (i.e. the Cell Abutment Box) truncate
        them.
    - Change: In GCell::addTrackSegment, when looking for overlap between the
        to be inserted TrackSegment and Blockage segment, shrink the Blockage
        span by one DbU to avoid false overlap when they are just edges connexes.
    - Bug: In RoutingEvent::slackenTopology, in the local segment FSM, looping
        on the MaximumSlack state. Now also checks the state count.
    - Change: In TrackSegment::canMoveUp() & canPivotUp() adds the "reserve"
        parameter and uses it in RoutingEvent to prevent over saturated GCells.
    - Change: In Configuration, parameters adjustements: expandStep increased to
        0.40. Makes RoutingSets biggers but no noticeable slow down.
2010-04-23 13:14:17 +00:00
Jean-Paul Chaput 5dd8cb502a * ./hurricane/src/hviewer,
./coriolis/src/crlcore,
     ./coriolis/src/knik,
     ./coriolis/src/katabatic,
     ./coriolis/src/kite,
     ./coriolis/src/equinox,
     ./coriolis/src/solstice,
     ./coriolis/src/ispd:
     - SVN MOVE: Source tree simplification & uniformisation. Now all tools
         are at the same level, directly under the root of the repository.
         No more "coriolis/src".
2010-03-09 15:24:55 +00:00