Commit Graph

2474 Commits

Author SHA1 Message Date
Jean-Paul Chaput d6b01a557a Fix out-of-bound with short layers names in GdsDriver::GdsStream.
* Bug: In CRL::GdsDriver::GdsStream::operator<<(Cell*), when looking for
    layer names ending with ".pin", must also check that the string is
    at least 4 characters long.
2021-10-15 18:39:07 +02:00
Myrtle Shah 1dfa6aff67 Add missing "#include"s
Signed-off-by: Myrtle Shah <gatecat@chipflow.io>
2021-10-15 13:40:29 +01:00
Myrtle Shah 8d0faee896 cmake: Set policy needed for latest FindPython to work
Signed-off-by: Myrtle Shah <gatecat@chipflow.io>
2021-10-15 13:40:25 +01:00
Myrtle Shah 2d24efdb6c Bump minimum CMake version
The CMake version set was so old that obsolete policies were being
enabled and breaking FindPython. 2.8 should still be old enough not to
cause problems for any current users.

Signed-off-by: Myrtle Shah <gatecat@chipflow.io>
2021-10-15 13:38:38 +01:00
Myrtle Shah 03f0e51dfd hurricane: Remove '.tp_print' field
This field has been deprecated in Python 3 and no longer exists at all
in Python 3.9, causing a build error.

Signed-off-by: Myrtle Shah <gatecat@chipflow.io>
2021-10-15 12:51:10 +01:00
Myrtle Shah 9f9ad61ee7 lefdef: Don't move generated tab.hpp files
Signed-off-by: gatecat <gatecat@ds0.me>
2021-10-15 12:44:39 +01:00
Jean-Paul Chaput f58212eb96 Fix incorrect application of xTracksReservedMin in Katana.
* Bug: In KatanaEngine::annotateGlobalGraph(), the minimum track reservation
    was not applied correctly. Instead of adding the *difference* between
    the minimum and the current reservation, the minimum was simply added.
    Leading to too high reservation. And loss of control about what we
    were doing on the edges capacities...
      Really stupid.
2021-10-14 23:50:14 +02:00
Jean-Paul Chaput fd2c92f442 * Change: In cumulus/plugins.chip.powerplane, when the vertical rail is
large enough instead of creating one big via along the horizontal
    cell power lines, we create one big VIA at each end. To avoid to
    create too massive obstructions.
      But the thresold was too high for cmos45, leading to short with
    the clock tree trunk.
2021-10-09 22:51:48 +02:00
Jean-Paul Chaput 5ba4c35d63 Change back the pixel display threshold to 5 (downgrade my HiDPI display). 2021-10-09 22:43:11 +02:00
Jean-Paul Chaput b9a1395b4b Improve Coriolis root directory search in coriolisEnv.py.
* Change: In bootstrap/coriolisEnv.py, when all tries to locate the
    installation root in predefined locations, try the directory the
    script is installed in.
      This allows for a user to use an installation made in another
    user's account.
2021-10-09 22:39:06 +02:00
Jean-Paul Chaput 4a256f36b5 Refit the design after entering placement in cumulus/plugins.block.doPnR(). 2021-10-07 00:55:03 +02:00
Jean-Paul Chaput 069c654a24 Make "msxlib_uniform" the default gauge in cmos45. 2021-10-07 00:52:57 +02:00
Jean-Paul Chaput b2e265f73e Increase bloating in Etesian "nsxlib" profile, for ls180+cmos45. 2021-10-07 00:51:15 +02:00
Jean-Paul Chaput 66361fcf3d Correct catastrophic memory bloat in Anabatic::layerAssign() step.
* Bug: In Anabatic::_desaturate(), the set of invalidated GCells was never
    cleared between iterations of desaturated GCells. This was not a
    memory leak per se because, in the end, the set was freed. But it did
    induce a gigantic bloating in memory. This finally explain the strange
    slow down in that stage.
      Detected in ls180+cmos45.
* Change: In Anabatic::GCell, add a flag for each depth to avoid
    desaturating twice the same GCell (maybe not needed now that the
    bug is corrected, but it ensure a no-looping).
2021-10-07 00:48:47 +02:00
Jean-Paul Chaput 2cfd9a0c51 Increase the display threshold of GCell edges (visible at lower zoom). 2021-10-07 00:41:12 +02:00
Jean-Paul Chaput b1bc22f8e7 Bad computation of minimal area of stacked VIAs in Cumulus.
* Bug: In cumulus/plugins.block.configuration.GaugeConf.expandMinArea(),
    The minimal length of the segment intermediate wires where computed
    for the minimal area using an integer division ( // ), which is
    stupid for less than 1.0 values. They are real quantities at this
    point...
      This was making the DRC of ls180 failing.
2021-10-07 00:39:24 +02:00
Jean-Paul Chaput f77741db3f In GraphicKatanaEngine, restore normal display of edges occupancy. 2021-10-07 00:32:14 +02:00
Las Safin e69da9aeb7
Fix licenses 2021-10-06 16:07:46 +00:00
Jean-Paul Chaput b1befe5626 Added "--shell=<SHELL>" option to coriolisEnv.py. 2021-10-02 14:02:03 +02:00
Jean-Paul Chaput 36ce36f582 In block.iospecs.py, no more need to translate into UTF-8 in Python3. 2021-10-02 00:59:17 +02:00
Jean-Paul Chaput d288ca4d09 Forgotten debug message in SubNetNames::match(). 2021-10-02 00:25:52 +02:00
Jean-Paul Chaput 0e63168802 Regenerated whole doc (by mistake)... 2021-10-01 21:36:45 +02:00
Jean-Paul Chaput 61ab4b0da6 Cleanup of CMake, again. 2021-10-01 19:29:29 +02:00
Jean-Paul Chaput 2b9ca8abcc Updated PDFs, October 01, 2021 (19:23). 2021-10-01 19:23:27 +02:00
Jean-Paul Chaput c9bef61c3d Updated PDFs, October 01, 2021 (19:21). 2021-10-01 19:21:36 +02:00
Jean-Paul Chaput da84e5934a Updated PDFs, October 01, 2021 (19:19). 2021-10-01 19:19:23 +02:00
Jean-Paul Chaput 6c39d607d3 Updated PDFs, October 01, 2021 (19:17). 2021-10-01 19:17:52 +02:00
Jean-Paul Chaput f9d309a51e Updated PDFs, October 01, 2021 (19:14). 2021-10-01 19:14:41 +02:00
Jean-Paul Chaput fbc9551a3f Updated PDFs, October 01, 2021 (18:54). 2021-10-01 18:54:05 +02:00
Jean-Paul Chaput 0c0b426894 Follow up of PyModule_GetFilenameObject() modification. 2021-10-01 18:33:47 +02:00
Jean-Paul Chaput 7e9153f6f9 Update CMakeLists.txt to newer policies. 2021-10-01 18:31:53 +02:00
Jean-Paul Chaput e11bd98f52 Correct for various warnings appearing under gcc 8.3.0 (Debian 10).
Note: We don't suppress warnings due to unused variables or functions,
      as we may need them later or in debug mode...

* Change: In Hurricane::DBo::~DBo, add a noexcept(false) because
    constructed by default destructor of derived classes seems to
    loosen it. The right solution whould be to explicitely define
    all virtual destructors (too lazy for now).
* Change: In Viewer::Script, replace the deprecated
    PyModule_GetFilename() by PyModule_GetFilenameObject(), Unicode
    support again...
2021-10-01 16:12:28 +02:00
Jean-Paul Chaput c28fe3402b Take account of more Python site-packages.
* Change: In bootstrap/coriolisEnv.py, the script was looking to
    pythonX.Y (like "python2.7" or "python3.6") only. Now added
    "major" only directories like "python2" or "python3".
2021-10-01 00:30:10 +02:00
Jean-Paul Chaput a617cea0a5 Remove deprecated C++11 throw() specifications. 2021-10-01 00:26:58 +02:00
Jean-Paul Chaput 9852c76c2c Revert from std::regex to C POXIX regex.
* Bug: In Hurricane::Backtrace(), the std::regex supplied by gcc 4.8.5
    seems to be buggy. So, for now, to compile on my reference system,
    revert to C POSIX.
2021-09-30 20:06:48 +02:00
Jean-Paul Chaput 35c44f8b81 Typo in error message. 2021-09-30 20:00:24 +02:00
Jean-Paul Chaput 0d473e18c0 Fix crash in Anabatic::AntennaProtect.
* Bug: In Anabatic::AntennaProtect, if the diode cell exists *but* the
    maximum wire length for a diode is *not* defined (so zero) cancel
    the diode protection instead of making a divide by zero.
2021-09-30 19:59:28 +02:00
Jean-Paul Chaput 9c71ce8a03 Updated doc of the new Python/C++ template wrapper.
* Change: In Isobar3::PyWrapper, C++ exceptions where not catcheds,
    forgot to call exceptionWrapper().
* Change: In Isobar3, remove unused pyToC<>() flavor where T is a
    simple pointer and the argument is also a simple pointer, does
    not make sense.
2021-09-26 17:27:57 +02:00
Jean-Paul Chaput a53281cdb3 Updated PDFs, September 26, 2021 (17:17). 2021-09-26 17:17:03 +02:00
Jean-Paul Chaput ee06ba2932 Updated PDFs, September 26, 2021 (17:07). 2021-09-26 17:07:53 +02:00
Jean-Paul Chaput a7083f6063 Updated PDFs, September 26, 2021 (17:03). 2021-09-26 17:03:05 +02:00
Jean-Paul Chaput 43743940fa Updated PDFs, September 26, 2021 (16:55). 2021-09-26 16:55:18 +02:00
Jean-Paul Chaput 844db44ebf Rename pyTypePostModuleInit<> to pyTypePostInit<> (clearer). 2021-09-25 19:20:57 +02:00
Jean-Paul Chaput 16d1da053a Migration towards Python 3, stage 2: C++ template wrapper ready.
* New: In hurricane/configuration, the Python/C template wrapper has
    now all the needed features to mass-migrate Hurricane and the
    ToolEngines.
      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
    complete.
* 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...
2021-09-25 17:03:14 +02:00
Jean-Paul Chaput 3bd0dbfd24 Forgot to encode bytes read from file into string. 2021-09-19 23:35:51 +02:00
Jean-Paul Chaput 02777e127e Migration towards Python3, first stage: still based on C-Macros.
* 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
    review the code to update. Most of the time we want to use "//".
    We must never change to float for long that, in fact, represents
    DbU (exposed as Python int type).
  * execfile() must be replaced by exec(open("file").read()).
  * iter().__next__() becomes iter(x).__next__().
  * __getslice__() has been removed, integrated to __getitem__().
  * The formating used for str(type(o)) has changed, so In Stratus,
    have to update them ("<class 'MyClass'>" instead of "MyClass").
  * the "types" module no longer supply values for default types
    like str (types.StringType) or list (types.StringType).
    Must use "isinstance()" where they were occuring.
  * Remove the 'L' to indicate "long integer" (like "12L"), now
    all Python integer are long.
* Change in bootstrap:
  * Ported Coriolis builder (ccb) to Python3.
  * Ported Coriolis socInstaller.py to Python3.
  * Note: In PyQt4+Python3, QVariant no longer exists. Use None or
    directly convert using the python syntax: bool(x), int(x), ...
    By default, it is a string (str).
* Note: PyQt4 bindings & Python3 under SL7.
  * In order to compile user's must upgrade to my own rebuild of
    PyQt 4 & 5 bindings 4.19.21-1.el7.soc.
* Bug: In cumulus/plugins.block.htree.HTree.splitNet(), set the root
    buffer of the H-Tree to the original signal (mainly: top clock).
      Strangely, it was only done when working in full chip mode.
2021-09-19 19:41:24 +02:00
Las Safin fca22782a0
Remove unneeded input 2021-09-16 20:10:05 +00:00
Las Safin 8c21c6a35b
libresoc: Use recon experiment instead 2021-09-06 20:57:27 +00:00
Las Safin c3d10b21aa
Use older version of yosys for Libre-SoC 2021-09-05 18:48:19 +00:00
Las Safin 41274d6ab5
Make Libre-SoC almost work 2021-09-05 17:47:17 +00:00