1. 09 Oct, 2021 3 commits
  2. 06 Oct, 2021 7 commits
  3. 02 Oct, 2021 1 commit
  4. 01 Oct, 2021 13 commits
  5. 30 Sep, 2021 5 commits
  6. 26 Sep, 2021 5 commits
  7. 25 Sep, 2021 2 commits
    • Jean-Paul Chaput's avatar
    • Jean-Paul Chaput's avatar
      Migration towards Python 3, stage 2: C++ template wrapper ready. · 16d1da05
      Jean-Paul Chaput authored
      * New: In hurricane/configuration, the Python/C template wrapper has
          now all the needed features to mass-migrate Hurricane and the
            The new Hurricane module is named Hurricane3 so it does not
          collides with the old one which is still used. Will do the
          same for all ToolEngines Python wrappers until migration is
      * New: In unittests/python/, create very basic unit tests for the
          Configuration & Hurricane new template wrapper.
          Note: It is almost impossible to use valgrind on them because
                it doesn't recognize correctly Python allocation mechanism.
      	  To make it work, both valgrind & Python needs to be
      	  recompiled with special options...
  8. 19 Sep, 2021 2 commits
    • Jean-Paul Chaput's avatar
    • Jean-Paul Chaput's avatar
      Migration towards Python3, first stage: still based on C-Macros. · 02777e12
      Jean-Paul Chaput authored
      * New: Python/C++ API level:
        * Write a new C++/template wrapper to get rid of boost::python
        * The int & long Python type are now merged. So a C/C++ level,
          it became "PyLong_X" (remove "PyInt_X") and at Python code
          level, it became "int" (remove "long").
      * Change: VLSISAPD finally defunct.
        * Configuration is now integrated as a Hurricane component,
          makes use of the new C++/template wrapper.
        * vlsisapd is now defunct. Keep it in the source for now as
          some remaining non essential code may have to be ported in
          the future.
      * Note: Python code (copy of the migration howto):
        * New print function syntax print().
        * Changed "dict.has_key(k)" for "k" in dict.
        * Changed "except Exception, e" for "except Exception as e".
        * The division "/" is now the floating point division, even if
          both operand are integers. So 3/2 now gives 1.5 and no longer 1.
          The integer division is now "//" : 1 = 3//2. So have to carefully...
  9. 17 Jul, 2021 1 commit
    • Jean-Paul Chaput's avatar
      Disable BFD support by default. · f1668cec
      Jean-Paul Chaput authored
      * Change: In <tool>/CMakeLists.txt, add an USE_LIBBFD option to
          enable the link against the BFD library. Latest versions seems
          to have changed their API.
      * Change: In bootstrap/ccp.by & builder/Builder.py, add an option
          "--bfd" (and self._bfd) to enable BFD support.
  10. 01 Jul, 2021 1 commit
    • Jean-Paul Chaput's avatar
      Add management for highly loaded leafs of H-Trees. · 3687ca80
      Jean-Paul Chaput authored
      In the LS180, probably due to the implementation of a small RAM
      with DFFs, some leaf of the clock tree (H-Tree) got heavily
      loaded (around 80 DFFs sinks). Implement an option that allow
      the leaf of the QuadTree to use three buffers instead of one.
      The sinks are partitionned using their angle from the center
      of the leaf (trigonometric direction). CChoose the bigger angle
      gaps to perform the split.
      * Change: In Cumulus/plugins.block.configuration.GaugeConf, in
           getNearestHorizontalTrack() and getNearestVerticalTrack() add an
           offset argument to shift the position of the requested track
           by a certain amount.
      * Change: In Cumulus/plugins.block.configuration.GaugeConf, in
          createHorizontal(), add a flag to make the source end of the
          segment to "stick out". Useful when connecting to a stacked
          VIA top, but using a lower layer that can be shifted.
      * New: In Cumulus/plugins.block.spares.Spares, BufferPool & QuadTree,
          add support for selection and management of multiple buffers at
          the same time. Basically returns a list of selected buffer
          instances instead of just one instance.
            Added HEAVY_LEAF_LOAD flag to Spares. To be used by all tools
          classes that makes use of it.
            Added QuadTree.runselect(), be sure to call it between different
          H-Tree operations, otherwise results will be strange.
      * New: In Cumulus/plugins.block.htree.HTree, in case of heavy leaf
          load, in the leaf of the tree, allocate three buffers instead
          of one. Select them to form a triangle around the main one.
          That is, use (i,j), (i+1,j) and (i,j+1).
            Added a HTree._connectLeaf() to share the handling of the child
          buffer connexions. Whether they are leaf of not and heavy or not.
      * Change: Cumulus/plugins.block.Block, expand HTree support to
          manage the HEAVY_LEAF_LOAD flag.