coriolis/documentation/output/pages/alliance.html

458 lines
24 KiB
HTML
Raw Normal View History

<!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 &amp; Ubuntu 18 RHEL, CentOS,...">
<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">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 &amp; 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> &amp; 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 &amp; 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="admonition 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 &amp; 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:~&gt; 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:~&gt; . /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 &amp; Fedora</th>
<th class="head">Debian/Ubuntu</th>
</tr>
</thead>
<tbody valign="top">
<tr><td>Basic devel tools</td>
<td>&quot;Development tools&quot; (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&amp;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="admonition 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="admonition 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="admonition 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="admonition 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 &amp; 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 &amp; 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:~&gt; 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:~&gt; mkdir -p coriolis-2.x/src
ego@home:~&gt; <span class="nb">cd</span> coriolis-2.x/src
ego@home:src&gt; git clone https://gitlab.lip6.fr/jpc/alliance.git
</pre></div>
</li>
<li><p class="first">Compilation &amp; installation. For that step, you can use the following shell
script.</p>
<div class="admonition 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 &#39;s,dirs=&quot;\$newdirs documentation&quot;,dirs=&quot;$newdirs&quot;,&#39; ./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 &amp; 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:~&gt; 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:~&gt; mkdir -p coriolis-2.x/src
ego@home:~&gt; <span class="nb">cd</span> coriolis-2.x/src
ego@home:src&gt; git clone https://gitlab.lip6.fr/jpc/alliance.git
</pre></div>
</li>
<li><p class="first">Compilation &amp; 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 &#39;s,dirs=&quot;\$newdirs documentation&quot;,dirs=&quot;$newdirs&quot;,&#39; ./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>