Commit Graph

114 Commits

Author SHA1 Message Date
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
The Coriolis Project fd9500d77e Correct pathes detection. 2010-04-28 21:54:58 +00:00
Jean-Paul Chaput 388b8b3ce0 * 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.

  * ./katabatic:
    - Change: In Configuration/KatabaticEngine, introduce a static Configuration
        object (singleton) to handle the default configuration. Configuration are
        now created only through cloning operations. In KatabaticEngine, the
        _configuration becomes a pointer (previoulsy an value).
          Confifuration becames a singleton and a decorator.
          Also adds a print method to nicely display configurations values on
        the terminal.
2010-04-28 15:43:30 +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
Jean-Paul Chaput 59266afd74 * All Tools:
- Change: <PROJECT>_SEARCH_PATH are put back into the *first* tool of
         a project.
     - Bug: In HURRICANE_CHECK_MACRO(), the quiet flag was not correctly
         implemented. User ARGV instead of argv (case sensitivity!).
2010-03-19 14:22:31 +00:00
Jean-Paul Chaput ff68159214 * All Tools:
- Change: New structure for the installation & CMake system.
         * Tools are now grouped in "projects". There are three projects:
           1. - IO: Standalones parsers/drivers (IO_USER_TOP, IO_TOP).
           2. - Coriolis: Base & digital tools (CORIOLIS_USER_TOP, CORIOLIS_TOP).
           3. - Chams: Analogic tools (CHAMS_USER_TOP, CHAMS_TOP).
           Each *project* has a two "TOP" environement variables, for
         example: IO_TOP and IO_USER_TOP. Thoses variables are the only
         ones useds to locate the tool (CMake modules, headers & libraries).
           The local path always takes precedence over the global one.
           The localisation process occurs in each tool top CMakeLists.txt
         where the macro SETUP_PROJECT_PATH is to be defined. There is no
         way to put it in a shared includes file as it's the macro precisely
         used to locates the includes... You have to call the macro once for
         each project you wants to uses:
             SETUP_PROJECT_PATHS(IO)
             SETUP_PROJECT_PATHS(CORIOLIS)
         * In FindTOOL.cmake, supress the <TOOL>_DIR_SEARCH and uses the
         <PROJECT>_DIR_SEARCH instead (example: CORIOLIS_DIR_SEARCH).
         * buildCoriolis.py modificated according to the new "TOP" scheme.
2010-03-18 15:32:36 +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