Skip to content

xobs/coriolis

Repository files navigation

Coriolis README

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

Purpose

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

The user interface <cgt> is the prefered way to use Coriolis, but all Coriolis tools are Python modules and thus scriptables.

Documentation

The complete documentation is available here, both in pdf & html:

./documentation/UsersGuide/UsersGuide.html
./documentation/UsersGuide/UsersGuide.pdf

The documentation of the latest stable version is also available online. It may be quite outdated from the devel version.

https://soc-extras.lip6.fr/en/coriolis/coriolis2-users-guide/

Building Coriolis

On Ubuntu 18.04, install the necessary packages:

sudo apt install cmake libxml2-dev python3-dev flex bison \
                 libboost-python-dev libboost-program-options-dev \
                 libboost-regex-dev libboost-wave-dev \
                 libqt4-dev liblemon-dev libbz2-dev rapidjson-dev \
                 libgtk2.0 \
                 alliance \
                 doxygen texlive-font-utils latex2html texlive-lang-french \
                 python3-docutils texlive-fonts-extra

The build order is important. The individual programs do not yet define their interdependencies via cmake. This is a bug that is being worked on. For now, build modules in this order:

  1. vlsisapd

  2. coloquinte

  3. hurricane

  4. crlcore

  5. cumulus

  6. equinox

  7. knik

  8. katabatic

  9. kite

  10. etesian

  11. nimbus

  12. metis

  13. mauka

  14. solstice

  15. stratus1

  16. unicorn

  17. ispd

  18. documentation

This script should do the trick:

#!/bin/sh
set -x
set -e
for i in vlsisapd coloquinte hurricane crlcore cumulus equinox knik katabatic kite etesian nimbus metis mauka solstice stratus1 unicorn ispd documentation
do
	mkdir -p $i/build
	cd $i/build
	if [ ! -e Makefile ]
	then
		cmake -DCMAKE_INSTALL_PREFIX=/opt/coriolis -DCMAKE_BUILD_TYPE=Debug -DBUILD_DOC=ON ..
	fi
	make all install
	cd ../..
done

Using Coriolis

Set up your PATH and PYTHONPATH to point to the subdirectory:

export CORIOLIS_TOP=/opt/coriolis/
export ALLIANCE_TOP=/usr/share/alliance
export PATH=$PATH:${CORIOLIS_TOP}/bin
export PYTHONPATH_BASE=${CORIOLIS_TOP}/lib/python3/dist-packages
export PYTHONPATH=${PYTHONPATH}:${PYTHONPATH_BASE}/pharos:${PYTHONPATH_BASE}/cumulus:${PYTHONPATH_BASE}/cumulus/plugins:${PYTHONPATH_BASE}/stratus:${PYTHONPATH_BASE}/crlcore:${PYTHONPATH_BASE}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${CORIOLIS_TOP}/lib

The Coriolis main interface can be launched with the command cgt, or any command available under /opt/coriolis/bin/.

There is a script called coriolis that can be used to set up the environment and call child commands. You can pass the --run=<COMMAND> argument to the script.

About

An alternative PnR system, or at least an attempt to get it running on Ubuntu 18.04.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •