Commit Graph

28 Commits

Author SHA1 Message Date
Jean-Paul Chaput c9fe5713cf Adding Tutorial to meson build. 2023-10-10 00:58:27 +01:00
Jean-Paul Chaput a56d9197bc Adding Tramontana to meson build. 2023-10-10 00:58:27 +01:00
Jean-Paul Chaput 1693241302 Fix linking/compile problems in the meson configuration.
* The Hurricane python module was not compiled at all. The name of
  Python module wrappers is a bit inconsistent:
     isobar   -->  Hurricane
     crlcore  -->  CRL
     anabatic -->  Anabatic
     katana   -->  Katana
* Use "py_mod_deps" and not only "py_deps" so the __PYTHON_MODULE__
  flag is used for py.extension_module().
* In cumulus, the "cumulus" directory is not used for the installation
  in site-packages/coriolis/.
* In designflow/pnr.py, temporarily disable Tramontana & Tutorial,
  until they are ported to meson.
2023-10-10 00:58:27 +01:00
Rob Taylor 710117f566 Add support for building with Meson
This is quite a large change that adds meson build files and tweaks
wheel building to use meson and meson-python
2023-10-06 16:50:35 +01:00
Jean-Paul Chaput 1ae4eb71e2 Fix the support if "iolib" I/O pad.
In CoreToChip, the "iolib" I/O pad library an alternative to the "cmos"
one. "cmos" uses the pxlib library while iolib uses a symbolic abstract
version of the C4M (real) I/O pad.
  The initialization is a bit split as the "cmos" library are part of
Alliance, while "iolib" is in alliance-check-toolkit. So "iolib" is
added at designflow.technos.setupCMOS().
  Setup additional configuration parameter directly in:
    core2chip.niolib.CoreToChip.__init__().
2023-09-28 00:18:10 +02:00
Jean-Paul Chaput 9274c21c14 Support for gf180mcu native I/O pads.
* Bug: In CRL/technos.node180.gf180mcu_c4m.iolib.py, remove the VDD and
    VSS ring terminals in the pad as only *some* of the have it.
    Assume that it is a bug from GF. The power rail will still be ok
    as it connect by abutment (with the filler & other I/O pads).
* New: In cumulus.plugins.block.configuration.py, added support for
    iterable I/O pad specifications in ioPads argument.
* New: In cumulus.plugins.core2chip.core2chip.py, add support for
    any number of control signals on I/O pads. Not fully implemented
    yet, as we only allow to hard-wire them either to one or zero.
      Raise an error if _connect() fails to find a master net, so
    we don't fail strangely later...
2023-09-25 23:50:20 +02:00
Jean-Paul Chaput ad53372253 Fix stupid mistake in designflow.pnr.doTask(), not executing script. 2023-09-21 12:18:18 +02:00
Jean-Paul Chaput 6fb0215742 Add the capability to pass a topName to the P&R script in designflow.pnr 2023-09-19 17:51:06 +02:00
Jean-Paul Chaput 8f69fa668d More trials on SystemVerilog to Verilog translators.
* New: In designflow.surelog, support for the Synlig Surelog/UHDM plugin
    for Yosys.
* Fix: In designflow.svase, remove the transient file "slang-args.txt".
* Change: In designflow.yosys, remove the direct SystemVerilog support
    that is delegated to Surelog and just load the resulting UHDM.
      Merge with yosysnp and automatically detect if we can load the
    Python plugin or go through a script.
2023-09-19 16:01:00 +02:00
Jean-Paul Chaput 4398770432 Add SystemVerilog support to designflow.yosys. Merge with YosysNp.
* New: In designflow.yosys, add support to load SystemVerilog with the
    synlig plugin (CHIPS Alliance).
      Integrate back the "non-Python" version of the task. Now switch
    automatically between Python & Non-Python based on the availability
    of the plugin. Also select between "yosys" & "yowasp-yosys".
* Change: In svase & sv2v, suppress the requirement of the *first*
    dependency file to be used as the default target. Now use the
    "top module" argument.
2023-09-16 18:12:10 +02:00
Jean-Paul Chaput 662b0124b8 Add partial support for SVase and sv2v to the DesignFlow. 2023-08-31 16:14:51 +02:00
Jean-Paul Chaput ef57ed9da1 Add support for GF180MCU, borrowed from Chips4Makers.
Original source:
    https://gitlab.com/Chips4Makers/c4m-pdk-gf180mcu.git
Duplicated because I needed to do some patches and combine it with
the vendor I/O pads.
2023-08-31 16:14:08 +02:00
Jean-Paul Chaput 947026cced Add technology description for the new LSxLib symbolic layout. 2023-07-14 12:33:03 +02:00
Jean-Paul Chaput 014ec72652 First merge of coloquinte2 & tramontana branches.
Needed to merge thoses two branches as I needed to to uses features
from each other to implement GF180MCU.
2023-06-25 18:11:18 +02:00
Jean-Paul Chaput d019c6aab5 In designflow, re-export LD_LIBRARY_PATH only if there is an ALLIANCE_TOP. 2023-06-25 11:53:26 +02:00
Jean-Paul Chaput 04410f1cc2 Added support for GF180MCU, part 1.
* New: In LefImport::LefParser, add support for LEF Polygons that are
    translated into Hurricane Rectilinears.
* Change: In LefImport::setMergeLibrary(), the default behavior for the
    LEF parser is to create a new separate library under LEF/<lib_name>
    for each file. But if the various cells are put each one in it's own
    cell, this is suitable. So we can now set a library beforehand into
    which they will be all put.
* New: in CRL/technos.node180.gf180mcu, configuration files for the
    GF180MCU open PDK.
* New: in cumulus/designflow.technos, added a setupGF180MCU_GF() to
    initialize the GF PDK.
2023-06-22 14:13:19 +02:00
Gabriel Gouvine 4fe1436e1f Remove uniform density option, replaced by densityVariation 2023-06-20 12:18:06 +02:00
Jean-Paul Chaput 21eedbcc2b Change in strategy for guessing Alliance top cells directory.
* In cumulus.designflow.technos.setupCMOS(): export back the guessed
    ALLIANCE_TOP *before* importing technos.symbolic.cmos so it is
    used for the CELLS_TOP. This avoid defaulting to /soc/alliance
    which does exists only on LIP6 computers...
2023-05-28 15:31:47 +02:00
Jean-Paul Chaput e5d9c8808b Reduce the default pixel threshold to 5. 2023-03-26 21:12:49 +02:00
Jean-Paul Chaput 090c13663e Create stub for Tramontana, reimplementation of the extractor/LVX. 2023-03-16 15:06:11 +01:00
Jean-Paul Chaput 1e8c304ac5 Fix: designflow/klayout.py rule forgot to add targets. 2023-03-07 11:52:52 +01:00
Jean-Paul Chaput 842c2dfffc Late import of pyosys to not block if N/A in designflow/yosys.py. 2023-03-06 14:58:39 +01:00
Jean-Paul Chaput 3fdef7aa8d Remove deprecated Kite reference in designflow/pnr.py. 2023-03-03 15:40:42 +01:00
Jean-Paul Chaput 50937d69c7 Add basic yosys (nopy), klayout scripts and command support to designflow.
* New: In cumulus.designflow: add yosysnp to manage Yosys without
    Python support enabled.
      Add klayout support for running scripts in batch mode.
      Add generic system command support.
* Change: In cumulus.designflow.task.TaskFlow, systematically
    convert pathes (str) into pathlib.Path in targets and depends.
* New: In cumulus.designflow.clean.Clean, add cleaning by glob.
2023-03-01 23:57:55 +01:00
Jean-Paul Chaput 1557d613ae Comprehensive reorganisation of the Python part of Coriolis.
* Move all Python stuff under a common Python namespace "coriolis".
* Instead of having a series subtrees for each tool, integrate
  everything in one common tree. So now, all components can be
  located either with an absolute path from "coriolis" or, inside
  cross-reference themselves through relatives imports.
* As a consequence, we only need to add ".../site-packages/coriolis/"
  to the PYTHONPATH, and not a whole bunch of subdirectories.
  And nothing, if installed in-system.
* The tree of free technologies configuration files is also moved
  below "coriolis/technos" instead of "/etc".
* Supressed "cumulus" level for the plugins.
* All python modules are rewritten using relative imports except
  for the configuration files that uses absolute import as they
  can be cloned outside of the tree to serve as templates.

* Change: In boostrap/FindPythonSitePackages, include "/coriolis" in
    Python_CORIOLISARCH and Python_CORIOLISLIB.
      Provide a Python_SITELIB *without* "/coriolis" appended.
* Change: In cumulus/plugins/__init__.loadPlugins(), must prefix modules
    read in the plugins directory by "coriolis.plugins.". No longer need
    to add their path to sys.path.
* Change: In crlcore/python/technos/nodeX/*/devices.py, the scripts of
    the layouts generators must be prefixed by "coriolis.oroshi.".
* Change: In CRL::System CTOR, no longer add the pathes of the various
    plugins to sys.path. Only "site-packages/coriolis/".
* New: In Utilities::Path::toPyModePath(), new method to convert a
    filesystem path into a python module path.
      Examples:
        "coriolis/plugins/block"    --> "coriolis.plugins.block".
        "coriolis/plugins/rsave.py" --> "coriolis.plugins.rsave".
* Change: In katanaEngine::_runKatanaEngine(), rename the hook script
    initHook.py. No longer need to modify sys.path.
* Change: In BoraEngine::_runBoraEngine(), rename the hook script
    initHook.py. No longer need to modify sys.path.
* Change: In UnicornGui::_runUnicornInit(), rename the hook script
    initHook.py. No longer need to modify sys.path.
* Change: In cumulus.plugins.chip.constants, put the constants
    outside __init__.py to avoid a loop at initialization.
2023-02-27 22:14:32 +01:00
Jean-Paul Chaput 3d9e86303e Final deprecation of Katabatic, Knick & Kite. 2023-02-21 17:04:38 +01:00
Jean-Paul Chaput bdb0091043 Just a little indentation for my autistic self. 2023-01-09 09:21:56 +01:00
Jean-Paul Chaput e590400ebb Add DoIt base design flow support. In full replacement of Makefiles. 2022-12-31 15:01:37 +01:00