Commit Graph

11 Commits

Author SHA1 Message Date
Jean-Paul Chaput 23fc3e7b79 * ./kite:
- Change: Propagate renaming "obstacle" -> "blockage".
    - Bug/Change: In Configuration, the value of the extensionCap was too big
        (1.5 lambda), reduce to 0.5 lambda. This is a problem, the extension
        should be coupled to the layer as it is not the same for each METAL.
    - Bug: When using TrackElement, always uses the virtual "->isFixed()" method
        instead of trying to access to "->base()->isFixed()" as the base may be
        NULL in case of blockage/fixed segment.
    - Change: Merge PowerRails & Blockage trans-hierarchical construction (into
        PowerRails). All blockages are groupeds under "blockagenet".
          Allows to remove TrackBlockage & BuildBlockages.
    - Change: In KiteEngine::annotateGloblalGraph(), when routing a full chip,
        ring power segments around the core must completly saturate the edges
        in their segment direction. This is to prevent the global router to
        use paths under the power/ground ring (may generate unsolvable configs).
    - Change: In KiteEngine::annotateGloblalGraph(), when routing a full chip,
        distinguish three areas: the core (65%), the corona (90%) and the pads
        (100%). Capacities on the edges are sets accordingly.
    - Change: In RoutingEvent, introduce an alternative algorithm for
        conflictSolve1, FindPath which try to deduce the breakpoints from a
        truly explorated path. Unfortunatly this gives worst results than the
        Cs1Candidates method. The why should be investigated as it's a critical
        point in the algorithm.
    - Change: In Manipulator::ripupPerpandicular(), when a caged perpandicular
        is encountered, instead of just "stopping", rip it up and change is
        axis hint (actually increase) it's axis hint so it stands a chance to
        go outside the track with an obstacle.
    - Change: In RoutingEvent/State::slackenTopology(), allow move up of local
        segments when they are tightly constrained *and* blocked (cageds).
        Partial modification of functions calls from booleans to flags.
    - Bug: In NegociateWindow::NegociateOverlapCost, check for fixed segments
        before trying to get DataNegociate. The lack of DataNegociate cause the
        TrackElement to be discarted. It's a failsafe behavior, but it leads to
        overlaps.
    - Bug: In ProtectRoutingPad, in Pad Cells only, *do not* protect RoutingPad
        to avoid the edge capacity over the pad to decrease to zero. This is
        due to unused RoutingPads being accounted as blockages.
2010-12-04 15:25:48 +00:00
Jean-Paul Chaput 3b11ca116c * ./kite:
- New: In BuilPowerRails & BuildBlockage, specific support for chip-level
        design. The Alliance "top chip" design hierarchical structure is
        hard-coded. Top level POWER/GROUND/CLOCK nets must always have the
        <vsse>, <vdde>, <ck>, <vssi>, <vddi>, <ckc>, <cki> names.
          Specific method to get trans-hierarchical root nets, espcially in
        case of global ones (POWER/GROUND). Clock is *not* global.
          Some correction in the manner obscured tracks are computeds.
    - New: ProtectRoutingPad module that perform a more clean work for protecting
        unused RoutingPad.
    - Bug: In BuildPowerRails, uses stable_sort<> instead of sort<>, which
        causes unexplained core dumps (seems to try to perform a comparison
        using the "end" pseudo element). Already occured in Knik, no explanation
        other than a STL bug.
    - Change: Slight changes in the weights to move up. Now needs a full empty
        track instead of a half one.
2010-11-16 14:00:03 +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 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 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 ac40b49d13 * ./kite:
- New: In KiteEngine, export GWL, Area & Sat measurements.
2010-05-13 09:46:32 +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 3f8e8459fc * ./kite:
- Bug: In RoutingEvent::Manipulator::forceToTrack(), wrong return code,
        was always return true, blocking the explorations of least good
        Track.
    - Bug: In RoutingEvent::_processNegociate(), must reset the "insert state"
        while looping on candidate. This bug was having the same effect as
        (and masking) the previous one!
    - Bug: In TrackSegment::moveUp(), reset the ripup count after the move
        up...
    - Change: At various DebugSession opening points, sets the debug level to
        200 to avoid extraneous debugging output.
    - New: KiteEngine::dumpMeasures() to create a data file for later uses
        by gnuplot. In interactive mode, this function is called in the
        "finalize layout" stage.
    - New: Adds measurments "algo", "fin" & "Segs".
2010-04-17 10:14:46 +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