Go to file
Jean-Paul Chaput f60739a8e0 Move back PyErrorWidget & PyCellViewer into viewer.
Script was needlessly including PyCellViewer.h it seems. Removed it.
This reverts commit 6963a0baa6a19f538e822d4b254b91123dd1dc66.
2023-10-10 00:58:27 +01:00
.github/workflows Add support for building with Meson 2023-10-06 16:50:35 +01:00
Seabreeze Move Script, PyErrorWidget and PyCellViewer into isobar to match namespace and resolve dependency order 2023-10-06 16:50:35 +01:00
_build_utils Initial test meson build 2023-10-06 16:50:35 +01:00
anabatic Fix linking/compile problems in the meson configuration. 2023-10-10 00:58:27 +01:00
bootstrap Add support for building with Meson 2023-10-06 16:50:35 +01:00
bora Fix linking/compile problems in the meson configuration. 2023-10-10 00:58:27 +01:00
crlcore Move back PyErrorWidget & PyCellViewer into viewer. 2023-10-10 00:58:27 +01:00
cumulus Fix linking/compile problems in the meson configuration. 2023-10-10 00:58:27 +01:00
documentation Fix linking/compile problems in the meson configuration. 2023-10-10 00:58:27 +01:00
equinox Add support for building with Meson 2023-10-06 16:50:35 +01:00
etesian Move back PyErrorWidget & PyCellViewer into viewer. 2023-10-10 00:58:27 +01:00
flute Fix linking/compile problems in the meson configuration. 2023-10-10 00:58:27 +01:00
foehn Move Script, PyErrorWidget and PyCellViewer into isobar to match namespace and resolve dependency order 2023-10-06 16:50:35 +01:00
hurricane Move back PyErrorWidget & PyCellViewer into viewer. 2023-10-10 00:58:27 +01:00
ispd Add a flag througout all the build system to manage manylinux (PyPI). 2023-07-03 19:54:01 +02:00
karakaze Add support for building with Meson 2023-10-06 16:50:35 +01:00
katana Move back PyErrorWidget & PyCellViewer into viewer. 2023-10-10 00:58:27 +01:00
lefdef Meson: lefdef: fix includes for generated tab.h 2023-10-06 16:50:35 +01:00
nix Remove OpenMP flags in nix build 2023-06-08 17:11:48 +02:00
oroshi Add support for building with Meson 2023-10-06 16:50:35 +01:00
solstice Add support for building with Meson 2023-10-06 16:50:35 +01:00
stratus1 Add a flag througout all the build system to manage manylinux (PyPI). 2023-07-03 19:54:01 +02:00
subprojects Add support for building with Meson 2023-10-06 16:50:35 +01:00
tramontana Move Script, PyErrorWidget and PyCellViewer into isobar to match namespace and resolve dependency order 2023-10-06 16:50:35 +01:00
tutorial Move Script, PyErrorWidget and PyCellViewer into isobar to match namespace and resolve dependency order 2023-10-06 16:50:35 +01:00
unicorn Move back PyErrorWidget & PyCellViewer into viewer. 2023-10-10 00:58:27 +01:00
unittests fix smoketests 2023-10-06 16:50:35 +01:00
.gitignore Add def generated file to gitignore 2023-10-05 10:25:29 +02:00
.gitlab-ci.yml Upload wheels in CI 2023-02-21 16:10:55 +01:00
.gitmodules Add support for building with Meson 2023-10-06 16:50:35 +01:00
COPYRIGHT.rst At last setup a COPYRIGHT.rst and LICENSE.rst files. 2021-10-29 15:03:03 +02:00
Dockerfile-manylinux Add support for building with Meson 2023-10-06 16:50:35 +01:00
INSTALL.rst Add an INSTALL.rst, along with some instructions for Mac 2023-09-29 21:42:45 +01:00
LICENSE.rst At last setup a COPYRIGHT.rst and LICENSE.rst files. 2021-10-29 15:03:03 +02:00
Makefile Makefile now use pdm & meson/ninja. 2023-10-10 00:58:27 +01:00
README.rst Build doc pelican (#11) 2023-08-01 15:43:21 +02:00
SUPPORT.rst Add SUPPORT.rst file 2021-12-09 22:32:02 +01:00
builder.py CMake build system fixes to build on Mac OSX 2023-09-29 21:42:45 +01:00
compat.nix nix: add compatibility files 2021-10-26 22:30:34 +00:00
default.nix nix: add compatibility files 2021-10-26 22:30:34 +00:00
flake.lock Update repo references in code to point to github 2023-07-16 19:24:53 +00:00
flake.nix Update repo references in code to point to github 2023-07-16 19:24:53 +00:00
meson.build Add support for building with Meson 2023-10-06 16:50:35 +01:00
meson.options Add support for building with Meson 2023-10-06 16:50:35 +01:00
poetry.lock Build doc pelican (#11) 2023-08-01 15:43:21 +02:00
pyproject.toml Remove doxygen dependency and set minimum versions for deps. 2023-10-10 00:58:27 +01:00
shell.nix nix: add compatibility files 2021-10-26 22:30:34 +00:00

README.rst

.. -*- Mode: rst -*-

|Python wheel builds|

.. |Python wheel builds| image:: https://github.com/lip6/coriolis/actions/workflows/wheels.yml/badge.svg
   :target: https://github.com/lip6/coriolis/actions/workflows/wheels.yml

.. image:: documentation/content/images/common/Coriolis-logo-blue-4.png
   :alt:   Coriolis Logo
   :align: center
   :width: 10%


======================
Coriolis Open EDA Tool
======================

Coriolis is a free database, placement and routing tool for VLSI design.

This project is hosted at: https://github.com/lip6/coriolis

Main documentation is available at: https://coriolis.lip6.fr/

Development discussion can be found `on our Matrix Channel <https://matrix.to/#/#coriolis:matrix.org>`_ and in our `GitHub Discussions <https://github.com/lip6/coriolis/discussions>`_.

Coriolis is part of a set of three repositories that are closely relateds.

* Alliance

  A venerable EDA toolchain, working only on symbolic layout. Some of it's
  checking tools (LVS, DRC) are used for the regression tests in Alliance Check Toolkit.

  https://github.com/lip6/alliance

* Alliance Check Toolkit

  A wide set of examples of designs and scripts to use by Coriolis.

  https://github.com/lip6/alliance-check-toolkit


Purpose
=======

Coriolis provides several tools to perform the layout of VLSI circuits.  Its
main components are the Hurricane database, the Etesian placer and the Katana
router, but other tools can use the Hurricane database and the parsers
provided.

The user interface ``cgt`` is the prefered way to run Coriolis, but all
Coriolis tools are Python modules and thus scriptable.


Building Coriolis
=================

To build Coriolis, ensure the following prerequisites are met:

* A C++11 compliant compiler.
* Python 3.
* make or ninja.
* cmake.
* bzip2
* boost.
* bison & flex.
* Qt 5 & Qt 5 Svg.
* Qwt
* libxml2.
* RapidJSON, http://rapidjson.org/ .
* Eigen 3,  http://eigen.tuxfamily.org .
* Lemon, http://lemon.cs.elte.hu/trac/lemon .
* doxygen
* pelican

The build system relies on a fixed directory tree from the root
of the user currently building it. Thus first step is to get a clone of
the repository in the right place. Proceed as follow:

.. code-block:: bash

   ego@home:~$ mkdir -p ~/coriolis-2.x/src/
   ego@home:~$ cd ~/coriolis-2.x/src
   ego@home:src$ git clone --recurse-submodules https://github.com/lip6/coriolis
   ego@home:src$ cd coriolis

Then, build the tool:

.. code-block:: bash

   ego@home:coriolis$ make install

Coriolis gets installed at the root of the following tree: ::

    ~/coriolis-2.x/OS.DISTRIB/Release.Shared/install/

Where ``OS`` is the name of your operating system and ``DISTRIB`` your
distribution (mileage may vary).


Using Coriolis
==============

Prior to using Coriolis, you need to setup your UNIX environment by running
the following command:

.. code-block:: bash

    ego@home:~$ eval `~/coriolis-2.x/OS.DISTRIB/Release.Shared/install/etc/coriolis2/coriolisEnv.py`

Then you can launch the GUI:

.. code-block:: bash

    ego@home:~$ cgt -V