Commit Graph

17 Commits

Author SHA1 Message Date
Jean-Paul Chaput f6ab7b87f0 Compliance with g++ 4.8.1, support for devtoolset-2
Details:
* New: in <bootstrap>: add support for devtoolset-2 in ccb. Run the
    cmake commands through 'scl', set shell environment variables
    BOOST_INCLUDEDIR & BOOST_LIBRARYDIR and disable the default
    system path search.
* Change: In various flex scanners add the %nounput to suppress
    compiler warnings.
* Change: Little cleanup for g++ 4.8.1 as it's more strict.
* Change: In various top CMakeLists.txt, suppress extraneous '/'
    after DESTDIR.
2014-03-15 10:47:37 +01:00
Jean-Paul Chaput 00975e1ad1 * ./katabatic:
- New: Whole replacement by Katabatic3.
2013-12-04 00:58:58 +00:00
Jean-Paul Chaput 6a7e664087 * All Tools:
- New: Added FreeBSD/Ubuntu patches from Otacilio De Araujo
       (<otaciliodearaujo@gmail.com>).

  * ./katabatic:
    - New: Makes use of cbug to display the (scary) debug messages.
2012-12-03 08:28:43 +00:00
Jean-Paul Chaput cbccf9e2a4 * ./katabatic:
- New: In LayerAssignement & GCell, perform layer assignment on whole net
        trunk, instead on a segment by segment basis.
    - New: In GCell, fragmentation analysis. When a layer change is requested,
        it allows to check if the additionnal perpandiculars created to
        maintain connexity will not over fragment the layer. This is particu-
        larly critical for M3->M5 which create M4 in perpandiculars, and M4
        may be subject to very dense configuration.
    - New: In AutoSegment & LoadGrByNet, adds a flags telling if the net's
        degree equal 2. Has not proven to be useful yet.
    - New: In AutoSegment, adds a flag telling if the segment is the perpan-
        dicular part of a dogleg. Has not proven useful yet.
2011-01-25 17:16:27 +00:00
Jean-Paul Chaput 8faade8bc6 * ./katabatic:
- New: In AutoSegment, adds a "_parent" attribute to keep track of the fragmentation
        processus. Currently used only for strap segments, points to the original
        segment in the appropriate direction (before the split).
    - New: In GCell & LayerAssign, new method of layer assignment. Move up
        the whole net trunk if only one of it's segment is inside an over-saturated
        GCell. AutoSegment are moved up only if there is at least 2 free tracks
        remaining on the upper level.
    - Change: In Session::_canonize(), uses the lowest segment Id as canonical.
        More reliable than geometricals criterions in the end. Assuming that the
        segments are being created in deterministic order, which *should* be the
        case consediring the way we are walking through the global routing.
    - Change: In AutoSegment, completly suppress the CompareCanonical(), replace
        it by the much simpler CompareId().
    - Change: In GCell::rpDesaturate(), stops desaturation when bottom density
        is under 0.5, otherwise we are causing a severe imbalance in M2/M4
        densities. All wires pushed up to M4...
    - Change: In ChipTools, for the Pad's RoutingPad, reslect the best component
        using the one in the lowest layer. To avoid problem when splitting
        AutoContact as we expect the base Contact to be on the lower layer.
    - Bug: In GCellConfiguration::_GCell_xG_xL1_xL3(), add H/V alignement constraints
        in fork case. This allow NE/SW contact to be splitted correctly later.
    - Bug: In AutoContact::split(), the connexity on the splitted contacts was
        not correctly restored, leading to canonization and parentage looping
        errors. This was concealed by the Kite Track::_check() bug (incomplete
        individual TrackSegment checking).
2010-12-30 18:41:19 +00:00
Jean-Paul Chaput 629452dcc6 * ./katabatic:
- Change: In GCell & GCellGrid, unificated way of computing all the GCell's
        densities.
    - Change: In GCell::stepDesaturate(), uses shearUp() instead of moveUp().
    - Change: In AutoSegment, new method ::shearUp() to avoid moveUp() saturating
        GCells as side-effect.
2010-12-12 21:43:25 +00:00
Jean-Paul Chaput cf9a7a7911 * ./katabatic:
- New: ChipTools, regroup all datas and utilities to manage a full-chip
        design.
    - Change: In LoadGrByNet/GCellConfiguration::_GCell_xG_1Pad(), uses straight
        perpandicular wires on top & right pads. The GCells under those connectors
        are fully saturated, wires must go out as straight as possible.
    - Change: In AutoHorizontal/AutoVertical, update the "terminal" flag after
        slackening. This is to avoid global that are no longer connected to
        terminals behave as such.
    - Change: In AutoSegment::canMoveUp() & canPivotUp(), prevent all local segments
        to go up. This is to avoid cluttering upper levels with small segments.
    - Change: In GCellConfiguration, for xG_xL3, detect straight vertical topologies
        and for them to be fixed (new flag FIXED_GLOBAL set by the topological
        builder instead of the constructor). This prevent the router to do
        stupid things...
          To sets the "Fixed" flag *after* the axis of global segments have been
        positionned correctly adds a "_toFixGlobals" static table lookup.
    - Change: In GCell::stepDesaturate(), if less than one free track remains in
        the upper layer, do not move up the segment. This allows from a minimum
        free room for expansion.
    - Change: In GCell::_getString(), display indexes and layer names in various
        saturation tables.
    - Change: In AutoSegment, allow move up of local Segment. ::moveUp() and
        ::canMoveUp() arguments go from booleans to flags, which are more
        explicits.
2010-12-04 15:25:18 +00:00
Jean-Paul Chaput 36a99a53ae * ./katabatic:
- Change: In loadGlobalRouting(), more exlicit message as to why a net is
        filtered out the routing set (POWER, GROUND, CLOCK or BLOCKAGE).
    - New: ChipTool, module with utilities specific to chip routing. Containing
        a function to pre-break wires around a block.
    - New: In loadGlobalRouting/GCellConfiguration, adds supports for RoutingPad
        connected on chip's pad.
    - New: In GCellGrid/GCell, can compute the density in three modes: average,
        max of H/V and max of layer. Currently implemented in getMaxHVDensity(),
        should be unificated with getDensity(). Used for display purposes.
    - Bug: In AutoContact, when splitting a contact, add a specific check for
        "one layer span".
    - Bug: In AutoSegment::canMoveUp(), do not move up fixed segments.
2010-11-16 13:59:38 +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 8bab63c864 * ./katabatic:
- Change: In LoadGrByNet, no longer display each net name in cmess2.
2010-06-08 12:03:02 +00:00
Jean-Paul Chaput 660c4fde49 * ./katabatic:
- New: In LoadGrByNet, display the design saturation (informative).
2010-05-13 09:46:14 +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 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