Commit Graph

157 Commits

Author SHA1 Message Date
Jean-Paul Chaput 65d2cc98b8 Small correction for latest gcc compiler (Fedora). 2014-05-14 10:44:14 +02:00
Jean-Paul Chaput 724d92f816 Adding support for WOR_BIT in Net::Direction.
Modificate Alliance vst parser/drivers so now the wor_bit and wor_vector
are correctly loaded and written back (instead of degenrated into INOUT).
2014-05-13 17:11:48 +02:00
Jean-Paul Chaput dda3f99fd8 Update documentation for compliance with doxygen 1.8.5.
When upgrading from doxygen 1.5.x to 1.8.5 the way the documentation
is generated has underwent many changes, particularly in the headers.
* Change: In <header.html>, must include the javascripts <jquery.js>
    and <dynsections.js>.
* In <CMakeLists.txt>, as the header is customized, doxygen seems not
    copy some files like the javascripts and some images (open.png,
    closed.png). So we copy them from doxygen installation and make
    the CMakeLists.txt install them. I hope they will not change too
    much in the future.
* In <doxyfile>, disable markdown support as it do not interpret
    correctly the formating we already adopted (with a left margin
    to put command into). Use HTML_EXTRA_STYLESHEET instead of
    HTML_STYLESHEET. Enable the index (DISABLE_INDEX=NO), for the
    top header. Enable dot for inheritance diagram. Set the
    EXAMPLE_PATH=. to include the synthetic hierarchy.
    Correct the tag inclusion (faulty path in some places).
* In <SoC.css>, create style for the new header generated by doxygen.
* In the documentation, move the synthetic hierarchy into a module.
2014-05-13 16:30:41 +02:00
Jean-Paul Chaput e364edca52 Take account of fixed placement in Bookshelf & Ispd 05 parser. 2014-05-07 23:12:37 +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 fee45ef117 Qt5 porting, cleanup & Tidy.
Cleanup:
* Cleanup: In <vlsisapd/src/bookshelf>, remove unused file Bookshelf.cpp
    (may have been a parser once upon a time).
* Cleanup: In <hurricane>, in Cell::flattenNets() use flags instead of
    booleans to be more readable. Allow occurrence placement checking.
* New: In <crlcore> add Python wrapper for the Ispd05 loader.
* New: In <unicorn> add option for direct loading of ISPD05 designs.
* Bug: In <hurricane/src/viewer>, RecordModel must emit
    layoutAboutToBeChanged() before changing the record contents (and
    layoutChanged() afterwards).
2014-03-26 14:47:17 +01:00
Jean-Paul Chaput 9501b88110 First barebone implementation of Etesian. Support for ISPD05 benchmark.
Details:
* New: In <vlsispad/utilities>, new objet Dots for displaying a kind
    of progress bar.
* Change: In <vlsisapd/bookshelf>, keywords are now case-insensitive.
    Added a "strict syntax" option (to be disabled for ISPD05).
* New: First working implementation of Etesian, at least for ISPD05
    "bigblue1".
* Change: In <hurricane>, in Cell::flattenNets(), no longer display
    a warning if an instance is unplaced, this does not make sense
    when the circuit is not placed.
* New: In <crlcore>, Added translator for ISPD05 bookshelf, the
    circuit is *not* placed, unlike in ISPD04 and terminal nodes
    *are* true cells.
* New: In <unicorn>, added entry in import cell for ISPD05 benchmarks.
2014-03-25 00:59:12 +01:00
Jean-Paul Chaput 4842f21a2e Update to Qt 5, requires cmake 2.8.9. New placer: Etesian.
Update to Qt 5:
* Change: Now requires at least cmake 2.8.9.
* Change: CMakeLists.txt needs small changes. Qt modules must be found
    one by one (Core, Gui, Widgets). Must add "set(CMAKE_AUTOMOC ON)"
    in the top file and replace "qt4" prefix in macros by "qt5".
    Added simpler macro "setup_qt()" in FindBootstrap.cmake.
* Change: No longer need to include <QGtkStyle> is is choosen by default
    according to the current desktop environment.
* Change: In <hurricane>, In HApplication, launch ExceptionWidget when
    a std::exception is catched instead of silently discarting it.

New placer Tool: Etesian
* New: <etesian> analytical placer. Encapsulate Coloquinte from
   Gabriel Gouvine.
* New: in <documentation>, add stub demonstration ToolEngine <smurf>.
   Needs to be commented.

Miscellaneous:
* New: in <boostrap> and <unicorn>, added support for Etesian, the new
    analytic placer. The tool itself will be added in the next commit.
* Bug: in <CellWidget>, when shifting the display buffer, we no longer
    can copy the buffer on itself (we should never have). Now go through
    a temporary one (PlaneId::AutoCopy) which is added to the
    DrawingPlanes. Affect "goLeft()" and "goUp()".
* Bug: In <CellWidget>, remove the WA_PaintOnScreen flag/attribute.
    When it's on, no PaintEvent is transmitted to the CellWidget
    when it's the central widget of the <CellViewer> (QMainWindow).
    It's something I still don't understand from the doc of Qt.
* Change: In <AreaCommand>, use the PlaneId enumeration instead of a
    anonymous numerical index.
* Change: In <HApplication>, no longer catch and silently discard
    standartd exceptions but launch the ExceptionWidget...
    Suppress the now deprecated constructor with "Type" argument.
* Change: In <SelectionModel>, the "reset()" method is deprecated in
    Qt5, instead enclose the "clear()" by a "beginResetModel()" and
    "endResetModel()" pair.
* New: In <crlcore>, add support for ISPD05 benchmarks (in Bookshelf
    format). Forked from ISPD04 and not finished yet.
* Change: In <Mauka>, distinguish the Action string identifier from
    <Etesian>
* New: In <unicorn>, add entry for ISPD05 loader. Add entry for
    <Etesian> analytic placer.
2014-03-22 11:50:36 +01:00
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 14a5f5f7ef Documentation restructuration
Documentation restructuration:
* Bug: in <hurricane>: bad figure for transf-R1.
* Change, in <kite>: Remove deprecated configuration variables.
* New: documentation <tool> to regroup all documentation not directly
  related to one tool.
* Change, in <crlcore>, move the user's guide and the top doc index
  into <documentation>.
* New, in <documenation>: added Python script demo based on AM2901.
2014-03-11 12:21:31 +01:00
Jean-Paul Chaput 34e0edfd61 Cleanup after SVN importation, <ccb> builder script adaptation.
Project hierarchy reorganisation:
* With svn, we were doing a tool by tool checkout, suppressing the
  whole repository hierarchy level.
* The tools were also grouped, inside one repository, into multiple
  projects (<bootstrap>, <vlsisapd>, <coriolis>).
* We do not want to split up each tool into a separate repository,
  given their tight integration (except for vlsisapd).
* We choose to simplify, and consider all tools in a svn repository
  one project. Due to the way Git clone repositories, the directory
  containing the project is now to be seen under "src/".

CMake modifications:
* Now that the <vlsisapd> and <bootstrap> projects are merged into
  coriolis, modificate the top CMakeLists.txt of each tool to uses
  only Coriolis (and bootstrap hard wired).

CCB compile script modifications:
* Uses the new source tree hierarchy, with the project directory
  inserted.
* Remove (comment) all parts relateds to svn managment.
* Git is sufficiently simple so that we do not want to integrate
  command shortcut into the script.

SVN cleanup:
* Remove the obsolete <chamsin> tool, that has become the full fledged
  <chams> project long time ago.
2014-02-26 18:24:41 +01:00
Jean-Paul Chaput b4887b1180 * ./hurricane/doc/hurricane:
- Change: In Cell, added doc about PlacementStatus.
    - Change: In Transformation, more detailed explanations about the
        orientations. A little beautifying too...
    - Change: RoutingPad doc update.
    - Change: Entity doc update (for id).
    - Change: In HTML header/footer uses the new SoC.css.

  * ./crlcore/src:
    - Change: In DefDriver, added support for placement exportation.
    - New: In Utility, added a "paranoid" output stream (for my extra
       warnings in the router).
    - Bug: In ApParser, correct parsing of connectors index (recreate
       the vector).
    - Change: In alliance.conf, make "blockageNet" case insensitive.
    - Change: In misc.conf, added support for paranoid stream.
    - Change: In x2y and CyclopMain correct verbose flags positionning.

  * ./crlcore/doc:
    - Change: Updated style and added some documenation.
2013-12-04 01:47:34 +00:00
Jean-Paul Chaput 766132a2da * ./crlcore/src/crlcore:
- New: In Environment, adds a method getLIBRARYPath() to directly access the
        path of an element in the SearchPath. Also added to the Python interface.
          This is a quick alternative to fully export SearchPath and it's element
        into the Python interface.
2013-09-16 08:28:24 +00:00
Jean-Paul Chaput ce5b06cccc * ./crlcore/src/ccore:
- Bug: In Histogram.cpp, take into account the removal of boost filesystem.
2013-07-26 11:10:45 +00:00
Jean-Paul Chaput 039e58e30a * ./crlcore/src/ccore/agds:
- Bug: In AgdsQuery::goCallBack(), take account the instance transformation.
        This problem was not showing until now because there wasn't any instances...
2013-07-26 11:01:32 +00:00
Roselyne Chotin 7e036ab036 correct the location of stratus2sxlib.xml 2013-04-26 15:32:14 +00:00
Jean-Paul Chaput e2cb433962 * ./crlcore:
- Change: Switch from boost::filestem to VLSISAPD path.
2013-04-21 15:36:06 +00:00
Jean-Paul Chaput 64bfedc278 * ./crlcore:
- Bug: In CMakeLists.txt, when our custom macro "setup_boost()" is used,
        do not call find_package() afterward, it corrupt the library pathes
        from '/usr/lib/' to '/usr/lib/lib/'.
2013-03-13 13:38:38 +00:00
Jean-Paul Chaput 8c79521982 * ./crlcore:
- Change: In kite.conf, increase the ripup limit of local segments (too
        low).
2012-12-22 18:21:40 +00:00
Jean-Paul Chaput 08b7e3971f * ./crlcore:
- Bug: In Histogram::addSample(), reject the sample if iset is superior
        OR EQUAL to the sets size...
    - Change: In etc/mauka.conf, sets "mauka.standardAnnealing" to True. Otherwise,
        when hMetis (4-part) is not used, this leads toward very poor placements.
    - New: In UsersGuide, add a third style variant for the soc-extras site.
2012-12-09 11:18:07 +00:00
Jean-Paul Chaput 266906798b * ./crlcore/doc:
- Change: README in LaTeX+LaTeX2HTML is now replaced by User's Guide
        in reStructuredText. No need to request LaTeX.
2012-12-03 14:51:44 +00:00
Jean-Paul Chaput 7448b4daed Updated documentation. 2012-12-03 12:31:41 +00:00
Jean-Paul Chaput 2012f14acf * All Tools:
- New: Added FreeBSD/Ubuntu patches from Otacilio De Araujo
       (<otaciliodearaujo@gmail.com>).

  * ./crlcore:
    - New: In Utilities, cbug stream to separate all the scary messages
        from Kite/Katabatic and maybe others.
    - New: In stratus1.conf, adds default settings previously in st_config.
    - New: Moves Python configuration helpers from under /etc/coriolis2
        into PYTHON_SITE_PACKAGES/crlcore. Adapt Utilities so coriolisInit.py
        is now searched in that directory. This way only true configuration
        files remains under /etc/coriolis2
    - Change: In helpers/__init__.py, do not try to guess the sysConfDir
        when not run through coriolisInit.py. This is done by exploring the
        call stack with traceback.
    - Change: In ApDriver, when a physical view is driven, update the flag
        in the catalog state telling that this view is present. This is far
        from satisfactory as this flag should be set as soon as any physical
        component is created.
2012-12-03 08:27:41 +00:00
Jean-Paul Chaput c87d59256d * All Tools:
- A complete sweep of cleanup to suppress allmost all compiler warnings.

  * ./crlcore:
    - New: Extented Python support for all objects needed to configure Coriolis.
    - New: Configuration files and load helpers completly written in Python.
        An XML emulation mode is still avalaible.
    - New: UsersGuide, as a replacement for README, written in ReST.
    - New: Start of Doxygen documentation (mostly for documenting the initialisation
        objects & methods).
2012-11-16 12:49:47 +00:00
Jean-Paul Chaput 0bec26f739 Place the Net in the cell.
Rename place function from Place() to place().
2012-03-13 15:41:40 +00:00
Jean-Paul Chaput c4d93e71e8 * ./crlcore:
- Change: In environment.alliance.xml, restore settings compatible with
        Alliance.
2012-01-03 13:35:06 +00:00
Jean-Paul Chaput 65c30178f2 * ./crlcore:
- Bug: In ApParser.cpp, the connectors where not parsed. The problem
        was not showing if you run all Stratus scripts in the same process
        as the caching mechanism will prevent the parsing of the disk file
        and uses the memory copy (which is correct).
2012-01-02 21:20:13 +00:00
Damien Dupuis 1a23d73b22 Adding technology.ams035.s2r.xml file to support ams_035 technology. 2011-07-28 09:08:57 +00:00
Jean-Paul Chaput e2f77eb7ee * ./crlcore:
- New: In README, partial documentation update.
2011-04-12 21:42:26 +00:00
Jean-Paul Chaput 0e1a81707f * ./crlcore:
- New: In tools.configuration.xml, add indexes to the layout tabs.
        Adjust defaults parameters for Knik/Kite.
2011-04-12 20:33:49 +00:00
Jean-Paul Chaput 98f3022bba * <All Tools>/CMakeLists.txt:
- Change: For the setup_sysconfdir() boostrap/cmake macro uses the
        CMAKE_INSTALL_PREFIX to guess where we are being installed.
        Should be more reliable than any *_TOP environment variable.
2011-02-15 12:49:57 +00:00
Jean-Paul Chaput c51426c245 Add library version to pyCRL. 2011-02-04 11:09:35 +00:00
Jean-Paul Chaput ef4d088f60 Copy the genral HTML index in the right place for the
relative links to work.
2011-02-03 10:12:02 +00:00
Jean-Paul Chaput a0889934ad * <All Tools>/CMakeLists.txt:
- Change: Added versioning to library.
2011-02-02 22:25:09 +00:00
Jean-Paul Chaput 9d970ed03d * ./crlcore:
- New: Install a general index for the HTML documentation.
    - Bug: In cyclop CMakeLists, forgot to list all the needed libraries for
        the linker.
    - New: Support of Python installation layout under Ubuntu 10.04.
        lib/python2.6/dist-packages
2011-02-02 11:17:46 +00:00
Jean-Paul Chaput 10682d9c7c * ./crlcore:
- Change: In RoutingLayerGauge, no longer throw exception when the position
        requested it outside the track grid. Instead returns first/last track
        index.
2011-01-25 17:15:56 +00:00
Jean-Paul Chaput 9111c4cce2 Display the names of parsed file only if they are found.
Unstall UseLATEX cmake macro.
2011-01-09 18:57:52 +00:00
Jean-Paul Chaput beae7fb97e * ./crlcore:
- New: In GraphicsParser, read the new darkening scheme (HSV ratio).
        "display.xml" configuaration file modificated accordingly. May be some
        tuning needed for white background styles.
2010-12-30 18:39:26 +00:00
Jean-Paul Chaput a93e5be3da * ./crlcore:
- New: Histogram object, imported from Kite. Made more generic to be reusable
        by all.
    - Change: In Measures, added Inspector support.
        NOTE: The hidden property holding MeasuresDatas no longer uses a pointer
              a value. This forces us to enable the copy constructor. It is needed
              for some inner STL container manipulation, but should *not* be used
              with non-empty datas. The copy constructor *do not* copy the internal
              datas (reset the object).
    - New: In Measurments, support for complex data sets, saved in separate Gnuplot
        <.dat> files. Used to integrate Histogram.
    - New: In Histogram, now a supported Measure type so it can be integrated along
        all others measurments.
    - Bug: In display.xml, forgotten gcut description in Alliance Classic black
        style.
2010-12-15 15:11:25 +00:00
Jean-Paul Chaput c86e720066 * ./crlcore:
- Change: Rename "obstacle" to "blockage" in all the places it still appears
        to be completly homogeneous.
    - New: In Catalog, adds a "Pad" attribute to mark cells that are pads.
    - Change: In ApParser, discard "padreal" instances as a cause for a Cell to
        be non-terminal. This is for LeafPlugOccurrences to consider the terminals
        of those cells.
    - Change: In ApParser, makes use of the new Pad flag in Catalog.
2010-12-04 15:23:51 +00:00
Jean-Paul Chaput 7d49e75797 * ./crlcore:
- New: Inspector support enabled for AllianceFramework and most of it's
        sub-objects. Attached as a property on the DataBase to be browsable
        through the Inspector.
    - Change: Now also read a <.coriolis2.configuration.xml> in the user's
        root account (before the directory specific one and after the system-
        wide).
    - Change: In verbose mode, also display what environment files are being
        read.
    - Change: No more reference to CRL_CATA_LIB in error messages.
    - Change: Suppress stratus2sxlib obsolete library.
2010-11-17 15:40:39 +00:00
Jean-Paul Chaput 2c50fae3d3 * ./crlcore/src/ccore:
- New: In Utilities, uses the new Backtrace to print the stack before
        core-dumping.
    - New: In Environment, pattern recognition of Pad model names.
    - New: In AllianceFramework, pattern recognition of Pad model names.
    - Bug: In Measures, add inspector support and uses pointer to prevent using
        copy construction. Makes the inspector to core-dump.
    - New: In RoutingLayerGauge, inspector support for Constant::Direction.
    - Change: In ApDriver, correct managment of BIGVIA sizes. BIGVIA in one
        metal keep their sizes, but BIGVIA whith cut must be expandeds to
        contains their enclosure in metals. In Hurricane VIA size are relatives
        to the cut but in Alliance, to the biggest metal.
          Generate correct direction (always UP or RIGHT) for segments.
    - Change: In ApParser, shrink BIGVIA to the size of their cut from the
        Alliance format. Avoid VIA "bloating".
          More thorough verification of Segment data coherency, mainly with
        direction.  
          Suppress warning of non-existent logical instance in the special
        case of "padreal".
    - Change: In VstParserGrammar, perform an explicit plug connection on globals
        Nets if the names of globals Nets differs.
    - New: In display.xml, add style for printers (B&W).
    - Bug: In technology.symbolic.xml, BLOCKAGE6 was associated to metal6 instead
        of blockage6.
          Correct extensions value for VIA metal layers above cut1.
    - Bug: In Utilities, in System singleton constructor check of duplicated
        type_info/RTTI initialization. Occurs when python modules are useds.
        CRL must always be included first.
2010-11-16 13:57:57 +00:00
Damien Dupuis c904ed18f7 path variable does not exist and makes compilation fail.
maybe deisgnPath is the good one (at least compilation succeed)
2010-09-20 09:23:55 +00:00
Jean-Manuel Caba 37d8084a6a separated oaTech opening and creation from design driving ... for mixed mode debug ... 2010-09-18 11:57:37 +00:00
Jean-Manuel Caba 868e3788fb add roadmap ... 2010-09-15 13:15:27 +00:00
Jean-Manuel Caba 476608ceb2 small compile error left, and commit before fucking the code in all the positions ... 2010-09-03 12:57:14 +00:00
Jean-Manuel Caba 9ece24db8c remove test from svn source tree 2010-08-26 13:45:14 +00:00
Jean-Paul Chaput b0e234b3af * ./crlcore:
- New: In LefExport, export the spacer cells (rowend & tie) to enable
        filling in Cadence Encounter.
    - New: In DefImport, added support for regular wiring in NETS. Allows us
        to import routing from Encounter and characterize it.
    - New: In Catalog, added a CatalogExtension static property manager to
        allow more easy access to the Catalog::State of each Cell. Do not
        uses the default template because of a specific destructor and a
        "by pointer" value.
2010-08-25 11:42:04 +00:00
Jean-Manuel Caba d53d1f53b0 oops ... 2010-08-23 13:21:30 +00:00
Damien Dupuis ab4a8e4346 moving extern command from .yy file o .ll file so there is no error under mac osx 2010-08-23 12:56:53 +00:00