Commit Graph

11 Commits

Author SHA1 Message Date
Jean-Paul Chaput 1d525fec35 * ./katabatic:
- Change: In LayerAssign, desaturate until the last two top layers are reacheds
        instead of only METAL2 & METAL3.
    - Change: In Configuration/GCellGrid/GCell, correct computation of the edges
        capacity (based on the numbers of avalaibles layers and not hard-wired to
        4).
2010-08-22 12:37:48 +00:00
Jean-Paul Chaput 38fb1dfdfb * ./katabatic:
- New: To pass the ibmXX, new parameter "katabatic.saturateRp" which allows
        to sets the threshold above which a GCell has too much RoutingPads in
        it and must be further desaturated. Must be 8 for FPGA, and 10 for ibm.
    - Bug: In LoadGrByNet(), when looking for the starting GCell, the computation
        of unconnecteds RoutingPads was incorrect, too great and letting the
        router believe that the routage was incomplete.
2010-08-18 20:24:30 +00:00
Jean-Paul Chaput 966de8279c * ./katabatic:
- Change: In KatabaticEngine, the containers used to store the "nets to
        route" is changed from a vector<> to a set<> sorted by the Nets names.
        Uses more memory but allows much faster Net deletion.
    - New: In _loadNetGlobalRouting(Net*), detect non-routed Nets. A Net is
        considered as unrouted if it's 10 first RoutingPads have no slave
        Segment. The Net is withdrawn from the set of Nets to route.
    - Bug: In GCellConfiguration::_GCell_1G_1L1(), correctly compute the
        access flag passed to _GCell_rp_Access().
    - Change: In AutoContact::restrictConstraintBox() adds "warnOnError"
        parameter to shut down warnings.
    - New: KatabaticEngine::_computeNetConstraints() now also returns a set<>
        of segments on which constraints are incompatibles. All the NetConstraints
        related functions are modificateds accordingly.
    - Change: In KatabaticEngine::_loadNetGlobalRouting(), create dogleg
        on overconstrained Segments computed by a call to _computeNetConstraints().
          Overconstraineds Segments can occurs when a global is directly
        connecting two punctual RoutingPads (see "ieee_division").
          As a side effect, and to avoid looping each Net is revalidated
        *before* making any dogleg. So Nets are revalidated one by one instead
        of alltogether.
    - Change: In AutoSegment::_toConstraintAxis(), do nothing if constraint
        interval is empty.
2010-05-11 11:04:23 +00:00
Jean-Paul Chaput 234175fa23 * ./katabatic:
- Bug: In KatabaticEnginge::_desaturate() (part of LayerAssign), reset
        the moved up Segment pointer between iterations. Suppress the warning
        about the GCell's DyKeyQueue beeing not revalidated on deletion.
    - Change: In LoadGrByNet, manage the 4G+3L1 configuration with the generic
        _GCell_xG_xL1_xL3(). Needed for "dct_lvl2".
2010-05-03 09:16:28 +00:00
Jean-Paul Chaput e7b1a5de6e * ./katabatic:
- Change: In Grid/BaseGrid, add an Abutment Box attribute (to facilitate
        segment truncation in Kite::TrackFixedSegment.
    - Change: In Grid/BaseGrid::Axis, when computing a row/column index using
        the graduation table, if the coordinate is exactly on the last
        graduation, return the last GCell instead of "out of bound".
    - Change: In GCell::hasFreeTrack(), AutoSegment::canMoveUp() &
        AutoSegment::canPivotUp() adds a "reserve" parameter to modify the
        amount of wirelength to remains free after the insertion.
2010-04-23 13:13:54 +00:00
Jean-Paul Chaput d98b31a856 * ./katabatic:
- Bug: In GCell, bad cast between <size_t> and <unsigned int>, showed only
        under 64 bits.
    - New: In KatabaticEngine::printMeasures(), adds a support for measurments,
        both time and memory size in Mb are stored for each tag.
    - New: Adds measurements "Gates", "GCells", "load" & "assign".
2010-04-17 10:14:22 +00:00
Jean-Paul Chaput 3069af8a63 * ./katabatic:
- New: In GCell & LayerAssign, adds a supplemental desaturation steps when
        a GCell containts too many (more than 7) RoutingPads in M1. This is
        especially useful for the eFPGA matrix with it's custom made cells.
2010-04-12 11:22:11 +00:00
Jean-Paul Chaput 3637f1c0cf The DyKeyQueue::pop() method was not returning anything. 2010-03-26 18:02:37 +00:00
Jean-Paul Chaput 15a61c5f96 * ./katabatic :
- Change: Uses a map instead of a sorted vector in the layer assignment
        steps. It was used to order GCells by density, and causing terrific
        slowdown on big examples. Namely the eFPGA 16x16 took 1h20, now it's
        down to  21 seconds...
          Devellop a new object <DyKeyQueue> to handle map with elements
        whose key *can* change. Next step is to normalize the key caching
        mechanism and to templatize.
    - Change: In LayerAssign, account the number of globals AutoSegments
        moved up.
2010-03-23 09:25:15 +00:00
The Coriolis Project 8aaa904724 * All tools:
- Change: Adaptation to cmake 2.8. No more "add_subdirectory()" when
       the sub directory doesn't hold a CMakeList.txt.
         For "add_definition()", set policy 00005 to NEW.
   - Change: Integrate IO extenal libraries.
   - Change: Small compatibilities between "size_t" and "unsigned int"
       under 64 bits.
   - Change: Temporarily disable Equinox/Solstice in unicorn.
2010-03-11 16:00:58 +00:00
Jean-Paul Chaput 360ff0424e * ./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:29 +00:00