Commit Graph

1021 Commits

Author SHA1 Message Date
Jean-Paul Chaput 6fa1f4344f Compliance with knik modifications. 2010-05-14 09:26:39 +00:00
Jean-Paul Chaput f836905c6f * ./unicorn:
- Change: Rename COpenCellDialog in OpenCellDialog.
    - Change: In CgtMain, now the save parameter must be supplied with a design
        name. The same should be different from the input one to avoid overwrites.
    - New: SaveCellDialog to write back the Cell. Currently only writes the
        layout view.
2010-05-14 07:37:33 +00:00
Jean-Paul Chaput babd0f5419 * ./crlcore:
- Change: In Cyclop, rename COpenCellDialog in OpenCellDialog.
2010-05-14 07:37:14 +00:00
Jean-Paul Chaput 74e05d19ff * ./hurricane:
- Cleanup: In Slot.h, comment out print for debug.
    - New: In CellViewer, adds a renameCell() method to "rename" the currently
        loaded Cell "in place". Utility function for SaveCellDialog (see below).
2010-05-14 07:36:42 +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 660c4fde49 * ./katabatic:
- New: In LoadGrByNet, display the design saturation (informative).
2010-05-13 09:46:14 +00:00
Jean-Paul Chaput 10de86a8dc * ./knik:
- New: KnikEngine::computeSymbolicWireLength(), which adds to the measurments
        1. - The sum of global wire length (in lambdas).
        2. - The abutment box area of the design (in square lambdas).
        3. - The saturation ratio of the design: wire length divided by area and
               normalized by a "fully routed GCell".
2010-05-13 09:45:53 +00:00
Jean-Paul Chaput cd7a294ca9 * ./crlcore:
- Cleanup: No longer import the std namespace in headers.
    - Bug: In Measures.h, incoherent prototyping of getMeasure() template.
    - Change: In Environment, SearchPath & the XML format, slight change to
        allow overwriting of Alliance library pathes. Instead of having an
        attribute on the <system> node that applies to all libraries, we
        have a "mode" attribute in each <library> node.
          "mode" can takes three values:
            1. - "append" : the library path is added in tail of the list.
            2. - "prepend" : the library path is added in head of the list.
            3. - "replace" : if the library already exists in the pathes,
                    this ones replaces it, whitout modifiying the order.
                    If it doesn't exists, it simply appended.
          The "replace" mode is the one to be used if a users wants to shadow
        system libraries by his own versions (sets in ~/.environment.alliance.xml).
2010-05-13 09:45:20 +00:00
Jean-Paul Chaput 57f3e4e107 * ./unicorn:
- Change: Sets the default "expand-step" parameter to 0.99, as in Kite.
2010-05-11 11:05:07 +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 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 e32f8c72de * ./knik:
- Change: In KnikEngine::initGlobalRouting(), increase the maximal degree
        of net to be routed (1000 -> 13000). This to allow the clock to be
        routed of the "vld" circuit.
2010-05-11 11:03:50 +00:00
Jean-Paul Chaput d89379bc64 * ./hurricane:
- Bug: In Net.h, force expansion of SlotTemplate<Net*> with the line:
        const SlotTemplate<Net*> dummyNetSlot ( string("dummyNetSlot"), NULL );
          I've no satisfactory explanation, but in the cyclop Inspector the
        Cell's NetMap is correctly created and in the cgt Inspector, Nets
        entries of the NetMap appears as "unsupported", meaning that the
        SlotTemplate<> has not been generated for Net. This correct the
        problem.
2010-05-11 11:02:42 +00:00
Jean-Paul Chaput 37b4e5b423 * ./kite:
- Change: In TrackCost, the ripup cost is now computed from a mix between
        the number of ripup *and* the data state. Restore a correct balance
        of the ripping up between segments.
    - New: In RoutingEvent::State::conflictSolve1(), when a very long Segment
        enters in conflictSolve1(), still prefers to move it up in one piece,
        but if it's not possible, it is unlikely that it will overlap with
        only one or two other Segment. In that cases, blindy break it up in
        the middle.
    - New: In RoutingEvent::Manipulator, another overload of makeDogLeg to
        allow break up at one precise point.
    - Change/Bug: In RoutingEvent::Manipulator::Relax(), reset the state of
        the non-overlapping Segment fragments instead of inheriting blindly
        of the state of the breaked up one. Gives some supplemental slack
        that allows to converge.
    - Note: Now the strategy is to disable the uses of GCellRoutingSet by
        setting the expand step to 0.99. This induces only a slight slow
        dow and memory increase and passes all the tests...
    - Mark: This revision passes all the benches except for idct, vld &
        ieee_division.
2010-05-03 09:16:50 +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 6a535b03f6 Coorect pathes detection. 2010-04-28 21:57:14 +00:00
The Coriolis Project b1aae7ae77 Correct pathes detection. 2010-04-28 21:55:06 +00:00
The Coriolis Project 4019e36ddc Correct pathes detection. 2010-04-28 21:55:03 +00:00
The Coriolis Project 8d764a8497 Correct pathes detection. 2010-04-28 21:55:01 +00:00
The Coriolis Project 29dd5a96fa Correct pathes detection. 2010-04-28 21:55:00 +00:00
The Coriolis Project fd9500d77e Correct pathes detection. 2010-04-28 21:54:58 +00:00
The Coriolis Project aa72861142 Correct pathes detection. 2010-04-28 21:54:56 +00:00
The Coriolis Project 1cfe0a54c9 Correct pathes detection. 2010-04-28 21:54:54 +00:00
The Coriolis Project 4c1e9d0c03 Correct pathes detection. 2010-04-28 21:54:51 +00:00
The Coriolis Project 9220380596 Correct pathes detection. 2010-04-28 21:54:49 +00:00
The Coriolis Project 6e2abf7aa2 Correct project path settings. 2010-04-28 20:36:23 +00:00
Jean-Paul Chaput 936998cff2 * 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.

  * ./unicorn:
    - New: "--show-conf" options to dump the current configuration.
2010-04-28 15:46:31 +00:00
Jean-Paul Chaput 3a13c09ecd * 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.
2010-04-28 15:46:01 +00:00
Jean-Paul Chaput 114df44cda * 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.
2010-04-28 15:45:37 +00:00
Jean-Paul Chaput ef1a6f6cd2 Forgot to add souce files... 2010-04-28 15:45:06 +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 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 9ca0332d1e * 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.

  * ./knik:
    - Bug: In MatrixVertex, still the same index bug problem (incomplete
        correction).
2010-04-28 15:42:55 +00:00
Jean-Paul Chaput 245185de14 * 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.

  * ./crlcore:
    - New: In Utilities, The Dots class which allow nice pretty printing on
        a terminal (like lines of books summaries).
2010-04-28 15:41:35 +00:00
Jean-Paul Chaput 92422cb683 * ./hurricane:
- Bug: In CellWidget, correct the slightly off position of Labels references.
    - New: In ControllerWidget, new TabSettings tab to hold the configuration
        settings of the various Coriolis tools. The TabSettings is a tab itself.
2010-04-28 15:40:51 +00:00
Jean-Paul Chaput 17ac99fa46 * ./goodies:
- New: In buildCoriolis.py, adds a "--rm-build" option which removes the
        tool's build directory before building it. A very crude way to ensure
        that nothing obsolete form a previous build will gets in the way...
2010-04-28 15:54:30 +00:00
The Coriolis Project ffc3fb7eee bug correction : coriolis.soc.lip6.fr 2010-04-27 14:19:10 +00:00
Damien Dupuis eed0d1b35a - comment correction in PyPad.cpp
- adding getBoundingBox method in PyReference.cpp
2010-04-27 12:25:56 +00:00
Jean-Paul Chaput 22f2a47f99 * ./hurricane:
- Bug: In CellWidget, correct the slightly off position of Labels references.
2010-04-27 10:54:26 +00:00
Jean-Manuel Caba 25e47d7ea0 add copyright note 2010-04-26 14:11:09 +00:00
Jean-Manuel Caba 8d812c035a Use work from a previous cmake_module file Christophe Alexandre did, as a starting point.
Add missing liboaCM.so shared by the core libraries in OA version of si2 and Cadence,
also add a copyright note.
2010-04-26 13:57:00 +00:00
Jean-Paul Chaput ddf2fb19bc * ./hurricane:
- Bug: In PaletteWidget, do not derive from QScrollArea. Instead uses it
        as a child widget. This solves the refreshing problem of the Palette.
        As a rule now: never derives from anything other than QWidget.
    - New: GotoWidget, not having this feature finally unverved me enough for
        beeing implemented. You can specify an (x,y) on which the view will
        be centered and an aperture which gives the size of the view smallest
        side. It's a way of specifying the zoom level (as the zoom is not
        meaningful for users). An aperture of "zero" disable that feature,
        that is, zoom remains unchanged. The coordinates are integer which
        are implicitly expressed in the current mode used by the viewer
        (Symbolic, Grid, or Physical in micro-meters).
    - Change: Big rewrite of how the Symbolic/Grid/Physical modes are sets
        to/from the CellWidget. Impacted widgets are CellWidget &
        DisplayFilterWidget.
          Main changes are that there is no more "individual" setter/getter for
        modes (setSymbolic(), setGrid(), setPhysical(DbU::UnitPower)) but one
        with two arguments:
              setDbuMode(int mode,DbU::UnitPower)
          Signals & slots of the widgets also evolves into:
              dbuModeChanged(int mode,DbU::UnitPower)
              changeDbuMode (int mode,DbU::UnitPower)
2010-04-26 13:22:23 +00:00
Jean-Paul Chaput 4445209927 * ./unicorn:
- New: In CgtMain, add supports for iteration limit.
2010-04-23 13:15:51 +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 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 92e55924c4 * ./knik:
- Bug: In MatrixVertex::getLineIndex() and getColumnIndex(), in regular
        mode, when the Y/X coordinate is exactly on the upper right angle,
        return the inferior index (instead of superior which is out of bounds).
    - Change: In MatrixVertex, RoutingGrid & KnikEngine, replace the _lowerLeftX &
        _lowerLeftY by a complete copy of the Cell's abutment box. Makes
        easier for getLineIndex() to find out of bound coordinates.
    - Change: In KnikEngine & LoadSolution add a time/memory measurement,
        for Kite statistics.
2010-04-23 13:13:22 +00:00
Jean-Paul Chaput 448a345a26 * ./crlcore:
- New: In AllianceFramework, getInstancesCount() to count the number of
        instances in a Cell. The count can be recursive or not or ignore or
        not feed cells. This could be viewed as a very simple query, and has
        to be implemented here because we only new Feed Cell from the CATAL
        of the Alliance Framework.
2010-04-23 13:12:51 +00:00
Jean-Paul Chaput ca8de0d706 Remove methods from project's repositories. 2010-04-20 12:11:26 +00:00
Jean-Paul Chaput 6901b38221 Adds a --svn-method argument (for svn checkout). 2010-04-20 12:05:52 +00:00
Jean-Paul Chaput a52ca4fa3d Flushing stdout & stderr before calling Popen to avoid
messages display desinchronisation.
2010-04-20 11:11:08 +00:00