Commit Graph

54 Commits

Author SHA1 Message Date
Jean-Paul Chaput 1b7bd9de36 Happy new year 2016! 2016-01-21 00:41:19 +01:00
Jean-Paul Chaput ed557d9027 Added support for "same layer" dogleg. Big fix for pad routing.
* Change: In Knik, in Vertex, add a "blocked" flag to signal disabled
    vertexes in the grid (must not be used by the global router).
      Modificate the Graph::getVertex() method so that when a vertex
    is geometrically queried, if is a blocked one, return a non-blocked
    neighbor. This mechanism is introduced to, at last, prevent the
    global router to go *under* the pad in case of a commplete chip.
* New: In Katabatic, in AutoSegment, a new state has been added: "reduced".
    A reduced segment is in the same layer as it's perpandiculars.
    To be reduced, a segments has to be connected on source & target to
    AutoContactTurn, both of the perpandiculars must be of the same layer
    (below or above) and it's length must not exceed one pitch in the
    perpandicular direction.
      To reduce an AutoSegment, call ::reduce() and to revert the state,
    call ::raise(). Two associated predicates are associated:
    ::canReduce() and ::mustRaise().
      Note: No two adjacent segments can be reduced at the same time.
* Bug: In Katabatic, in GCellTopology, add a new method ::doRp_AccessPad()
    to connect to the pads. Create wiring, fixed and non managed by
    Katabatic, to connect the pad connector layer to the lowest routing
    layers (depth 1 & 2). The former implementation was sometimes leading
    to gaps (sheared contact) that *must not* occurs during the building
    stage.
      Remark: This bug did put under the light the fact that the initial
    wiring must be created without gaps. Gaps are closed by making doglegs
    on contacts. But this mechanism could only work when the database if
    fully initialised (the cache is up to date). Otherwise various problems
    arise, in the canonization process for example.
* New: In Katabatic, in AutoContactTerminal::getNativeConstraintBox(),
    when anchored on a RoutingPad, now take account the potential rotation
    of the Path's transformation. Here again, for the chip's pads.
* New: In Kite, support for reduced AutoSegment. TrackSegment associateds
    to reduced AutoSegment are *not* inserted into track to become
    effectively invisibles. When a segment becomes reduced, a TrackEvent
    is generated to remove it. Conversely when it is raised a RoutingEvent
    is created/rescheduled to insert it. All this is mostly managed inside
    the Session::revalidate() method.
* New: In Kite, in KiteEngine::createGlobalGraph(), in case of a chip,
    mark all global routing vertexes (Knik) that are under a pad, as blockeds.
* Bug: In Cumulus, in PadsCorona.Side.getAxis(), inversion between X and
    Y coordinate of the chip size. Did not show until a non-square chip
    was routed (i.e. our MIPS R3000).
* Change: In Stratus1, in st_placement.py add the ClockBuffer class for
    backward compatibility with the MIPS32 bench. Have to review this
    functionnality coming from the deprecated placeAndroute.py.
      In st_instance.py, no longer creates the Plug ring of a Net.
    In my opinion it just clutter the display until the P&R is called.
    Can re-enable later as an option (in Unicorn).
* Change: In Unicorn, in cgt.py, more reliable way of loading then running
    user supplied scripts. Borrowed from alliance-checker-toolkit doChip.py	.
2015-08-16 23:29:28 +02: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 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 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 7296dcd6fb Make the Python interface closely mirroring the C++ one.
* Change: In Isobar, the Python interface was not exactly mirroring the
    C++ one, now it is the case. The Python code should look likes almost
    exactly like the C++ one, the only differences remaining being due
    to the languages respective syntaxes. Note that in the case of
    constructor functions, it leads to a slightly longer notation in
    Python that it could have been (mimic the ".create()" static
    member). Main modifications:
    1. Mirror the static constructor syntax with create():
          Cell( ... )   ==>  Cell.create( ... )
    2. Correct hierarchy for constants in Instance, Net, Pin
       & Transformation. For example:
          Hurricane.PlacementStatusFIXED
                     ==> Hurricane.Instance.PlacementStatus.FIXED
          Hurricane.OrientationID
                     ==> Hurricane.Transformation.Orientation.ID
          Hurricane.TypeLOGICAL  ==>  Hurricane.Net.Type.LOGICAL
          Hurricane.DirectionIN  ==>  Hurricane.Net.Direction.IN
* Change: In CRL Core, correction to match the improved Python API
    in the configutation helpers.
* Change: In Cumulus, correction to match the improved Python API.
* Change: In Stratus, correction to match the improved Python API.
* Change: In Documenation, update for the new Python interface
    (both user's guide & examples).
* Note: We must port those changes into Chams for it to continue
   to run.
* Change: In Documenation, update the Python script support part.
2014-06-29 14:26:59 +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 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 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
Roselyne Chotin c5270ec605 correct bug in constant generation 2013-08-02 12:36:01 +00:00
Roselyne Chotin c09ab25abc - add int parameter for constant insteed of only string
- add hexa and octal for representation
2013-04-30 08:01:42 +00:00
Jean-Paul Chaput 5f12dd5e28 Uses the new configuration system for the cell mapping. 2013-03-04 15:36:18 +00:00
Jean-Paul Chaput 4b5a3ef5d2 * All Tools:
- New: Added FreeBSD/Ubuntu patches from Otacilio De Araujo
       (<otaciliodearaujo@gmail.com>).

  * ./stratus/src/stratus.py
    - Change: Configuration is now read through the new python C/API
        system. No more st_config.
2012-12-03 08:31:26 +00:00
Jean-Paul Chaput da88363881 * ./stratus:
- Change: Busses are now created in "downto" order instead of "to".
2012-11-16 12:56:08 +00:00
Roselyne Chotin bb29bc3057 test the problem of parameters on each net to cat 2012-11-13 20:38:59 +00:00
Roselyne Chotin 94e57d651f add possibility to use list of net in Cat function 2012-11-13 19:37:00 +00:00
Roselyne Chotin 708aca610e change names to be more compact or precise 2012-11-13 19:05:27 +00:00
Roselyne Chotin 773a4b7d97 forget a lower 2012-08-20 10:02:30 +00:00
Roselyne Chotin 827b3bd400 change simulation options 2012-08-20 08:29:31 +00:00
Roselyne Chotin 33eca48c11 return in precedent state 2012-08-16 17:17:21 +00:00
Roselyne Chotin 1917f64d56 correct bug in lower of net's name 2012-08-10 15:00:08 +00:00
Roselyne Chotin f2849cb25a documentation for stimuli 2012-08-09 16:41:47 +00:00
Roselyne Chotin 27b2d1e045 update to take account of the configuration file 2012-08-09 16:37:18 +00:00
Roselyne Chotin 4e0140d9ff take account of multi outputs cell as FullAdder to compute weight 2012-08-09 16:34:55 +00:00
Roselyne Chotin f2e151842e take account of multi outputs cell as FullAdder to compute weight 2012-08-09 16:33:48 +00:00
Roselyne Chotin a5bfc0e816 treatment of negative constant 2012-08-09 16:31:36 +00:00
Roselyne Chotin 392accdf27 export and simul with standard VHDL 2012-03-09 07:50:55 +00:00
Roselyne Chotin ab008d2ad9 add a configuration file 2012-03-09 07:50:05 +00:00
Roselyne Chotin 4cdfa6391e add a configuration file 2012-03-09 07:49:45 +00:00
Roselyne Chotin 6ca8bdb4e8 take account of inout ports 2012-03-08 15:23:43 +00:00
Roselyne Chotin b6715679c2 new stimuli generation to be compatible with ghdl 2012-03-08 15:21:20 +00:00
Sophie Belloeil 0ec480cc0c MAJ d un message d erreur pour arreter de chercher 500 ans ce qui ne va pas quand on a oublie l existance du nouveau fichier de config .... 2011-10-03 11:57:26 +00:00
Sophie Belloeil 3801d65cdc (suite)
Gestion de la fonction d'evaluation de la consommation

    pour memoire : stratus utilise toujours la variable STRATUS_MAPPING_NAME
2011-02-16 13:59:03 +00:00
Sophie Belloeil 72e72d8eab essai 2011-02-16 13:57:46 +00:00
Jean-Paul Chaput 64b632aa23 * <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 13:16:35 +00:00
Jean-Paul Chaput 4d18ce2d10 * <All Tools>/CMakeLists.txt:
- Bug: During the packaging stage, DESTDIR must be appended to the
        pathes prepended to CMAKE_MODULE_PATH.
  * ./stratus:
    - Bug: In dpgen_RF1.py, small typo for the python executable if the module
        is to be run stand-alone. Never show in normal uses.
    - Bug: In ROM_encours & dpen_ROM, correct bad indentation.
2011-02-02 11:44:55 +00:00
Jean-Paul Chaput 5273be039e * ./stratus:
- Bug: In doc/stratus, correct rendering of images under LaTeX & HTML. Latex2HTML
        requires the file extension (.png) to be present while latex don't want them.
        Build alternate sources with the \latexhtml macro so both are happy.
2011-01-10 16:03:17 +00:00
Jean-Paul Chaput dbacc42f72 Forgot this one. 2011-01-10 15:28:00 +00:00
Jean-Paul Chaput f1fe4248a2 * ./stratus:
- Change: In doc, cleanup & update documentation, synch with SoC style, remove
        duplicated files.
2011-01-10 15:23:48 +00:00
Jean-Paul Chaput ad00c58ffe * ./stratus:
- Change: In doc, activate installation of stratus, dpgen & pattern documentation.
2011-01-09 18:28:00 +00:00
Jean-Paul Chaput 0e09dee142 * ./stratus1:
- Change: In st_model, separate View() in two methods, one that load the
        model into the editor (still named View()) and a Breakpoint() method
        for putting true stop points. The Breakpoint() method calls the
        View() method. Will simplificate my explanations to the students...
2010-12-15 15:25:45 +00:00
Jean-Paul Chaput 802d80e850 * ./stratus:
- Change: Add support for chip-level nets. POWER/GROUND/CLOCK as signals.
    - Bug: Reorder import so that CRL is always imported first so that the
        problem of duplicated type_info RTTI doesn't show.
2010-11-16 14:09:53 +00:00
Sophie Belloeil 1ee7622af9 Gestion of vdd/vss step two ... 2010-09-06 11:22:30 +00:00
Sophie Belloeil afe83178ae Remove of fulladder.vst, step two ... 2010-09-06 11:15:41 +00:00
Sophie Belloeil 5cf88750bf No more use of "fulladder.vst" file : parser takes into account sxlib's fulladder.
rep "lib" therefore removed.

    ! .xml environment files have to be modified to take this into account !
2010-09-06 09:26:31 +00:00
Sophie Belloeil 8e53a1bc36 No more Error when no vdd/vss in a cell, back to a warning
Be careful when using iter(...).next() : causes a stopException if no element, the exception has to be catched if only un warning is wanted
2010-09-06 09:12:24 +00:00
Sophie Belloeil cce839d3f0 GetString -> getString ... 2010-09-02 14:54:48 +00:00
Sophie Belloeil cb4e538b78 No more setup_apple() macro
raise in Python > 2.5 do not accept string anymore
2010-07-22 14:33:55 +00:00
Jean-Paul Chaput e736739eef * All Main Python Modules:
- Change: New problem identified with the Python modules: each module seems
        to be built as a complete binary, so all the static C++ initializers are
        allocated in each module. In particular the C++ tree inheritance is built
        for *each* module so we cannot longer uses the typeid() comparisons
        across modules... It was used by boost::program_options to perform is
        casts with boost::any and was starting throwing exceptions because of
        bad casts. program_option was first initialized in "configuration"
        first included by PyViewer then in PyCRL (see Utilities.cpp).
          A first solution is to re-order the import of Python modules in
        stratus1/st_model so that CRL is imported first.
          The second is to not not link "configuration" with boost::program_option
        as only the binary vlsisapd-conf-editor needs it.
          That is a serious problem of which we must be aware and can cause further
        strange behaviors.
          Debug code used to diagnostic has been kept commented in the sources a
        it may be needed again :-(
          This behavior do not affect our singletons because they are part of
        dynamic libraries that seems to be correctly shared between the various
        Python modules.

  * ./stratus1,
    ./cumulus:
    - Change: Replace calls to CRL.getAllianceFramework() by CRL.AllianceFramework.get().
2010-07-17 10:34:21 +00:00