Logo Alliance

Alliance -- A Free VLSI/CAD System

Abstract

Alliance is a complete set of free cad tools and portable libraries for vlsi design. It includes a vhdl compiler and simulator, logic synthesis tools, and automatic place and route tools. A complete set of portable cmos libraries is provided. Alliance is the result of a twelve year effort spent at SoC department of LIP6 laboratory of the Pierre & Marie Curie University (Paris VI, France). Alliance has been used for research projects such as the 875 000 transistors StaCS superscalar microprocessor and 400 000 transistors ieee Gigabit HSL Router.

Alliance vlsi cad System is free software. Binaries, source code and cells libraries are freely available under the GNU General Public License (GPL). You are welcome to use the software package even for commercial designs without any fee. You are kindly requested to mention: "Designed with Alliance © LIP6, Université Pierre et Marie Curie".

Circuit Designed with Alliance

  • Smartlabs/Smarthome designed a complete circuit in the xfab XH035 technology (2014).
  • Tokai University (Shimizu Lab) designed the snx, a 16 bits processor in the rohm 0.18µm (2010).

Those are circuits that we know of because their designers were kind enough to inform us (it is not comprehensive).

Alliance Quick Install Instructions

Binary packages are avalaibles for the following distributions:

  • RedHat Entreprise Linux 6 (RHEL6) and clones (Scientific Linux 6, CentOS 6).
  • Fedora
  • Ubuntu LTS
  • MacOS X, through MacPorts

Fedora/RedHat

Note

For Fedora distributions, Alliance packages are in the main repository, so the first step below could be skipped.

  1. Enable the EPEL repository: (instructions borrowed from https://fedoraproject.org/wiki/EPEL/)

    All commands must be executed as root.

    Install the package enabling the repository:

    $ rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6.5.noarch.rpm

Note

This package install a lone file /etc/yum.repo.d/epel.repo which suffice to enable the repository.

  1. Pull & install the packages from the repository:

    $ yum install alliance alliance-libs alliance-doc
    

    That's all folks. Alliance is ready to use.

Note

With the packaged version of Alliance, files and directories are not at the same places as in the SOC department. They have been made compliant with the fhs.

binaries /usr/lib/alliance/bin
cell libraries /usr/share/alliance/cells
man pages /usr/share/alliance/man
tutorials & examples /usr/share/doc/alliance-5.0/

Environment variables should be automatically set.

Ubuntu LTS 14.04

Alliance is available in the Ubuntu Universe repository, you may install it with the package manager.

Before using it, you must source the environment (in each terminal you want to use Alliance):

> . /etc/alliance/profile.d/alc_env.sh

Rebuild From Source (Git)

If binary packages are not avalaibles for your distribution, you may want to rebuild Alliance from source. To perform this, be aware that you must have at least a basic knowlegde of how to build a C/C++ program from source. Sources are available through the following Git repository:

https://www-soc.lip6.fr/git/alliance.git

The stable version is under the branch master, while the development is kept under devel (and will be merged into master from time to time...)

Older versions could be downloaded from:

ftp://asim.lip6.fr/pub/alliance/distribution/5.0/

In order to recompile, you will need to install the development tools in your system. The main ones are listed below.

Build Dependencies
Software RHEL & Clones, Fedora Debian/Ubuntu
Basic devel tools "Development tools" (group) build-essential
Version system git git
GCC/G++ compiler gcc, g++ gcc, g++
Autotools autoconf, automake libtool autoconf, automake libtool
Parser (yacc&lex) bison, flex bison, flex
X11 libraries libX11-devel, libXt-devel libXaw-devel, libXpm-devel openmotif22 libx11-dev, libxt-dev libxaw-dev, libxpm-dev libmotif-dev
Graphics xfig, ImageMagick xfig, ImageMagick
Text Processing texlive texlive, texlive-pictures texlive-latex-extra

Note

Before running the autotools, you have to run the autostuff script in ./alliance/src which generate the top-level automake files.

Note

If you happen to have forgotten one of the dependency and have to install it after running configure, please remove the whole build directory tree and re-run configure. The same rule applies if you switch from static libraries to dynamic ones.

The building procedure should look like this under Linux (with bash):

ego@home:~> mkdir -p alliance/build alliance/install
ego@home:~> cd ~/alliance
ego@home:alliance> git clone https://www-soc.lip6.fr/git/alliance.git
ego@home:alliance> cd alliance/src
ego@home:alliance/alliance/src> ./autostuff
ego@home:alliance/alliance/src> cd ~/alliance/build
ego@home:alliance/build> export ALLIANCE_TOP=$HOME/alliance/install
ego@home:alliance/build> export LD_LIBRARY_PATH=${ALLIANCE_TOP}/lib:${LD_LIBRARY_PATH}
ego@home:alliance/build> ../alliance/src/configure --prefix=$ALLIANCE_TOP --enable-alc-shared
ego@home:alliance/build> make install

Coriolis: P&R Replacement

A replacement for the P&R is available here: Coriolis User's Guide

It provides the following tools:

Alliance Coriolis
GenLib Stratus (Python)
ocp Mauka
nero Kite (and Knik)

Mailing List

A very low temp mailing list is also available: https://www-soc.lip6.fr/wwws/info/alliance-users.

Change Log

Again, this is a very low temperature changelog. Only big changes are noted here.

  • March 03, 2014
    1. Repository migration from cvs to Git, and obsoleted tools cleanup.
    2. Removal of all compilation warnings under gcc 4.8.1 and (almost all under) cppcheck.
  • May 15, 2012
    1. The only change is the update of the FSF address in the GPL licensing...
  • May 03, 2012
    1. Found a way around the druc bug (NWELL rectangles not merged). The problem occurs only when the -g and -O2 are used altogether. Force the flags to -g -O0 when compiling druc.
    2. Merge in patchs submitted by Naohiko Shimizu Allow the tools (boog, ocp & nero) to be configured through environment variables for uses with the Pharosc standard cell libraries.
    3. Reorganisation of alliance-examples and alliance-run so they work regardless where they are run from (CVS tree, SoC installation or package installation).