Commit Graph

346 Commits

Author SHA1 Message Date
Jean-Paul Chaput 2b9c929f80 Compliance with cmake 3.0 (Debian 9.2). Corrects all warnings. 2017-12-02 14:30:05 +01:00
Jean-Paul Chaput 51d5313801 Added C++ & Python tutorial code." 2017-12-01 14:17:47 +01:00
Jean-Paul Chaput e89eae6272 Bug, in FindLEFDEF.cmake, look for "libdef.so" and not ".a". 2017-11-27 14:16:10 +01:00
Jean-Paul Chaput 0f74ff7029 In FindLEFDEF.cmake, do not look for C libraries. 2017-11-26 20:02:54 +01:00
Jean-Paul Chaput 20eadc85f3 Bug: LEF/DEF includes in the wrong place. 2017-11-17 15:32:30 +01:00
Jean-Paul Chaput c12a50b64b Integrate LEF/DEF 5.8 into the tree (Apache 2.0 licensing)
* New: As, starting from version 5.8, LEF/DEF parser/drivers are
    availables under Apache 2.0 license, integrate them inside the
    project. Rewrite the Makefiles into CMakeLists.txt, build only
    the C++ version. Create an entry for the LEF/DEF doc in the
    documentation.
2017-10-30 15:38:29 +01:00
Roselyne Chotin-Avot 677a5d4c68 In coriolisEnv.py more robust take account of ps 2017-08-02 11:41:08 +02:00
Jean-Paul Chaput 95d1b53646 Complete hoverhaul of the documentation to Sphinx.
* New: In documentation, reorganise all the various documents into one
    Sphinx coherent one. The index also provide a link toward the
    Doxygen generated doc (C++ APIs) and the venerable LaTeX2HTML ones
    (for Stratus).
      This will make easier all future extensions to the doc corpus.
      The generated documentation is commited into Git so a new user
    can use it directly after cloning the repository.
      The HTML doc is truly generated by Sphinx, but the pdf one is
    created rst2latex. The Sphinx pdf writer is buggy when a "tabular"
    contain a multicol and a multirow in the same area of the table.
    rst2latex handles it correctly.
      We use a theme borrowed for Read The Doc (half of it).
      It seems that some Javascripts are not working correctly,
    namely the folding of the navigation sub-menus and the index
    generation and search mode.
2017-07-15 17:35:02 +02:00
Roselyne Chotin-Avot 6c229ce076 Remove ‘-‘ from zsh shell on MacOS 2017-05-05 12:01:26 +02:00
Jean-Paul Chaput 2396ff7120 Fully automatic shell detection. Automatic switch to Debug. 2017-04-14 12:09:48 +02:00
Jean-Paul Chaput 4126a53406 More reliable detection of libbfd. 2017-04-13 17:04:35 +02:00
Jean-Paul Chaput a2f1db27db Search for *both* libfd binutil specific and generic one. 2017-04-13 14:28:14 +02:00
Jean-Paul Chaput 3777c34834 Bug: bad managment of the csh case. 2017-02-08 18:26:20 +01:00
Jean-Paul Chaput a376d34cfe Accurate Qwt detection (Qt4 vs. Qt5). DbU forced to 64 bits.
* Change: In bootstrap/FindBootstrap.cmake, new setup_qwt() macro to
    link with the Qwt library build with Qt 5 *or* Qt 4 and not the
    first found.
* Change: In Hurricane/DbU, uses <int64_t> instead of <long> to always be
    sure that we use 64 bits integers for coordinates.
* Change: In Katana/KatanaEngine::_gutKatana() checks that the
    RoutingPlanes have been allocateds before trying to delete them.
2016-11-23 11:29:28 +01:00
Jean-Paul Chaput b536421d3a Compress to log files in socInstaller.py script (where too big). 2016-11-10 13:46:45 +01:00
Jean-Paul Chaput 48f3a2bc3c Anabatic transient commit 18. Port of Kite (Katana), Yeah, Baby! Yeah!
* Bug: In Hurricane, in StaticObservable::getObserver(), if the slot
    pointer is NULL, do not try to access the owner. Returns NULL, so
    the caller can be aware of the situation...
* Change: In Hurricane, in BreakpointWidget & ExceptionWidget some
    cosmetic changes (fonts and window sizes).
* Bug: In Anabatic, In AutoHorizontal::getConstraints(), take into account
    the constraints from the source AutoContact, as it holds the constraints
    transmitted by the RoutingPads and sets up by propageConstraintsFromRp().
    It is likely to be a bug affecting the original Katabatic as well.
* Change: In Anabatic, in RawGCellsUnder(), check that the segment is not
    completly oustside the cell abutment box and truncate the coordinates
    to the part that is inside. Use the "shrink" if we reach the east/north
    border.
* Change: In Anabatic, in Configuration, no more decorator because we will
    use a true derived relationship. Katana *derives* from *Anabatic* and do
    not *decorate* it, so the Configuration can do the same. It also implies
    that we directly create a Katana engine, not an Anabatic one.
* Change: In Anabatic, in Session, do not allow the opening of the Session
    in a standalone fashion (with a static method). Instead it must be opened
    using the relevant method of the Anabatic/Katana engine. This ensure we
    are opening the right Session type.
* Change: In Anabatic, in AutoSegment_Aligneds() collection the seed segment
    is not part of the collection by default, but will be included if the
    Flags::WithSelf is set.
* Change: In Configuration, all the flags value are now defined in two steps.
    Declared in the header and initialized in the module. This is to prevent
    the fact that on some cases, in relation with the Python "extern C" part
    modules, we need a true allocated variable. It was causing weird linking
    problems.
      A side effect is that they can no longer be used as entry is switches,
    have to replace them by if/else.
* New: In Anabatic, new GCell::getNeighborAt() utility function.
* Bug: In Anabatic, in GCell::doGrid(), tag all the GCells of the grid with
    the grid type... Back annote all the edges capacity (north & east) with
    the reserved local capacity.
* New: Complete portage of Kite over Anabatic. The new engine is christened
    "Katana" for Kite-Analogic. When it's capabilities and performances
    will be on a part with Kite, it is to completly replace it (and take
    back the "Kite" name). Preliminary tests seems to show that, contrary
    to intuition (because built on a more complex/slower grid), it is even
    slightly faster than Kite 8-).
2016-08-15 16:30:13 +02:00
Jean-Paul Chaput a19bfa2698 In socInstaller.py, open the log files *before* using it. 2016-08-10 12:07:40 +02:00
Jean-Paul Chaput 3835d6f7ad Diplay function, file & line number in the backtrace (like gdb).
* New: In Bootstrap, add cmake detection for libbfd.
* New: In Hurricane, in Backtrace, add BFD support to read debuginfo from
    the shared libraries (aka DSO) when compiled with "-g". This avoid the
    tedious step of running gdb after generating a core dump. It is also
    mandatory in ExceptioWidget to known from where an exception was thrown
    as Qt::notify() block all C++ exceptions.
      Currently works only under Linux (gcc or clang), may be extended in
    the future.
      The BFD reading is based on the small utility from:
          Don Hatch (hatch@plunk.org)
          http://www.plunk.org/~hatch/goodies/backtracefilt.C
      And small trinket: adjust the size of the window for high DPI screens.
* New: In CRL Core & Unicorn add link toward libbfd, if needed.
2016-08-06 18:15:06 +02:00
Jean-Paul Chaput c9db432c48 In bootstrap, little beautifying of socInstaller.py. 2016-08-01 13:21:18 +02:00
Jean-Paul Chaput c30811471d Merge branch 'devel' of ssh://bop-t/users/largo2/git/coriolis into devel_anabatic 2016-07-18 15:00:38 +02:00
Jean-Paul Chaput (acting Coriolis) 81b86e7daf Added an option for MacPorts in ccb.py (for Boost pathes). 2016-07-13 14:33:21 +02:00
Jean-Paul Chaput 601e3d3da1 Anabatic transient commit 8. More Dijkstra bugs correcteds.
* Bug: In Anabatic:
    - In _propagate(), on reaching a target, forgot to remove it from
      the queue before pushing it back with the new distance. It also
      simplificate the core algorithm as target as treated normal nodes.
* New: In Anabatic:
    - Update cdebug to use the fastest macro version.
    - More readable drawings of GCells and Edges.
    - Added timer support.
    - The distance is now computed in DbU::Unit (aka long) and not in
      normalized float.
    - The distance function is now a callback (std::function<>) that
      can be changed (a default is provided at initialization).
    - New concept of branch in the agglomerated connex component.
      Each trace back part create a "branch" (tagged with a "branchId").
      When a node is reached with the same distance, but from two
      different branches, choose the the branch that was lastly created.
      This create a slightly different tree which grows outward from
      the newest branches.
    - Makes the horizontal edges *slightly* longer than the vertical ones
      to skew the tree to use vertical edges, as it is usually less
      congested than the horiontal one (due to metal1 cell terminals).
      It is also my understanding that it is useful to reduce the
      number of vias, whithout introducing a via cost.
* New: In Bootstrap:
    - Script sprof.py to perform sprof & demangle libraries execution
      profile.
* ToDo: In Anabatic:
    - Corner optimization. Sometimes when two corners are possible, the
      wrong one is choosen. That is, one of it's edge cannot be used for
      further grow of the tree.
2016-06-17 13:09:34 +02:00
Jean-Paul Chaput 36a982ce47 Merge branch 'devel' into devel_anabatic
Catch up the Lemon removal and cdebug correction.
2016-06-11 21:58:25 +02:00
Jean-Paul Chaput f68ac4d0e6 Argh. cdebug was slowing down the program too much.
* Change: In Hurricane Commons.h, even when cdebug print nothing, it slow
    down the program (three times for Kite!). Create a macro cdebug_log
    which calls cdebug *only* if the debug level is active.
2016-06-11 21:56:12 +02:00
Jean-Paul Chaput fd692d3978 Use devel_anabatic branch of Coriolis for Chams to build. 2016-05-26 18:42:21 +02:00
Jean-Paul Chaput 61e9abddbd Anabatic transient commit 1.
* New: In Anabatic, basic support for GCell/Edge creation.
2016-05-23 16:15:25 +02:00
Jean-Paul Chaput babf23f303 Let the init system guess "stratus1.mapppingName" value.
* Change: In Bootstrap, in coriolisEnv.py no longer sets the environment
    variable STRATUS_MAPPING_NAME (guessed by init).
* Change: In CRL Core, in System CTOR sets the default value for
    "stratus1.mappingName" to "not_set" so the init can known it is not
    set.
      In etc/coriolis2/*/stratus1.conf, do not set "stratus1.mappingName".
      In coriolisInit.py, now guess the value of "stratus1.mappingName"
    if it has not already been set by the user. The complete setting
    process is as follow (decreasing priority):
      1. Setup by the user in his ".coriolis2/setting.py".
      2. A "stratus.xml" file is detected in the current technological
         directory (example: etc/coriolis2/65/cmos065/setting.xml).
      3. Fallback value to "etc/coriolis2/stratus2sxlib.xml".
2016-05-06 13:15:10 +02:00
Jean-Paul Chaput f28daec401 Handling of Cell destruction in CellViewer.
* Change: In bootstrap, in socInstaler.sh, use the current version of
    rapidjson.
* Change: In Hurricane, in FileWriteGzStream, complie to the latest
    rapidjson headers organization.
* New: In Hurricane, in Cell, emit a new signal CellDestroyed toward the
    observers (i.e. the CellViewer(s)), from _preDestroy().
* Change: In Hurricane, in CellViewer, in CellObserver::notify(), manage
    the CellDestroyed case. Do not forget to remove the deleted Cell
    from the viewer's history.
2016-02-23 10:48:26 +01:00
Jean-Paul Chaput 4f709c8cae In socInstaller, force rapidjson into an earlier state. 2016-02-21 12:34:10 +01:00
Jean-Paul Chaput 208412a22c Forgot to build support in socInstaller.py. 2016-02-21 12:10:44 +01:00
Jean-Paul Chaput a9a0a7d107 Update the socInstaller for the support repositories.
* Change: In bootstrap, in socInstaller.py checkout the support git
    repositories (currently, only rapidjson). Send the report mail
    to <jpc> & <lao>.
* Bug: in VLSISAPD, in the top CMakeLists.txt, do not requires the
    Hurricane cmake, it is build after (cycling dependency).
2016-02-21 11:58:54 +01:00
Jean-Paul Chaput f508bb0d20 Merge branch 'devel' of ssh://bop-t/users/largo2/git/coriolis into devel
This is the same branch, but on the remote repository.
2016-02-20 18:44:15 +01:00
EricLaoGitHub 5809fc7aa0 Modifications in OpenChams description:
- Add OpenChams::SlicingNode class to drive/parse XML files.
  OpenChams::SlicingNode contains information to create a real slicing tree (SlicingNode from hurricaneAMS)
- Minor modification in Circuit.cpp for case when HBTree are not described in XML file.
2016-02-16 19:21:37 +01:00
Jean-Paul Chaput 1b7bd9de36 Happy new year 2016! 2016-01-21 00:41:19 +01:00
Jean-Paul Chaput 5baddeb558 Implementation of DataBase native save/restore in JSON (step 2).
* New: In boostrap, in ccb.py, added support for the "support" project
    which contains external dependencies. Currently contains only
    RapidJSON. Those dependencies must be cloned here manually.
* New: In Hurricane, Initializer class for an ordered static initialization
    across different compilation modules.
* Change: In Hurricane, at DataBase level, no longer save the Cells in
    the libraries, but create and ordered list of Cell. Deepest cells
    (leaf cells) first. To avoid dependency problems.
* New: In Hurricane, JSON support for Property.
* New; In CRL, added JSON support for AllianceFramework, Environement &
    Catalog and their associated properties. Adjustment of the
    AllianceLibrary creation policy.
2016-01-21 00:25:39 +01:00
Jean-Paul Chaput 0930660a1f Added detection of Windows 10 / Cygwin64 (N. Shimizu). 2015-10-02 15:59:01 +02:00
Jean-Paul Chaput 25ba4ad3d4 Partial rewrite of socInstaller.py to be more object-oriented. 2015-06-18 14:54:45 +02:00
Jean-Paul Chaput e86d9e2ff1 Typo in coriolisEnv.py. 2015-06-15 17:07:25 +02:00
Jean-Paul Chaput 336a688b3f Detection of nightly build in coriolisEnv.py. 2015-06-15 17:01:24 +02:00
Jean-Paul Chaput fa1081275d Now run also the benches. Added a "local" mode run. 2015-06-14 16:23:11 +02:00
Jean-Paul Chaput e9369ab905 Bug in Instance::getClone() generating unplaced copies.
* Bug: In Hurricane, in Instance::getClone(), the Instance::create()
    was called with a wrong number of parameters, causing the the
    wrong overload to be called. The position was thus not copied
    generating an unplaced copy. This was causing error in the
    AM2901/datapath bench, because fixed blocks where becoming
    unfixed.
* Bug: In <bootstrap>, in coriolisEnv (again) an error in the
    detection of the LD_LIBRARY_PATH.
2015-06-14 15:24:34 +02:00
Jean-Paul Chaput 5cb6170a53 Nicely print the LEFDEF_SEARCH_PATH. 2015-06-12 16:41:46 +02:00
Jean-Paul Chaput a3bd52c68f LEF/DEF installation on SoC network. 2015-06-12 16:27:29 +02:00
Jean-Paul Chaput 39567add06 Annoying errors in init script under RHEL6 (bad devtoolset2 check). 2015-06-12 15:22:16 +02:00
Jean-Paul Chaput 5d3d7343b0 socInstaller.py has now all it's features. 2015-06-11 23:48:57 +02:00
Jean-Paul Chaput 6743072048 SoC super-builder socInstaller.py for network & nightly builds.
* New: In <bootstrap>, socInstaller.py, a script to perform standard
    SoC network installations and nighltly builds. Clone/update the
    git repositories (Coriolis & Chams), build binaries and docs
    in two passes, then send a mail report.
2015-06-11 18:51:10 +02:00
Jean-Paul Chaput 4bf5cf74b4 Policy CMP0022 for CMake. Forgotten library in Unicorn link. 2015-06-11 18:01:39 +02:00
Jean-Paul Chaput 51043df640 Merge "collections" branch from <github> (G. Gouvine).
* New: In Hurricane, in Collection add simple STL iterator support.
    So now the C++11 "for" instruction can be used instead of the
    in-house "forEach".
      Example:
         forEach ( Component*, icomponent, net->getComponents() ) {
           cout << (*icomponent) << endl;
         }
      Become:
         for ( Component icomponent : net->getComponents() ) {
           cout << icomponent << endl;
         }
2015-06-08 11:51:09 +02:00
Jean-Paul Chaput 2906d90b04 Re-activate the LEF/DEF symbolic exporter (for benchmarking).
* Change: In bootstrap, in FindLEFDEF.cmake, adds my personal path where
    the LEF/DEF libraries are to be found (~jpc/oa/lefdef/5.7-s038/).
* Change: In CRL Core, in LEF/DEF exporters, use the default routing
    gauge and cell gauge, instead of systematically requiring "sxlib".
      IMPORTANT: In order to build a *shared* library including the
    *static* LEF/DEF libraries, those libraries, even if static, must
    be build with the "-fPIC" flag (otherwise the compiler complains).
    I have done so on my 64 bit build of LEF/DEF, but it's a completly
    *local* patch. You may have to do it manually on your installations.
2015-06-07 14:12:00 +02:00
Gabriel Gouvine fd994e51fe Merged bug fixes and improvements
* Steiner tree topology
* Install path detection
* Additional Alliance layer
* Blif parser presented first
2015-06-02 10:36:21 +02:00
Jean-Paul Chaput 1b79ef75c9 Added a top level Makefile to encapsulate the ./bootsrap/ccb.py call. 2015-05-09 23:16:36 +02:00
Gabriel Gouvine 1cda835a48 Detection of the install path for 64 bits distros using /usr/lib 2015-05-03 21:10:42 +02:00
Jean-Paul Chaput 693c05cf32 Added README and detection of 64 bits using /lib. 2015-04-25 18:27:04 +02:00
Gabriel Gouvine 6a6def8252 Cleanup to enable routing-driven placement 2015-04-20 15:29:40 +02:00
Gabriel Gouvine ef671cb944 Initial draft for routing-driven placement
* Uses density restrictions rather than cell inflation
* Will fail brutally if the congestion is too high; does not attempt to balance the densities
2015-04-20 14:14:41 +02:00
Jean-Paul Chaput db60fe0aa6 New coriolis launcher. Configuration files cleanup.
* Change: In CRL Core, simplify the loading sequence. The technology,
    both symbolic and real is now loaded directly from coriolisInit.py
    and not through the Alliance loader. This was a leftover from the
    time configuration was in XML. Remove others traces of XML loading.
      Remove SYMB_TECHNO_NAME, REAL_TECHNO_NAME & DISPLAY from the Alliance
    environement, as they was no longer used.
      Note that technology *still* need to be loader *after* Alliance
    framework has been initialized.
      Gauge information is moved from <alliance.conf> to <kite.conf>.
* Bug: In Coloquinte, in optimization_subproblems.cxx static variables
    must not be inlined. Generate a problem when linking in debug mode
    (seems the symbol gets optimised out).
* Bug: In Katabatic, in Grid::getGCell(), when the coordinate is *outside*
    the area, do not try to find a GCell, directly return NULL.
* New: In Unicorn, create a generic command launcher named "coriolis" which
    automatically take cares of all environement setup, then run a command
    by default, it's <cgt>, but it can be anything. For example: <zsh>.
2015-04-13 18:54:09 +02:00
Jean-Paul Chaput bacea5214c Adapt the rpm automated build system of bootstrap (pass 2)
* Change: coriolis2.spec.in, Makefile.package and Builder/ccb now support
    RHEL6, RHEL7 & Fedora.
* Change: In Bootstrap, added a flag to activate compilation with
    openmp.
2015-04-09 22:45:48 +02:00
Jean-Paul Chaput cdfdccb19d Import Coloquinte as a Coriolis tool (merge from github/coloquinte). 2015-04-08 17:13:50 +02:00
Jean-Paul Chaput 1625b16d4c Adapt the rpm automated build system of bootstrap (pass 2) 2015-04-08 17:13:24 +02:00
Gabriel Gouvine a0f01a5e00 Fixes from Naohiko Shimizu for compiling under Cygwin 2015-04-08 11:00:19 +02:00
Jean-Paul Chaput 9e672ffaa8 Adapt the rpm automated build system of bootstrap (pass 1) 2015-04-08 00:13:27 +02:00
Jean-Paul Chaput 71e1c188ea Remove obsolete XML config files. Add stub technos cmos065 & c35b4.
* New: In CRL Core, remove obsoleted XML files, no longer needed by
    Chams. Add stub for technologies CMOS065 (ST) and C35B4, aka
    AMS 035.
* Bug: In Knik, update the path where to find the FLUTE lookup tables.
    (from 2.4 to 3.1).
2015-04-06 12:49:27 +02:00
Gabriel Gouvine 3351574077 Fixed typo 2015-04-03 11:29:55 +02:00
Jean-Paul Chaput 1e73466199 Added new CMake macro add_python_module() and some cleanup. 2015-03-22 19:12:45 +01:00
Jean-Paul Chaput 393b5a735f Remove simulated annealing placer Nimbus/Metis/Mauka. 2015-03-17 22:50:00 +01:00
Jean-Paul Chaput 5dc60415e7 Happy new year 2015! 2015-03-17 16:56:55 +01:00
Jean-Paul Chaput 225f9093b5 Support Fedora OS in Builder as well as in coriolisEnv. 2015-02-28 10:30:28 +01:00
Jean-Paul Chaput 8566126acc Adding Configuration support to Etesian.
* Change: In Bootstrap & ccb, the coloquinte project is renamed into
    "importeds", it will be the home of all the externally
    devellopped softwares that are needed to build Coriolis.
      Add explicit support for Fedora ("Linux.fc") and uses
    site-packages, as everybody else.
* New: In CRL Core, in etc/, adds the configuration files for Etesian.
* New: In Etesian, activate the Configuration object. Now uses it's
    own configuration variables instead of borrowing those of
    Nimbus & Mauka.
* Change: In Documentation, updated User's Guide to present Etesian
    as the placer, instead of Mauka.
* Change: In Cumulus, slight change in ClokTreePlugin and ChipPlugin
    to match the new Etesian/Python interface.
2015-02-27 18:16:03 +01:00
Jean-Paul Chaput bd3984a313 Correctly manage clock net isolateds from the main clock.
* New: In Bootstrap, in ccb.py, check if cmake is installed and issue
    a warning, if not.
* New: In Hurricane, added Cell::getDeepNet() to search for a deepnet
    given a path and a leaf net. This method is slow and must not be
    used too often. Introduced for Kite::BuildPowerRails().
* Change: In CRL Core, in cmos/alliance.conf, modify the clock name
    pattern to match the sub-clock signals in the datapath operators.
* Bug: In Etesian, do not blindly reset the top cell abutment-box.
    Do it only if it's empty, otherwise keep it.
* Bug: In Kite, in buildPowerRails(), in getRootNet() the management
    of clock nets was incomplete. The case of unrouted clock nets
    that where not connected to the top core clock net, like the
    one in the datapath registers was faulty. They were partly
    recognized as unrouteds and partly as blockage generating a
    routing deadlock: routage impossible due to blockage generated
    from itself...
* New: In Stratus1, add a buildModel() utility function to automate
    the model generation and allow a call by the model name (string).
* Change: In Unicorn, in cgt.py, display the Alliance environement.
2015-02-25 22:22:16 +01:00
Jean-Paul Chaput 3b343f08cf Bug in Python proxy deallocation. Update to latest Coloquinte.
* Bug: In Bootstrap, in coriolisEnv.py, check if devtoolset-2 is already
    active before launching it as a sub-shell.
* Bug: In Isobar, In PyHurricane.h, DBoDestroyAttribute() set the proxy
    pointer toward the C++ object to NULL. So when the Python object is
    deleted no double-deletion occurs on the C++ object.
      Add some more trace information in Python link/dealloc.
* Change: In CRL Core, in cyclop, make CMakeLists.txt automatically
    choose the right rule for linking the binary wether we use Qt 4 or
    Qt 5. Very irksome problem.
* New: In EtesianEngine::addFeed(), do not take into account instances
    that are not placed entirely inside the top cell abutment box (was
    causing a core dump).
* Bug: In Katabatic, in GCellQueue, correct a mismatch between a GCell
    set and the iterators used upon it.
* Bug: In Mauka, in Row & Surface correct a mismatch between a container
    and it's iterator.
* New: In Etesian, updated to work with the latest Coloquinte, patch
    contributed by G. Gouvine.
      Added EtesianEngine::setDefaultAb() to compute an abutment box if
    the Cell is completly unplaced.
* New: In cumulus, in ClockTree, now the placer can be configured to be
    either Mauka (slow simulated annealing) or Etesian (fast analytic).
    New setting 'clockTree.placerEngine' in plugin settings.
2015-02-13 23:38:55 +01:00
Jean-Paul Chaput 05ec238080 coriolisEnv.py must not start devtoolset-2 when already active. 2015-02-03 23:41:55 +01:00
Jean-Paul Chaput b18219d807 Integration of the latest Coloquinte in Etesian & misc modifs.
* New: In Bootstrap, in Builder & coriolisEnv.py support for RHEL7/SL7.
    The sub-directory name is 'el7_64'.
      In qt_setup() add QtSvg to list of Qt5 & Qt4 used libraries.
* New: In Hurricane, In Cell add a placeholder for flags. First use to
    store whether the Nets have been transhierarchically flatteneds.
* New: In Hurricane, In NetRoutingState add an Unconnected flag for
    more accurate diagnosis.
* New: Hurricane, in CellViewer add an entry menu for stress tests.
    The script must be named "stressScript.py" in the cwd.
* Change: In CRL Core, in display.conf add a scaling parameter for the
    display threhold of the layer. This way we can adapt to different
    standard cells height.
* Change: In CRL Core, in ISPD05 bookshelf loader, use the pitch of the
    cell gauge instead of a hard-wired 5.0.
* Change: In Cumulus, in ClockTreePlugin, add support for Etesian placer
    and a new configuration parameter to choose between Mauka/Etesian.
* New: In Etesian, support for the latest Coloquinte.
    Add feed insertion stage.
* Bug: In Kite, In BuildPowerRails, check that _ck is not NULL before
    tring to access it's name...
* Change: In Kite, check if the Cell has it's Nets flattened before
    doing it (or not).
2015-02-01 23:24:13 +01:00
Jean-Paul Chaput 978315c017 Compliance with Clang 3.4 (RHEL7, MacOS).
* New: In Bootstrap, added support for RHEL7 in ccb.py & coriolisEnv.py.
   In coriolisEnv.py, under RHEL6, directly launch a shell under
   devtoolset-2 (do not put it in .bashrc).
* Change: All tools, compliance with Clang 3.2.
   - Call using namespace std *after* at least one include of std has
     been used.
   - In Utilities.h define both const and non-cont overload for operator<<
     of mstream (this was the true cause of the Banner display problem).
   - No longer use defaults arguments in templates, instead create two
     separated overloads.
   - Put template static attributes allocation outside of namespaces
     (this one I'm not sure how to justify).
   - Protect by NDEBUG variables that are only needed in assert().
   - In PyInterval getUnion() & getIntersection() we where silently
     overwriting the "self" object (interval).
   - In Mauka, *do no* overload _postCreate() and add an argument, breaks
     the virtual function mechanism. Rename it into _maukaPostCreate().
     Idem for SubRow().
   - In Katabatic::GCell(), invalidate() overload a Go funtion but is
     used for different purpose at this level. Rename it invalidateCt()
     (invalidate *ConTents*).
   - Miscellaneous small cleanup.
2014-12-09 23:49:46 +01:00
Jean-Paul Chaput 37c8498962 Support for devtoolset-2, clang and c++11 improvement. 2014-12-05 18:50:15 +01:00
Jean-Paul Chaput f85159bdb4 More accurate error message in Python module importation. 2014-09-07 23:16:04 +02:00
Jean-Paul Chaput b081d07bfc More strict detection of the configuration files install directory.
* Change: In Bootstrap, in FindBoostrap.cmake, install in system-wide
    directories /etc or /opt only if the the installation path is
    exactly /usr or /opt and not only beginning with it.
2014-08-03 16:17:13 +02:00
Jean-Paul Chaput 09f515c62a Support for Windows/Cygwin, part 2.
* Change: In bootstrap, in ccb, builder and coriolisEnv.py, correct detection
    of the windows architecture (32 or 64 bits). Under Cygwin, add the
    directory of the dll into the PATH also. Uses "site-package" as the
    location of Python modules (*not* "dist-package").
      Use gnu++0x under Cygwin instead of c++11.
* Change: In Etesian, if Coloquinte is not found, do not stop the compilation,
    just disable the tool altogether.
* Change: In Hurricane, In Backtrace, disable backtrace under Cygwin as it
    uses features specific of the glibc.
* Change: In Knik, use HUGE_VAL instead of HUGE (not present under Cygwin),
    add the <cmath> header.
* Change: In Unicorn, Coloquinte no longer stops the compilation.
2014-07-23 00:55:50 +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 d0d045b55b Starting to implement support for Windows/Cygwin.
* New: In all to CMakeLists.txt, disable the warning about deprecated
   WIN32 under cygwin.
* New: In boostrap, in ccb.py, coriolisEnv.py and builder/Configuration.py
   add recognition in uname for the values returned under Windows/Cygwin.
* New: In Documenation, in UsersGuide.rst add some informations about
   Cygwin and a section for the devel branch.
2014-07-13 13:14:49 +02:00
Jean-Paul Chaput da5fb18971 Added support for Ninja in <ccb> (bootstrap). Minor fixes in CMakefiles. 2014-06-10 00:11:42 +02:00
Jean-Paul Chaput 6939025a0d Correction of SoC.css, adjust the look of the class index big letters. 2014-06-10 00:04:48 +02:00
Jean-Paul Chaput b98afd8385 Small typo in coriolisEnv.py. 2014-05-19 18:00:20 +02:00
Jean-Paul Chaput 9fa65af1ec Add hash/rehash commands at the end of the scripts in <coriolisEnv.py>. 2014-05-13 17:13:55 +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 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 c0b999241f Re-added support for Chams & CMake support for Git hash retreival.
Details:
* Change, in build.conf: re-added support for the newly migrated Chams
    project.
* Bug, in bootstrap/../Project.py: the tool by tool compilation was
    not working. Now it does (argument "--tool").
* New, in boostrap/../cmake_modules: support for retreiving the Git
    hash number (SHA1). Borrowed on the net from (kudos):
      Ryan Pavlik <rpavlik@iastate.edu>
2014-03-02 11:45:42 +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 8660c41144 This bug keeps repearing! 2013-12-04 02:58:53 +00:00
Jean-Paul Chaput 9965b34e9b Remove the transient support for Kite3 & Katabatic3. 2013-12-04 02:11:21 +00:00
Jean-Paul Chaput 9c9afdd47d Die svn die! 2013-11-05 13:27:24 +00:00
Roselyne Chotin 77f71e68f8 compatibility with MacOS : site-packages and DYLD_LIBRARY_PATH 2013-04-26 15:32:59 +00:00
Ramy Iskander b553e276cc Added solver project to easyChams
Ramy
2013-04-20 21:21:38 +00:00
Jean-Paul Chaput e8565d0fb5 Forgot to create a proxy for getProject() 2013-01-12 15:10:55 +00:00
Jean-Paul Chaput b99ccda839 * ./bootstrap:
- New: Complete rewrite of builCoriolis.py & merge with easyChams to provide
        a graphical interface. Asides to the GUI, when run in graphic mode all
        settings are kept from run to run. Meaning that once the initial setup
        is done, a user may completly forget where things are... The new tool
        is named <ccb> for 'Coriolis & Chams Builder'.
          The Builder is now a module, that is split into multiples files.
        The old buildCoriolis.py is kept for the time beeing to ensure a smooth
        transition.
2013-01-12 14:57:35 +00:00
Jean-Paul Chaput 3daf4d6ac2 * ./vlsisapd:
- New: Detection support for Qwt.
2012-12-28 13:39:15 +00:00
Jean-Paul Chaput 0193433de4 * ./bootstrap:
- New: In buildCoriolis.py, add a --svn-diff option.
2012-12-14 15:36:52 +00:00
Jean-Paul Chaput daf77b9deb * ./bootstrap:
- New: In buildCoriolis.py, in the svnCheckout command, if the source
        directory do not exists, create it (recursively).
    - Change: In buildCoriolis.py, in the svnCheckout command, take the svn
        tag version number in account now...
2012-12-12 14:15:10 +00:00
Jean-Paul Chaput b2340a4fe8 * ./bootstrap:
- Change: In debian/control, new dependency for reStructuredText
        (docutils).
    - Change: In debian/coriolis2.doc-base, correct list of files.
2012-12-04 15:54:56 +00:00
Jean-Paul Chaput f8b6b761c5 * ./bootstrap:
- Change: In debian/coriolis2.doc-base, small correction on the
        documentation files to include.
    - Change: In Makefile.package, crlcore & unicorn now generate
        documentations.
2012-12-04 12:29:00 +00:00
Jean-Paul Chaput eaf107389d * ./booststrap:
- In debian/control, added missing build dependencies.
2012-12-03 21:39:04 +00:00
Jean-Paul Chaput 1a116894bb * ./bootstrap:
- Change: In coriolis2.spec.in, correct the list of packaged
        files to take into account the new initialisation layout.
2012-12-03 15:49:21 +00:00
Jean-Paul Chaput c7c812445f * ./bootstrap:
- Change: In Makefile.package, the "dvi" target no longer exists
        for crlcore.
2012-12-03 15:10:56 +00:00
Jean-Paul Chaput f29a11db4d Updated documentation file to package for Debian/Ubuntu. 2012-12-03 12:30:47 +00:00
Jean-Paul Chaput 80a6e55c27 Forgot this one, for FreeBSD. 2012-12-03 08:38:59 +00:00
Jean-Paul Chaput 64e4d7f259 * All Tools:
- New: Added FreeBSD/Ubuntu patches from Otacilio De Araujo
       (<otaciliodearaujo@gmail.com>).
2012-12-03 08:20:18 +00:00
Jean-Paul Chaput 0a4297e84d * ./bootstrap/buildCoriolis.py
- Change: When the configuration file is not given as argument, looks
        in all the places it is likely to be found.
2012-11-17 15:01:05 +00:00
Jean-Paul Chaput 501fe1e4d9 Pb between rootDir & projectDir 2012-11-16 14:59:20 +00:00
Jean-Paul Chaput a4265c1dce Forgotten new configuration file of buildCoriolis.py 2012-11-16 13:07:11 +00:00
Jean-Paul Chaput c18e875143 * ./bootstrap/buildCoriolis.py:
- New: Support for tarball directly from the user checkout (--user-tarball).
    - New: Full parametrization through a "build.conf" file.
    - Change: Uses user-defined exceptions to terminate.
    - New: guessOs() now detect FreeBSD 8.

  * ./bootstrap/coriolisEnv.py,
    ./bootstrap/coriolis2.sh:
    - Bug: 'lib64' instead of '64' under Linux.
    - New: guessOs() now detect FreeBSD 8.
    - Change: Remove support for Coriolis 1. No more --v2 option either, Coriolis2
        selected by default. Python paths also set by default.
2012-11-16 12:46:27 +00:00
Jean-Paul Chaput 8db2fd8ef6 * ./bootstrap:
- Bug: In ./cmake_modules/FindBootstrap.cmake, fix small message display
        typos. No 'IN LISTS' in forach call. Force variable lookup in
        SEARCH_SETUP_DIR in foreach summarizing the search path.
2012-03-08 10:29:27 +00:00
Jean-Paul Chaput 172f858329 Using lib64 on 64 bits.
Added Isis to the chams project.
2012-02-29 10:10:39 +00:00
Jean-Paul Chaput ce0b0a2b83 * ./bootstrap:
- Change: In coriolis2.sh, cannot reliably determine the path to a sourced
        script under bash. Hardwire the location to /soc/coriolis2.
2012-01-02 22:09:26 +00:00
Jean-Paul Chaput f1ba48f977 SoC install is in /soc/coriolis2/ 2011-10-19 19:45:57 +00:00
Jean-Paul Chaput 3d21206a23 * ./bootstrap:
- Change: In coriolisEnv.py, take into account the SoC installation
        configuration.
2011-10-11 10:23:04 +00:00
Damien Dupuis 7ed659641e execution rights were missing 2011-09-15 10:39:26 +00:00
Damien Dupuis 68a0219bd5 install buildCoriolis.py to bin so user can found it in /asim/coriolis2/bin/buildCoriolis2.py in default installation 2011-09-15 10:35:14 +00:00
Damien Dupuis 8bb398b88f Adding definition so compilation always use version 2 of boost/filesystem (and not v3 because our code is not compliant) 2011-08-22 08:40:46 +00:00
The Coriolis Project c2d8a58124 Added support for SL 6. 2011-06-28 10:49:59 +00:00
Damien Dupuis 18aadd65c5 Adding new SETUP_SVNH macro to generate svn.h file for a specific project 2011-05-17 12:29:28 +00:00
Jean-Paul Chaput 64c5e39423 * ./bootstrap:
- New: In coriolisEnv.py, support for Scientific Linux 6.
2011-04-12 20:36:00 +00:00
Jean-Paul Chaput 2318ac5b61 Added support for Scientific Linux 6. 2011-03-18 13:41:02 +00:00
Jean-Paul Chaput 19b8436da0 * <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.

  * ./bootstrap:
    - Change: In builCoriolis.py, detect not only when the X_TOP is not
        sets but also when it's sets to an empty value. In either case
        gives priority of the X_USER_TOP over the X_TOP.
2011-02-15 13:15:24 +00:00
The Coriolis Project 09a212cb64 Unset the temporary variables when done. 2011-02-09 17:00:36 +00:00
Jean-Paul Chaput d9fa15ac40 Recognize SoC context. 2011-02-09 16:48:07 +00:00
The Coriolis Project 8e0bd6d4b9 Bug corrections. 2011-02-09 16:40:49 +00:00
Jean-Paul Chaput e1751177e0 Environment helpers makes more educated guesses as to where to
find coriolis2. Three cases:
1/ System-wide : /usr
2/ SoC wide : /asim/coriolis2
3/ User defined. Either ~/coriolis-2.x or --root.
2011-02-09 15:47:27 +00:00
Jean-Paul Chaput df8f91b97d Separate Debian package in two: normal + devel.
Add a #!/bin/bash to coriolis2.sh to shut up debian/lintian.
2011-02-04 11:32:30 +00:00
Jean-Paul Chaput b4b77e5fdd Copy the copyright from the Debian package. 2011-02-03 10:34:43 +00:00
Jean-Paul Chaput ff9881a58a Package versioned libraries... 2011-02-02 23:46:36 +00:00
Jean-Paul Chaput d98f912827 Uses the "installed" doc. 2011-02-02 20:07:51 +00:00
Jean-Paul Chaput 12991f174f A hopefully correct license description. 2011-02-02 17:39:55 +00:00
Jean-Paul Chaput a50592266e Grrr. 2011-02-02 16:47:45 +00:00
Jean-Paul Chaput daaa33b523 Ship pyc & pyo. 2011-02-02 16:15:33 +00:00
Jean-Paul Chaput f69714e8f1 Fix the list of packaged projects in --rpm & --deb mode.
So I will not forgot one...
2011-02-02 15:42:41 +00:00
Jean-Paul Chaput cb59c2070d Correct the list of shipped files. 2011-02-02 15:35:54 +00:00
Damien Dupuis 4d3936fe3f Using BOOTSTRAP_TOP instead of CORIOLIS_TOP 2011-02-02 15:26:08 +00:00
Jean-Paul Chaput 5d4041ca3b Bad install.dir in spec file. 2011-02-02 14:49:56 +00:00
Jean-Paul Chaput 4dd83fb9a0 Uses the <build> rule of the Makefile when building in rpm. 2011-02-02 14:29:43 +00:00
Jean-Paul Chaput 65e658f12c Typo. 2011-02-02 14:09:40 +00:00
Jean-Paul Chaput 72b18733d0 Document buildCoriolis.sh command line options.
Put the debian original tarball at the right location.
Sets the SVN version on the fly in debian/changelog.
2011-02-02 14:08:12 +00:00
Jean-Paul Chaput 23a78697a6 changelog version :-( 2011-02-02 13:06:34 +00:00
Jean-Paul Chaput 1ce2186f3b Typo. 2011-02-02 13:05:51 +00:00
Jean-Paul Chaput 47483c0233 Printing what tool is being build in the Makefile. 2011-02-02 12:58:46 +00:00
Jean-Paul Chaput db7409465f Adds the orig file in the debbuild directory.
Problem of the changelog version number that must follow
the svn tag.
2011-02-02 12:56:49 +00:00
Jean-Paul Chaput e4f3d86553 Small adjustements. 2011-02-02 12:02:39 +00:00
Jean-Paul Chaput d13d4832e7 * ./bootstrap:
- New: "debian" directory holding the paraphernalia needed to create a
        Debian/Ubuntu package.
    - New: In buildCoriolis, add a Debian packaging method.
    - Change: In coriolis2.spec, the build/install procedure now makes uses of
        the top-level Makefile.
    - Change: In FindBoostrap, detection of the distribution type. Finally not
        needed but kept here, just in case. Based on "lsb_release".
    - Change: In FindPythonSitePackages, simplificate the detection of the Python
        site-package directory. No longer on-the-fly generate a python script.
2011-02-02 10:40:25 +00:00
Jean-Paul Chaput 179a9b4019 Revert version number to 1.0. The SVN version should suffice. 2011-01-28 13:10:43 +00:00
Jean-Paul Chaput 7fceed8ca2 A top level Makefile for Debian packaging.
Mimicking an autotool top-level Makefile.
2011-01-28 12:57:00 +00:00