Commit Graph

531 Commits

Author SHA1 Message Date
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
Jean-Paul Chaput 2daae9a939 * ./unicorn:
- New: Adds a call to dumpMeasures().
2010-04-17 10:15:02 +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 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 9a90f87c65 * ./crlcore:
- New: The Measure extension (on any DBo) that allows to save measurement
        and print them later into a file. Mainly to supply gnuplot with datas.
          Obsoletes the "statsExtract.py" script from statistics, and much
        more reliable.
2010-04-17 10:13:48 +00:00
Jean-Paul Chaput b985e8c96f * ./hurricane:
- New: In Reference, adds a type to differentiate between "Labels" and
        "Position". Labels are strings that we wants to display, and position
        are specific points with a name attached to it.
    - New: In CellWidget, specific display for the two kind of references
        (Label & Display).
2010-04-17 10:13:17 +00:00
Jean-Paul Chaput 797a53daec 2010-04-12 11:27:04 +00:00
Jean-Paul Chaput 974b29b8a7 * ./kite:
- Change: In TrackSegment, _postDogLeg() & _postModify(), add segments to
        "Ring" if they are directly connected to a RoutingPad. To maintain the
        "border effect" after a topological slackening.
    - Change: In GraphicKiteEngine, in the global routing relateds menus, suppress
        the mention of "solution" as it might be unclear for an average user.
        (just "Save Global Routing" or "Load Global Routing").
    - Change: In RoutingEvent, conflictSolve1() tries to move up "other" blocking
        segment before trying to break "self".
    - Bug: In TrackSegment::reschedule(), remove from Track segments that are
        now in a greater order than the current one. This bug was shown in the
        TrackSegment::_postModify() method after a desalignate.
          It was causing overlaps and/or routing completion false reports.
2010-04-12 11:24:57 +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 fe7acbc389 * ./crlcore:
- Change: In ToolEngine, adds a static method "destroyAll()" that must be
        called *before* the Hurricane database destruction. This is to avoid
        a mis-oredering in destruction.
          ToolEngines are stored in a property, property are part of the DBo
        base object so are destroyed *after* the Cell derived object has been.
        Thus ToolEngine are deleted *after* the Cell components and if they
        still refers to it, we are doomed.
     - Change: In display.xml, color support for displaying references.
2010-04-12 11:21:41 +00:00
Damien Dupuis bc295bda31 Adding new technology support = freePDK45 (this will be used to generate openAccess files since it is the only design kit we've got that is compliant with Cadence 6.x) 2010-04-06 14:32:40 +00:00
Damien Dupuis 4d1e23eaea Added DTRException translator to python world 2010-04-06 11:45:03 +00:00
Damien Dupuis 306c391a11 Do not use static libs for boost.
That was mentionned in Boost.Python documentation but it prevents linux 64 bits compilation and everything is ok without it !
2010-04-06 11:06:06 +00:00
Damien Dupuis 6e85d89d19 Only try to find PythonLibs if Boost.Python was found 2010-04-06 07:42:46 +00:00
Damien Dupuis 40ab09bea6 When not finding Boost.Python libraries : do not stop compilation (FATAL_ERROR) but do not compile PyTechno.cpp and do not try to create python module. 2010-04-06 07:40:50 +00:00
Damien Dupuis 1b165147cd I needed to set a version for boost, 1.38 does not seem to be a good idea (since version 1.33 is installed at asim) 2010-04-05 16:49:07 +00:00
Damien Dupuis 68f575d028 Added Python interface and python module creation (using Boost.Python libraries)
Name, Rule, Arule and Techno objects has been ported, so it is possible to read a dtr xml file from disk to get a techno and then rules' values.

    DTRException object still need to be ported.
2010-04-05 16:27:18 +00:00
Jean-Paul Chaput 84f582f2ef * ./goodies:
- Change: In buildCoriolis.py, now manage correctly any combination of
        projects/tools/standalone tools. Standalones tools are always processeds
        last.
2010-04-04 10:19:38 +00:00
Damien Dupuis 8fc0656949 Adding new standalone DTR parser/driver.
Since there is a new project that need to parse DTR xml file we've decided to set a standalone parser.

  This parser will be extended with a python API (I'm gonna have a look at boost ^^)
2010-04-03 15:52:29 +00:00
Jean-Paul Chaput d1d2a2ea01 * ./hurricane/src/hurricane:
- New: In Query, add support for Markers, although they are Go's, are stored
        in a separate QuadTree directly at Cell level. In a very similar fashion
        to the ExtensionGos. Sometimes should look if thoses mecanism could be
        unified.

  * ./hurricane/src/viewer:
    - New: In CellWidget, add support for displaying References. Uses the Marker
        Query. For now labels are displayed centered on the reference point,
        making that point hard to see. That behavior may be changed later if
        needs to be.
    - Bug: In InspectorWidget, the History::push() wasn't updating the ComboBox
        index. The line was strangely commented out (?).
2010-04-03 13:56:07 +00:00
Jean-Paul Chaput 3a25248804 * ./goodies:
- Bug: In buildCoriolis.py, when multiple projects where given on the command
        line, only the latest was processed. Now all projects are processeds.
        (in the order given on the command line so watch out!)
2010-04-03 14:06:08 +00:00
Ramy Iskander 7e0d158a16 Replacing "unsigned int" by "size_t" for demangle so it can be compiled on mac osx 2010-03-29 09:09:22 +00:00
Jean-Paul Chaput 7d805f94e8 * ./crlcore:
- Change: In Cyclop, now uses the GtkStyle when not under OSX and Qt is
        newer or equal to Qt 4.5.0.
2010-03-26 18:05:17 +00:00
Jean-Paul Chaput a515d42757 * ./kite:
- Cleanup: In GCell, remove the DyKeyQueue support as it's been moved
        to Katabatic level.
    - Change: In NegociateWidow, increase the event stop thresold to 4M events
        to be able to process the eFPGA matrix 16x16 (150K gates).
2010-03-26 18:03:01 +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 53ba314063 * ./hurricane/src/viewer:
- Change: In Cyclop, now uses the GtkStyle when not under OSX and Qt is
        newer or equal to Qt 4.5.0.
    - Change: In the various Qt Model Table, do the rowHeigh bug correction.
    - Bug: In InspectorWidget/NetlistModel, when browsing through the records
        tree, the records were generated twice at each slot change. This
        was due to the History ComboBox sending a index change signal then
        the InspectorWidget setting the slot *again*.
          When trying to explore a Slot, but this Slot is empty (like an
        empty vector, for instance) do not gut the RecordModel. Because
        as we find out that the new Slot is empty we go back and restore
        the previous contents. Potentially slow if we comes from a Slot
        with lots of records. Now we dump the contents only if there is
        something to explore.

  * ./hurricane/src/hurricane:
    - Bug: In Record, the slots where stored in a list container, which was
        making indexed accesses very very slow. This slowdown was also
        affecting the destructor of Record (this is the explanation why
        the RecordWidget was slow, even when *leaving* the net IntrusiveSet).
          Now implemented in term of STL vector.
    - Bug: In Slot/Common, still some adjustements to make the Inspection
        mechanism work with all types. Correct the "IntrusiveMap<>" not
        working with the NetMap. Related to templates not using the same
        constness.
    - Change: In Entity/DBo/Cell, Some more adjustements on Slot/Records.
2010-03-26 18:01:41 +00:00
Jean-Paul Chaput 3f10d44549 * ./goodies:
- Bug: In buildCoriolis.py, io tool was both declared as belonging to io
        and hurricane project. Removed from Hurricane.
    - Bug: In buildCoriolis.py, exctract correctly the return status of a
        command to return it to the parent process. See Python documentation
        about os.wait() & os.waitpid().
2010-03-26 18:09:30 +00:00
Jean-Paul Chaput d55da89955 * ./hurricane/src/viewer:
- Bug: In NetlistWidget/NetlistModel, suppress the "forceRowHeight()"
        method which was terribly slowing down the table display. Instead
        uses the "setDefaultSectionSize()" of the vertical header to setup
        the row height (much more compact display).
    - Bug: In NetlistModel, strangely, although we have a "data()" and a 
        "headerData()" method, the "data()" is also called for the headers
        potentially erasing any previous setting done with "headerData()".
          This was occuring for the fonts settings. Don't known if it is
        a bug or a feature of Qt...
    - Thoses changes has to be ported to the others widgets some times...
2010-03-23 12:54:50 +00:00
Jean-Paul Chaput b50b492b69 Correct bugs in the svn-checkout command. 2010-03-23 09:36:38 +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
Damien Dupuis f56b102584 bug : os.isfile is not correct : os.path.isfile is correct ^^ 2010-03-22 16:38:25 +00:00
Jean-Paul Chaput c42c79a190 * ./goodies :
- Change: In builCoriolis.py, expand the '~' in the root path if needed.
     - Bug: Do not stop if the "--no-cache" option is given but the
         CMakeCache doesn't exists.
2010-03-22 14:13:40 +00:00
Jean-Paul Chaput 860485d7b8 No longer sets the <PROJECT>_USER_TOP if it's not set in the environment. 2010-03-19 16:02:35 +00:00
Jean-Paul Chaput 2d0f027aee Small message between each tool command output. 2010-03-19 14:47:32 +00:00
Jean-Paul Chaput b5c3c0a00e * 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:39 +00:00
Jean-Paul Chaput 68d6726e15 * 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:37 +00:00
Jean-Paul Chaput 6dcbc34a70 * 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:35 +00:00
Jean-Paul Chaput 42391218bc * 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:34 +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 7e9b98a16b * 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:29 +00:00
Jean-Paul Chaput 3c8b1cb005 * 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:27 +00:00