<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content="Contents About Alliance Circuit Designed with Alliance Useful Links Installing Alliance from a Distribution Fedora Ubuntu LTS 18.04 Rebuild From Source (Git) Debian 9 & Ubuntu 18 RHEL, CentOS, Fedora ..."> <meta name="keywords" content=""> <link rel="icon" href="../favicon.ico"> <title>Alliance VLSI/CAD System - Coriolis VLSI CAD Tools [offline]</title> <!-- Stylesheets --> <link href="../theme/css/bootstrap.css" rel="stylesheet"> <link href="../theme/css/fonts.css" rel="stylesheet"> <link href="../theme/css/nest.css" rel="stylesheet"> <link href="../theme/css/pygment.css" rel="stylesheet"> <link href="../theme/css/coriolis.css" rel="stylesheet"> <!-- /Stylesheets --> <script src="../theme/js/jquery.min.js"></script> <script src="../theme/js/bootstrap.min.js"></script> <!-- RSS Feeds --> <!-- /RSS Feeds --> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <!-- Header --> <div class="header-container" style="background: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), url('../images/common/layout-motif-faded-4.png'); background-position: center; "> <!-- <div class="container"> <nav class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="../"><img class="mr20" src="../images/common/Coriolis-logo-white-4-small.png" alt="logo">Coriolis VLSI CAD Tools [offline]</a> </div> <ul class="nav navbar-nav"> <li><a href="../pages/gitlab.html">Git</a></li> <li><a href="../pages/documentation.html">Documentation</a></li> <li class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> <span class="caret"></span>Topics </button> <ul class="dropdown-menu"> <li><a class="dropdown-item " href="../pages/homepage.html">Coriolis <span class="sc">vlsi</span> Backend Tools</a></li> <li><a class="dropdown-item " href="../pages/symbolic-layout.html">Symbolic Layout</a></li> </ul> </li> </ul> </div> </nav> </div> <!-- navbar container --> --> <!-- Static navbar --> <div class="container"> <div class="header-nav"> <div class="header-logo"> <a class="pull-left" href="../"><img class="mr20" src="../images/common/Coriolis-logo-white-4-small.png" alt="logo">Coriolis VLSI CAD Tools [offline]</a> </div> <div class="nav pull-right"> <a href="../pages/gitlab.html">Git</a> <a href="../pages/documentation.html">Documentation</a> </div> <div class="nav pull-right"> <div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> <span class="caret"></span>Topics </button> <ul class="dropdown-menu"> <li><a class="dropdown-item " href="../pages/homepage.html">Coriolis <span class="sc">vlsi</span> Backend Tools</a></li> <li><a class="dropdown-item " href="../pages/symbolic-layout.html">Symbolic Layout</a></li> </ul> </div> </div> </div> </div> <!-- /Static navbar --> <!-- Header --> <div class="container header-wrapper"> <div class="row"> <div class="col-lg-12"> <div class="header-content"> <a href="https://www.lip6.fr/"><img class="mr20" height="60px" src="../images/common/LogoLIP6Blanc.png" alt="LIP6"></a> <a href="https://www.sorbonne-universite.fr/"><img class="mr20" height="60px" src="../images/common/logo-SU-blanc-700px.png" alt="Sorbonne Universite"></a> <a href="https://www.cnrs.fr/"><img class="mr20" height="60px" src="../images/common/LOGO-cnrs-white-large.png" alt="CNRS"></a> <h1 class="header-title text-uppercase">Alliance VLSI/CAD System</h1> <div class="header-underline"></div> </div> </div> </div> </div> <!-- /Header --> </div> <!-- /Header --> <!-- Content --> <div class="container content"> <!-- -*- Mode: rst -*- --> <!-- URLs that changes between the various backends. --> <!-- For HTML backend --> <div class="contents topic" id="contents"> <p class="topic-title first">Contents</p> <ul class="simple"> <li><a class="reference internal" href="#about-alliance" id="id2">About Alliance</a><ul> <li><a class="reference internal" href="#circuit-designed-with-alliance" id="id3">Circuit Designed with Alliance</a></li> <li><a class="reference internal" href="#useful-links" id="id4">Useful Links</a></li> </ul> </li> <li><a class="reference internal" href="#installing-alliance-from-a-distribution" id="id5">Installing <span class="sc">Alliance</span> from a Distribution</a><ul> <li><a class="reference internal" href="#fedora" id="id6">Fedora</a></li> <li><a class="reference internal" href="#ubuntu-lts-18-04" id="id7">Ubuntu LTS 18.04</a></li> </ul> </li> <li><a class="reference internal" href="#rebuild-from-source-git" id="id8">Rebuild From Source (Git)</a><ul> <li><a class="reference internal" href="#debian-9-ubuntu-18" id="id9">Debian 9 & Ubuntu 18</a></li> <li><a class="reference internal" href="#rhel-centos-fedora" id="id10">RHEL, CentOS, Fedora</a></li> </ul> </li> </ul> </div> <!-- -*- Mode: rst; explicit-buffer-name: "definition.rst<documentation/etc>" -*- --> <!-- HTML/LaTeX backends mixed macros. --> <!-- Acronyms & names. --> <!-- URLs --> <!-- Standard CAO/VLSI Concepts. --> <!-- Alliance & MBK Concepts --> <!-- Hurricane Concepts. --> <!-- -*- Mode: rst -*- --> <div class="section" id="about-alliance"> <h2><a class="toc-backref" href="#id2">About Alliance</a></h2> <div class="section" id="circuit-designed-with-alliance"> <h3><a class="toc-backref" href="#id3">Circuit Designed with Alliance</a></h3> <ul class="simple"> <li><a class="reference external" href="http://www.smartlabsinc.com/">Smartlabs</a>/Smarthome designed a complete circuit in the <span class="sc">xfab</span> <span class="cb">XH035</span> technology (2014).</li> <li><a class="reference external" href="http://www.u-tokai.ac.jp/international/">Tokai University</a> (<a class="reference external" href="http://labo.nshimizu.com/">Shimizu Lab</a>) designed the <span class="sc">snx</span>, a 16 bits processor in the <span class="sc">rohm</span> 0.18µm (2010).</li> </ul> <p>Those are circuits that we know of because their designers were kind enough to inform us (it is not comprehensive).</p> </div> <div class="section" id="useful-links"> <h3><a class="toc-backref" href="#id4">Useful Links</a></h3> <ul class="simple"> <li>Improved Standard Cell libraries and documentation on how to design them, by Graham <span class="sc">Petley</span>: <a class="reference external" href="http://www.vlsitechnology.org/">VLSI Technology</a></li> <li>A book presenting <span class="sc">Alliance</span> in depth: <a class="reference external" href="http://www.cc.toin.ac.jp/sc/palacios/openbook/vlsie.pdf">Introduction to VLSI CMOS Circuits design</a> by Carlos Silva <span class="sc">Cardenas</span>, Takeo <span class="sc">Yoshida</span> & Alberto Palacios <span class="sc">Pawlovsky</span>.</li> <li>For spanish locutors, a set of tutorials made by Miguel Eduardo <span class="sc">Flores Gomez</span> from <a class="reference external" href="http://www.udb.edu.sv/">Don Bosco University</a>: <a class="reference external" href="http://microelectronicdesignandsimulation.blogspot.com/2015/10/tutoriales-de-alliance-vlsi.html">Tutorial de Alliance</a></li> </ul> </div> </div> <div class="section" id="installing-alliance-from-a-distribution"> <h2><a class="toc-backref" href="#id5">Installing <span class="sc">Alliance</span> from a Distribution</a></h2> <p>Binary packages are avalaibles for the following distributions:</p> <ul class="simple"> <li>Fedora</li> <li>Ubuntu LTS</li> <li>MacOS X, through <a class="reference external" href="https://www.macports.org/">MacPorts</a></li> </ul> <div class="section" id="fedora"> <h3><a class="toc-backref" href="#id6">Fedora</a></h3> <ol class="arabic"> <li><p class="first">Pull & install the packages from the repository:</p> <div class="highlight"><pre><span></span>root@home:~# yum install alliance alliance-libs alliance-doc </pre></div> <p>That's all folks. <span class="sc">Alliance</span> is ready to use.</p> </li> </ol> <div class="note"> <p class="first admonition-title">Note</p> <p>With the packaged version of <span class="sc">Alliance</span>, files and directories are not at the same places as in the default install. They have been made compliant with the <span class="sc">fhs</span>.</p> <table class="table"> <colgroup> <col width="44%" /> <col width="56%" /> </colgroup> <tbody valign="top"> <tr><td><strong>binaries</strong></td> <td>/usr/lib/alliance/bin</td> </tr> <tr><td><strong>cell libraries</strong></td> <td>/usr/share/alliance/cells</td> </tr> <tr><td><strong>man pages</strong></td> <td>/usr/share/alliance/man</td> </tr> <tr><td><strong>tutorials & examples</strong></td> <td>/usr/share/doc/alliance-5.0/</td> </tr> </tbody> </table> <p class="last">Environment variables should be automatically set.</p> </div> </div> <div class="section" id="ubuntu-lts-18-04"> <h3><a class="toc-backref" href="#id7">Ubuntu LTS 18.04</a></h3> <p><span class="sc">Alliance</span> is available in the <a class="reference external" href="http://packages.ubuntu.com/bionic/alliance">Ubuntu Universe repository</a>, you may install it with the package manager.</p> <blockquote> <div class="highlight"><pre><span></span>ego@home:~> sudo apt-get install alliance </pre></div> </blockquote> <p>Before using it, you must source the environment (in each terminal you want to use <span class="sc">Alliance</span>):</p> <div class="highlight"><pre><span></span>ego@home:~> . /etc/alliance/profile.d/alc_env.sh </pre></div> </div> </div> <div class="section" id="rebuild-from-source-git"> <h2><a class="toc-backref" href="#id8">Rebuild From Source (Git)</a></h2> <p>If binary packages are not avalaibles for your distribution, you may want to rebuild <span class="sc">Alliance</span> 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 <span class="cb">git</span> repository:</p> <blockquote> <a class="reference external" href="https://gitlab.lip6.fr/jpc/alliance.git">https://gitlab.lip6.fr/jpc/alliance.git</a></blockquote> <p>The stable version is under the branch <span class="cb">master</span>, while the development is kept under <span class="cb">devel</span> (and will be merged into <span class="cb">master</span> from time to time...)</p> <p>In order to recompile, you will need to install the development tools in your system. The main ones are listed below.</p> <table class="table"> <colgroup> <col width="21%" /> <col width="44%" /> <col width="35%" /> </colgroup> <thead valign="bottom"> <tr><th class="head" colspan="3">Build Dependencies</th> </tr> <tr><th class="head">Software</th> <th class="head">RHEL, CentOS, Scientific Linux & Fedora</th> <th class="head">Debian/Ubuntu</th> </tr> </thead> <tbody valign="top"> <tr><td>Basic devel tools</td> <td>"Development tools" (group)</td> <td><cite>build-essential</cite></td> </tr> <tr><td>Version system</td> <td><cite>git</cite></td> <td><cite>git</cite></td> </tr> <tr><td>GCC/G++ compiler</td> <td><cite>gcc</cite>, <cite>g++</cite></td> <td><cite>gcc</cite>, <cite>g++</cite></td> </tr> <tr><td>Autotools</td> <td><cite>autoconf</cite>, <cite>automake</cite> <cite>libtool</cite></td> <td><cite>autotool-dev</cite>, <cite>automake</cite> <cite>libtool</cite></td> </tr> <tr><td>Parser (yacc&lex)</td> <td><cite>bison</cite>, <cite>flex</cite></td> <td><cite>bison</cite>, <cite>flex</cite></td> </tr> <tr><td>X11 libraries</td> <td><cite>libX11-devel</cite>, <cite>libXt-devel</cite>, <cite>libXpm-devel</cite>, <cite>motif</cite>, <cite>motif-devel</cite></td> <td><cite>libx11-dev</cite>, <cite>libxt-dev</cite> <cite>libxpm-dev</cite> <cite>libmotif-dev</cite></td> </tr> <tr><td>Graphics</td> <td><cite>xfig</cite>, <cite>ImageMagick</cite></td> <td><cite>xfig</cite>, <cite>ImageMagick</cite></td> </tr> <tr><td>Text Processing</td> <td><cite>texlive</cite></td> <td><cite>texlive</cite>, <cite>texlive-pictures</cite>, <cite>texlive-latex-extra</cite></td> </tr> </tbody> </table> <div class="note"> <p class="first admonition-title">Note</p> <p class="last">Before running the <span class="cb">autotools</span>, you have to run the <span class="cb">autostuff</span> script in <tt class="docutils literal">./alliance/src</tt> which generate the top-level automake files.</p> </div> <div class="note"> <p class="first admonition-title">Note</p> <p class="last">If you happen to have forgotten one of the dependency and have to install it after running <cite>configure</cite>, please remove the <em>whole</em> build directory tree and re-run <cite>configure</cite>. The same rule applies if you switch from static libraries to dynamic ones.</p> </div> <div class="note"> <p class="first admonition-title">Note</p> <p class="last"><strong>Do not build in parallel</strong>, always uses <tt class="docutils literal"><span class="pre">-j1</span></tt>, the build process fail in strange ways when run in parallel (this is a known problem due to the way Alliance was developped).</p> </div> <div class="note"> <p class="first admonition-title">Note</p> <p class="last"><strong>Bison/Flex</strong> versions. Alliance is very sensitive to the versions of thoses programs. The reference OSes for the build are <span class="sc">Scientific Linux</span> 6 & 7, which supplies <span class="cb">bison</span> 2.4.1 and 2.7 (resp.), <span class="cb">flex</span> 2.5.35 and 2.5.37 (resp.).</p> </div> <div class="section" id="debian-9-ubuntu-18"> <h3><a class="toc-backref" href="#id9">Debian 9 & Ubuntu 18</a></h3> <p>In this example we show the case where <span class="sc">Alliance</span> is installed in the user's home directory alongside with <span class="sc">Coriolis</span>.</p> <ol class="arabic"> <li><p class="first">Dependencies installation:</p> <div class="highlight"><pre><span></span>ego@home:~> sudo apt-get install build-essential binutils-dev <span class="se">\</span> git cmake bison flex gcc python-dev <span class="se">\</span> autotools-dev automake <span class="se">\</span> libxt-dev libxpm-dev libmotif-dev </pre></div> </li> <li><p class="first">Getting the sources (cloning the <span class="cb">git</span> repository):</p> <div class="highlight"><pre><span></span>ego@home:~> mkdir -p coriolis-2.x/src ego@home:~> <span class="nb">cd</span> coriolis-2.x/src ego@home:src> git clone https://gitlab.lip6.fr/jpc/alliance.git </pre></div> </li> <li><p class="first">Compilation & installation. For that step, you can use the following shell script.</p> <div class="note"> <p class="first admonition-title">Note</p> <p class="last"><strong>The commonRoot variable</strong>, the <tt class="docutils literal">/Linux.x86_64/</tt> component of the path is dependent on the <span class="sc">os</span> you are using. It is determined by looking to the kernel version as returned by <tt class="docutils literal">uname <span class="pre">-srm</span></tt>. In the following script, it has been set to what is choosen by the <span class="sc">Coriolis</span> installer <tt class="docutils literal">ccb.py</tt> for <span class="sc">Ubuntu</span>.</p> </div> <div class="highlight"><pre><span></span><span class="ch">#!/bin/bash</span> <span class="nv">srcDir</span><span class="o">=</span><span class="si">${</span><span class="nv">HOME</span><span class="si">}</span>/coriolis-2.x/src/alliance/alliance/src <span class="nv">commonRoot</span><span class="o">=</span><span class="si">${</span><span class="nv">HOME</span><span class="si">}</span>/coriolis-2.x/Linux.x86_64/Release.Shared <span class="nv">buildDir</span><span class="o">=</span><span class="si">${</span><span class="nv">commonRoot</span><span class="si">}</span>/build <span class="nv">installDir</span><span class="o">=</span><span class="si">${</span><span class="nv">commonRoot</span><span class="si">}</span>/install <span class="nb">export</span> <span class="nv">ALLIANCE_TOP</span><span class="o">=</span><span class="si">${</span><span class="nv">installDir</span><span class="si">}</span> <span class="nb">export</span> <span class="nv">LD_LIBRARY_PATH</span><span class="o">=</span><span class="si">${</span><span class="nv">installDir</span><span class="si">}</span>/lib:<span class="si">${</span><span class="nv">LD_LIBRARY_PATH</span><span class="si">}</span> <span class="nb">cd</span> <span class="si">${</span><span class="nv">srcDir</span><span class="si">}</span> <span class="c1"># Skip doc generation to avoid pulling TeXLive in docker images.</span> <span class="c1">#sed -i 's,dirs="\$newdirs documentation",dirs="$newdirs",' ./autostuff</span> ./autostuff clean ./autostuff mkdir -p <span class="si">${</span><span class="nv">buildDir</span><span class="si">}</span> <span class="nb">cd</span> <span class="si">${</span><span class="nv">buildDir</span><span class="si">}</span> <span class="si">${</span><span class="nv">srcDir</span><span class="si">}</span>/configure --prefix<span class="o">=</span><span class="si">${</span><span class="nv">ALLIANCE_TOP</span><span class="si">}</span> --enable-alc-shared make -j1 install </pre></div> </li> </ol> </div> <div class="section" id="rhel-centos-fedora"> <h3><a class="toc-backref" href="#id10">RHEL, CentOS, Fedora</a></h3> <p>The procedure is very similar as the one for Debian/Ubuntu, except for the package manager step and the <strong>commonRoot</strong> variable value, which is set to <tt class="docutils literal">/Linux.SL7_64/</tt> (RHEL, CentOS & Scientific Linux) or <tt class="docutils literal">/Linux.fc_64/</tt> (Fedora).</p> <ol class="arabic"> <li><p class="first">Dependencies installation:</p> <div class="highlight"><pre><span></span>root@home:~> yum install git cmake bison flex gcc-c++ libstdc++-devel <span class="se">\</span> make binutils-devel <span class="se">\</span> autoconf automake libtool <span class="se">\</span> libX11-devel libXt-devel libXpm-devel <span class="se">\</span> motif motif-devel <span class="se">\</span> </pre></div> </li> <li><p class="first">Getting the sources (cloning the <span class="cb">git</span> repository):</p> <div class="highlight"><pre><span></span>ego@home:~> mkdir -p coriolis-2.x/src ego@home:~> <span class="nb">cd</span> coriolis-2.x/src ego@home:src> git clone https://gitlab.lip6.fr/jpc/alliance.git </pre></div> </li> <li><p class="first">Compilation & installation. For that step, you can use the following shell script.</p> <div class="highlight"><pre><span></span><span class="ch">#!/bin/bash</span> <span class="nv">srcDir</span><span class="o">=</span><span class="si">${</span><span class="nv">HOME</span><span class="si">}</span>/coriolis-2.x/src/alliance/alliance/src <span class="nv">commonRoot</span><span class="o">=</span><span class="si">${</span><span class="nv">HOME</span><span class="si">}</span>/coriolis-2.x/Linux.SL7_64/Release.Shared <span class="nv">buildDir</span><span class="o">=</span><span class="si">${</span><span class="nv">commonRoot</span><span class="si">}</span>/build <span class="nv">installDir</span><span class="o">=</span><span class="si">${</span><span class="nv">commonRoot</span><span class="si">}</span>/install <span class="nb">export</span> <span class="nv">ALLIANCE_TOP</span><span class="o">=</span><span class="si">${</span><span class="nv">installDir</span><span class="si">}</span> <span class="nb">export</span> <span class="nv">LD_LIBRARY_PATH</span><span class="o">=</span><span class="si">${</span><span class="nv">installDir</span><span class="si">}</span>/lib:<span class="si">${</span><span class="nv">LD_LIBRARY_PATH</span><span class="si">}</span> <span class="nb">cd</span> <span class="si">${</span><span class="nv">srcDir</span><span class="si">}</span> <span class="c1"># Skip doc generation to avoid pulling TeXLive in docker images.</span> <span class="c1">#sed -i 's,dirs="\$newdirs documentation",dirs="$newdirs",' ./autostuff</span> ./autostuff clean ./autostuff mkdir -p <span class="si">${</span><span class="nv">buildDir</span><span class="si">}</span> <span class="nb">cd</span> <span class="si">${</span><span class="nv">buildDir</span><span class="si">}</span> <span class="si">${</span><span class="nv">srcDir</span><span class="si">}</span>/configure --prefix<span class="o">=</span><span class="si">${</span><span class="nv">ALLIANCE_TOP</span><span class="si">}</span> --enable-alc-shared make -j1 install </pre></div> </li> </ol> </div> </div> </div> <!-- /Content --> <!-- Footer --> <div class="footer gradient-2"> <div class="container footer-container "> <div class="row"> <div class="col-xs-4 col-sm-3 col-md-3 col-lg-3"> <div class="footer-title">Social</div> <ul class="list-unstyled"> </ul> </div> <div class="col-xs-4 col-sm-3 col-md-3 col-lg-2"> </div> <div class="col-xs-4 col-sm-3 col-md-3 col-lg-3"> <div class="footer-title">Links</div> <ul class="list-unstyled"> <li><a href="https://coriolis.lip6.fr/" target="_blank">Alliance/Coriolis</a></li> <li><a href="https://www-soc.lip6.fr/" target="_blank">CIAN Team Website</a></li> <li><a href="https://f-si.org" target="_blank">Free Silicon Foundation</a></li> </ul> </div> <div class="col-xs-12 col-sm-3 col-md-3 col-lg-4"> <p class="pull-right text-right"> <small><em>Proudly powered by <a href="http://docs.getpelican.com/" target="_blank">pelican</a></em></small><br/> <small><em><span class="sc">NEST</span> theme by <a href="https://github.com/molivier" target="_blank">molivier</a></em></small><br/> <small>Copyright © 2020-2020 Sorbonne Universite</small> </p> </div> </div> </div> </div> <!-- /Footer --> </body> </html>