Commit Graph

27 Commits

Author SHA1 Message Date
Jean-Paul Chaput 6d7dad54d1 In CellView, correct signal/slot toggle parameter. 2014-08-03 17:20:44 +02:00
Jean-Paul Chaput 520b9ae382 Restore support for both Qt4 & Qt5.
* Change: In bootstrap, in ccb & builder, build by default with Qt4 and
    provide a --qt5 command line switch to enable Qt5.
      FindBootstrap.cmake now provides a qtX_wrap_cpp() macros to be
    independant of the version of Qt being used.
      Add all thoses options to the graphical interface to the builder.
* Change: In all the tools using Qt, switch to the qtX_*() macros from
    FindBootstrap.cmake.
* Change: In Hurricane, in CellViewer, revert to the Qt4 way of connecting
    signal/slots for backward compatibility.
2014-07-22 11:06:26 +02:00
Jean-Paul Chaput 9e3f9e4082 Simplificate and generalize the way to pass arguments to Python scrips.
* New: In Isobar::Script, scripts arguments are now passed through a
    "keywords" argument (Python: **kw), that is a dictionnary.
    To add *any* Python object to that dictionnary, uses the new
    method Script::addKwArgument(const char* key, PyObject*).
      The "cell" and "editor" variables are now passed that way.
    This means that, for the editor, the old way of inserting
    a symbol in the module global dictionary is no longer used
    and the Python scripts must be modificateds.
* New: In Hurricane::PyCellViewer, create the Python link function
    for translation from Hurricane to Python.
* New: In Unicorn, modifications for the new argument passing for
    the Python scripts.
2014-07-05 15:49:32 +02:00
Jean-Paul Chaput 20d25b2053 Add NetRoutingState (Property) on Nets to tell Kite what to do.
* New: In Katabatic, add the ability to decorate some (i.e. few) nets
    with a state that indicate to Katabatic & Kite what to do with it.
    The possible states are:
    1. Fixed : all the wire are in fixed positions. The router cannot
       move them and account them as obstacles.
    2. ManualGlobalRoute : a user-defined topology is supplied. The
       wires still have to be detailed route in "Detailed Pre-Route"
       but will be skipped for the global routing and fixed for the
       general Detailed route.
    3. AutomaticGlobalRoute : ordinary nets, to be global routed then
       detail routed.
    4. Excluded : do not try to global or detail route thoses nets.
    5. MixedPreRoute : mask combining Fixed and ManualGlobalRoute.
      Not all nets have this property, only those that needs a special
    processing.
      To ease the access to the state, it is nested inside a
    PrivateProperty in the net (NetRoutingProperty), with an extension
    access class (NetRoutingExtension).
* New: In Kite, take account of NetRoutingState. Pointers to the
    net's states are strored inside an internal map for faster access.
    The property is *not* deleted when Kite is destroyed. The property
    will remains until the Net itself is destroyed.
      As a consequence, the lists that where passed to high level
    function are removed as the information can now be accessed directly
    through the net NetRoutingProperty.
* New: In Unicorn, in CgtMain, comply with the update interface.
* New: In documentation, update the User's Guide to explain the Pre-routed
    step of Kite.
2014-07-02 14:36:58 +02:00
Jean-Paul Chaput 01b97626a8 Support for Python plugins in CellViewer/Unicorn. ClockTree plugin.
* New: In Hurricane, in CellViewer, create a simpler API to graft menu
    and actions into the menubar. Mainly addToMenu() which take care of
    the QAction creation but also locate the relevant QMenu, base on
    the Qt object name. Regroup all the widget & action creation inside
    the body of the constructor, this way almost all actions can be
    removed from the attributes of the CellViewer.
      addToMenu() is supplied in three flavors:
        1. For C++ callbacks in GraphicToolEngines (with a binded
           member function method).
        2. For running Python scripts to be used by the plugin system.
        3. To insert separator in menus (to give a more homogeneous
           look).
    Remove the last remnants of Stratus scripts (unificated with basic
    Python scripts).
* New: In Hurricane, in PyCellViewer, export the interface to graft
    Python scripts into the CellViewer menu tree.
* Change: In Etesian, in GraphicEtesianEngine, use the new API to
    graft menus & callbacks into the CellViewer.
* Change: In Mauka, in GraphicMaukaEngine, use the new API to
    graft menus & callbacks into the CellViewer.
* Change: In Kite, in GraphicKiteEngine, use the new API to
    graft menus & callbacks into the CellViewer.
* New: In Cumulus, install Python scripts as plugins for Unicorn under
    <PYTHON_SITE_PACKAGES>/cumulus/plugins/.
* New: In Unicorn, in UnicornGui, make uses of the new API for creating
    menus in the CellViewer. Creates the stem menu for the P&R tools.
      Add a Python initialization mechanism to read the plugins
    installeds into <PYTHON_SITE_PACKAGES>/cumulus/plugins/.
2014-06-25 19:50:34 +02:00
Jean-Paul Chaput c8bcfdf174 Improved UpdateSession & exception catching. Start of RoutingGauge implem.
Miscellaneous:
* Change: In <crlcore>, in display.conf use the same display threshold
    for both METAL2 & METAL3.
      In alliance.conf, the side of VIAs in the gauge is 2l (not 3l).
      In kite.conf, separate edge densities for H/V.
* Change: In <Cell>, in flattenNets() use flag as argument, not a
    boolean. Do not create rings for clock or supply nets.
* Change: In <DeepNet>, in _createRoutingPads() do not create rings
    for clock or supply net (duplicated policy as in Cell::flattenNets()).
* Bug: In <ControllerWidget>, at last find the bad signal disconnect
    that was causing ungraceful messages.
* Change: In <knik>, in Edge display occupancy/capacity in the string
    name. Improved display progress and debugging capabilities.

Improved exception catch & breakpoint managment:
* Bug: In <PaletteWidget>, in updateExtensions() replace the calls to
    deleteLayer() by delete. This cause the widget to be immediatly
    erased instead of waiting for the event queue to be completly
    processed. This was causing the widget to be left in a incoherent
    state when stoping at a breakpoint.
* Bug: In <BreakpointWidget>, in execNoModal(), flush the main event
    loop (QApplication::flush()) *before* lauching the *local* event
    loop. This is to ensure all widgets are in their final state when
    waiting (especially <PaletteWidget>).
* Change: In <ExceptionWidget>, new method catchAllWrapper() to
    execute any std::function< void() > function/method with a "try"/
    "catch" wraparound and lauch the widget in case something is catch.
* New: In <hurricane>, support for a oberver pattern, backported from
    <katabatic> with an Obervable capable of being linked to any
    number of Obervers.
* New: In <Cell>, made it observable to detect Cell change, currently
    emit two kind of signals:
    - Cell::CellAboutToChange : *before* any change.
    - Cell::CellChanged : *after* the change has been completed.
* New: In <UpdateSession>, in Go::invalidate() add the Cell owning the
    Go to the UPDATOR_STACK (of course the cell is added only once).
    In addition, when the Cell is added, send a notification of
    Cell::CellAboutToChange to all it's observers. The slave instances
    are also invalidated.
      Conversely in UpdateSession::_preDestroy() for each invalidated
    Cell send a Cell::CellChanged notification to all observer.
      The UPDATOR_STACK has been slightly amended to accept Cell which
    are not Gos. Prior to this, the Cell where completly excluded from
    the UpdateSession mechanism, so it's instances where never actualised
    of anything referring to the Cell for that matter.
      Note: we use two different mechanisms to transmit a Cell change,
    observers and the slave instance map. I think at some point it
    should be unificated.
* Change: In <CellViewer>, make it a Cell observer to redraw when the
    cell is modificated (also update the palette).
      Uses the catchAllWrapper() to protect all critical actions.
* Change: In <GraphicTool>, no longer need of cellPreModificated and
    cellPostModificated signals. Now done through the Cell obersvers.
* Change: In <mauka>, <etesian> & <kite> now uses the catchAllWrapper
    method for protection (need to split methods in two, to be able
    to pass it as argument). No longer emit cellPreModificated and
    cellPostModificated.

Support for RoutingGauge in P&R:
* Bug: In <placeandroute.py>, the connection from the internal power
    ring to the connectors was not done correctly. Wrong contact layers
    leading to a gap.
* Change: In <BuildPowerRails>, detection of the corona signals based
    on how the "pck_px" pad is connected. No longer based on name
    matching.
* Change: In <placeandroute.py>, support for 2 routing metal only
    (3 metal in the technology).
* Change: In <katabatic> & <kite> support for a "top layer" limitation
    on the routing gauge, this allows to use only two routing metals
    (METAL2 & METAL3). Work in progress.
2014-04-20 19:30:07 +02:00
Jean-Paul Chaput 1334caad6d * All Tools:
- New: Added FreeBSD/Ubuntu patches from Otacilio De Araujo
       (<otaciliodearaujo@gmail.com>).

  * ./hurricane:
    - Change: In CellViewer, one unificated method to lauch Python
        scripts whatever they are Stratus or not.
    - Change: In ScriptWidget, the function lauched is now
        "ScriptMain()".
    - New: In PyCellViewer, add the refresh method.
2012-12-03 08:26:28 +00:00
Jean-Paul Chaput 47f3771f1d * All Tools:
- A complete sweep of cleanup to suppress allmost all compiler warnings.

  * ./hurricane/doc/hurricane:
    - New: Documentation cleanup and update, particularly on the new Layer
        derived classes.

  * ./hurricane/src/hurricane,
    ./hurricane/src/isobar,
    ./hurricane/src/viewer:
    - New: Creation of new methods, more explicit on DbU. Based on a to/from
        naming scheme.
    - New: Python support extented to include all objects needed to configure
        through python scripts.
    - Change: Finally understood what's causing the _XOPEN_SOURCE redefinition.
        Basically the Python.h must be included first before any other
        include. The type-puned problem will remains still (that is a Python
        problem, not our own).
    - Change: In DisplayStyle, uses shared_ptr for DrawingStyle instead of
        custom made reference count.
2012-11-16 12:48:38 +00:00
Jean-Paul Chaput daab8a8b8f * ./hurricane/src/viewer:
- In CellViewer, adds a shortcut for launching Stratus scipts: SHIFT+P,S
        and one for pure Python scripts: SHIFT+P,P.
    - In ExceptionWidget, put the trace inside a QScrollArea so all the call
        stack can be viewed regardless of the window's size. It seems that
        QFontMetrics has problems to compute the right text size when using
        a Qt::RichText enabled widget. Adds some "manual" corrections, hope
        they will be sufficiently portables.
2010-12-15 15:10:58 +00:00
Jean-Paul Chaput 828b1d6b6f * ./hurricane/src/hurricane:
- New: Torus object. To allow a simpler management of a chip's corona,
         the toric area between the pads and the core.
    - Change: In HyperNet/LeafPlugOccurrences, change the instance stop criterions
        from "isLeaf()", which means "contains no instances" to "isTerminal()"
        which can be programmatically changed. This has to be done for the Pads
        which are non-leaf due to "padreal" but still must be considered for their
        connectors.
          This modification is coupled with one in the Ap parser.
    - Change: In Backtrace, enable support for Apple backtrace. This is a blind
        test as I can't check by myself.

  * ./hurricane/src/viewer:
    - Change: In CellWidget/SelectionModel/SelectionWidget, rewrite the Gos selec-
        tion mechanism. Now ExtensionGo could be selecteds as they ought to be.
        Also adopt a more standard way of how objetcs are selecteds.
          Prefer "dataChanged()" signal over "reset()" or "layoutChanged()" as
        it keeps the selection instead of resetting it.
          Unselecteds entry in the window (toggled with 't') are now shown in
        red for better readability.
2010-12-04 15:22:54 +00:00
Jean-Paul Chaput c2f3a393f1 * ./hurricane/src/viewer:
- New: Specific support for Stratus scripts. In a perfect world, this
        should be added in the stratus tool, but it would be much more
        complicated.
2010-08-26 22:01:12 +00:00
Jean-Paul Chaput 6e91d50324 * ./hurricane/src/viewer:
- Change: In CellViewer, attempt to put the menus entries in a more
        classic (intuitive?) order.
2010-08-26 15:01:39 +00:00
Jean-Paul Chaput 8a0852c730 * ./hurricane/src/viewer:
- New: In CellViewer, new menu entries for Import/Export cell, build on the
        model of open/save.
2010-08-22 12:35:29 +00:00
Jean-Paul Chaput 90527e4533 Forgotten TextTranslator sources. 2010-07-06 10:10:50 +00:00
Jean-Paul Chaput 72418edb16 * ./hurricane/src/viewer:
- Change: The tab settings of the controller now refers to the XML
        configuration widget.
2010-06-18 14:01:08 +00:00
Jean-Paul Chaput bca3815efe Correct argument of dbuModeChanged and changeDbuMode consistently (to unigned int) 2010-05-17 16: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 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 905c7b4960 * ./hurricane/src/hurricane:
- SVN MOVE: "hviewer" directory renamed to "viewer".
2010-03-09 15:10:18 +00:00
Christophe Alexandre 4e645a28aa introducing hinspector widget 2008-04-25 14:15:42 +00:00
Jean-Paul Chaput 8d46981a42 * viewer :
- No more flickering. Was due to a one pixel moving of a two
       pixel periodic pattern, which obviously result in a complete
       pattern inversion. Now shift by two pixels, hoping there is
       no "3 pixels periodic" patterns...
   - As a side effect, it introduce a "multiplicator effect" on
       mouse movement, but it could be useful (avoid big displacement
       of the mouse).
2008-04-07 10:04:13 +00:00
The Coriolis Project 9d48b67296 ged rid of H namespace 2008-04-03 15:21:18 +00:00
Jean-Paul Chaput 97916fd05b Complete replacement of xtof viewer by jpc'one.
Still in early stage. Many features missings.
2008-04-03 15:07:41 +00:00
Christophe Alexandre af0c4a4609 cleaning in progress in Hurricane 2008-03-17 13:54:33 +00:00
Christophe Alexandre aa405b5147 installation again 2008-02-05 20:22:01 +00:00
Christophe Alexandre a0e381b632 viewer improvment 2008-01-22 18:26:07 +00:00
Christophe Alexandre fd1e18bf8c add 2008-01-17 18:22:59 +00:00