Updating the documentation of the startup procedure.
This commit is contained in:
parent
2b9c929f80
commit
3e1a7ec591
Binary file not shown.
Binary file not shown.
|
@ -43,13 +43,14 @@ two methods:
|
||||||
All configuration & initialization files are Python scripts, despite their
|
All configuration & initialization files are Python scripts, despite their
|
||||||
|dot_conf| extention. From a syntactic point of view, there is no difference
|
|dot_conf| extention. From a syntactic point of view, there is no difference
|
||||||
between the system-wide configuration files and the user's configuration,
|
between the system-wide configuration files and the user's configuration,
|
||||||
they may use the same Python helpers.
|
they use the same Python helpers.
|
||||||
|medskip|
|
|medskip|
|
||||||
|
|
||||||
Configuration is done in two stages:
|
Configuration is done in two stages:
|
||||||
|
|
||||||
#. Selecting the symbolic technology.
|
#. Selecting the technology.
|
||||||
#. Loading the complete configuration for the given technology.
|
#. Loading the complete configuration for the given technology
|
||||||
|
and the user's settings.
|
||||||
|
|
||||||
|newpage|
|
|newpage|
|
||||||
|
|
||||||
|
@ -58,8 +59,7 @@ First Stage: Technology Selection
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|noindent|
|
|noindent|
|
||||||
The initialization process is done by executing, in order, the following
|
The initialization process is done by executing, in order, the following file(s):
|
||||||
file(s):
|
|
||||||
|
|
||||||
+-------+----------------------------------+----------------------------------------------+
|
+-------+----------------------------------+----------------------------------------------+
|
||||||
| Order | Meaning | File |
|
| Order | Meaning | File |
|
||||||
|
@ -87,30 +87,42 @@ Second Stage: Technology Configuration Loading
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|noindent|
|
|noindent|
|
||||||
The :cb:`TECHNO` variable is set by the first stage and it's the name of the
|
The :cb:`technology` variable is set by the first stage and it's the name of the
|
||||||
symbolic technology. A directory of that name, with all the configuration files,
|
technology. A directory of that name, with all the configuration files,
|
||||||
must exists in the configuration directory. In addition to the technology-specific
|
must exists in the configuration directory (:cb:`/etc/coriolis2`).
|
||||||
directories, a :cb:`common/` directory is there to provides a trunk for all the
|
In addition to the technology-specific directories, a :cb:`common/` directory is
|
||||||
identical datas across the various technologies. The initialization process is done
|
there to provides a trunk for all the identical datas across the various technologies.
|
||||||
by executing, in order, the following file(s):
|
The initialization process is done by executing, in order, the following file(s):
|
||||||
|
|
||||||
+-------+----------------------------------+----------------------------------------------+
|
+-------+----------------------------------+-----------------------------------------------+
|
||||||
| Order | Meaning | File |
|
| Order | Meaning | File |
|
||||||
+=======+==================================+==============================================+
|
+=======+==================================+===============================================+
|
||||||
| **1** | The system initialization | :cb:`/etc/coriolis2/<TECHNO>/<TOOL>.conf` |
|
| **1** | The system initialization | :cb:`/etc/coriolis2/<technology>/<TOOL>.conf` |
|
||||||
+-------+----------------------------------+----------------------------------------------+
|
+-------+----------------------------------+-----------------------------------------------+
|
||||||
| **2** | The user's global initialization | :cb:`${HOME}/.coriolis2/settings.py` |
|
| **2** | The user's global initialization | :cb:`${HOME}/.coriolis2/settings.py` |
|
||||||
+-------+----------------------------------+----------------------------------------------+
|
+-------+----------------------------------+-----------------------------------------------+
|
||||||
| **3** | The user's local initialization | :cb:`<CWD>/.coriolis2/settings.py` |
|
| **3** | The user's local initialization | :cb:`<CWD>/.coriolis2/settings.py` |
|
||||||
+-------+----------------------------------+----------------------------------------------+
|
+-------+----------------------------------+-----------------------------------------------+
|
||||||
|
|
||||||
.. note:: *The loading policy is not hard-coded.* It is implemented
|
.. note:: *The loading policy is not hard-coded.* It is implemented
|
||||||
at Python level in :cb:`/etc/coriolis2/coriolisInit.py`, and thus may be easily be
|
at Python level in :cb:`/etc/coriolis2/coriolisInit.py`, and thus may be easily
|
||||||
amended to whatever site policy.
|
amended to whatever site policy.
|
||||||
|
|
||||||
The truly mandatory requirement is the existence of :cb:`coriolisInit.py`
|
The truly mandatory requirement is the existence of :cb:`coriolisInit.py`
|
||||||
which *must* contain a :cb:`coriolisConfigure()` function with no argument.
|
which *must* contain a :cb:`coriolisConfigure()` function with no argument.
|
||||||
|
|
||||||
|
The :cb:`coriolisInit.py` script execution is triggered by the *import* of
|
||||||
|
the ``CRL`` module:
|
||||||
|
|
||||||
|
.. code:: python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os.path
|
||||||
|
import Cfg
|
||||||
|
import Hurricane
|
||||||
|
import CRL # Triggers execution of "coriolisInit.py".
|
||||||
|
import Viewer
|
||||||
|
|
||||||
|
|
||||||
Configuration Helpers
|
Configuration Helpers
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
@ -131,33 +143,49 @@ Where :cb:`<install>/` is the root of the installation.
|
||||||
|Alliance| Helper
|
|Alliance| Helper
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
The configuration file must provide a :cb:`allianceConfig` tuple of
|
The configuration file must provide an :cb:`allianceConfig` tuple as shown below.
|
||||||
the form: ::
|
Like all the |Coriolis| configuration file, it is to be executed through |Python|,
|
||||||
|
so we can use it to perform a not so dumb search of the |Alliance| installation
|
||||||
|
directory. Our default policy is to try to read the ``ALLIANCE_TOP`` environment
|
||||||
|
variable, and if not found, default to ``/soc/alliance``.
|
||||||
|
|
||||||
|
.. code:: python
|
||||||
|
|
||||||
|
import os
|
||||||
|
from helpers.Alliance import AddMode
|
||||||
|
from helpers.Alliance import Gauge
|
||||||
|
|
||||||
|
allianceTop = None
|
||||||
|
if os.environ.has_key('ALLIANCE_TOP'):
|
||||||
|
allianceTop = os.environ['ALLIANCE_TOP']
|
||||||
|
if not os.path.isdir(allianceTop):
|
||||||
|
allianceTop = None
|
||||||
|
|
||||||
|
if not allianceTop: allianceTop = '/soc/alliance'
|
||||||
|
|
||||||
|
cellsTop = allianceTop+'/cells/'
|
||||||
|
|
||||||
cellsTop = '/usr/share/alliance/cells/'
|
|
||||||
|
|
||||||
allianceConfig = \
|
allianceConfig = \
|
||||||
( ( 'SYMBOLIC_TECHNOLOGY', helpers.sysConfDir+'/technology.symbolic.xml' )
|
( ( 'CATALOG' , 'CATAL')
|
||||||
, ( 'REAL_TECHNOLOGY' , helpers.sysConfDir+'/technology.cmos130.s2r.xml')
|
|
||||||
, ( 'DISPLAY' , helpers.sysConfDir+'/display.xml' )
|
|
||||||
, ( 'CATALOG' , 'CATAL')
|
|
||||||
, ( 'WORKING_LIBRARY' , '.')
|
, ( 'WORKING_LIBRARY' , '.')
|
||||||
, ( 'SYSTEM_LIBRARY' , ( (cellsTop+'sxlib' , Environment.Append)
|
, ( 'SYSTEM_LIBRARY' , ( (cellsTop+'sxlib' , AddMode.Append)
|
||||||
, (cellsTop+'dp_sxlib', Environment.Append)
|
, (cellsTop+'dp_sxlib', AddMode.Append)
|
||||||
, (cellsTop+'ramlib' , Environment.Append)
|
, (cellsTop+'ramlib' , AddMode.Append)
|
||||||
, (cellsTop+'romlib' , Environment.Append)
|
, (cellsTop+'romlib' , AddMode.Append)
|
||||||
, (cellsTop+'rflib' , Environment.Append)
|
, (cellsTop+'rflib' , AddMode.Append)
|
||||||
, (cellsTop+'rf2lib' , Environment.Append)
|
, (cellsTop+'rf2lib' , AddMode.Append)
|
||||||
, (cellsTop+'pxlib' , Environment.Append) ) )
|
, (cellsTop+'pxlib' , AddMode.Append)
|
||||||
, ( 'SCALE_X' , 100)
|
, (cellsTop+'padlib' , AddMode.Append) ) )
|
||||||
, ( 'IN_LO' , 'vst')
|
, ( 'IN_LO' , 'vst')
|
||||||
, ( 'IN_PH' , 'ap')
|
, ( 'IN_PH' , 'ap')
|
||||||
, ( 'OUT_LO' , 'vst')
|
, ( 'OUT_LO' , 'vst')
|
||||||
, ( 'OUT_PH' , 'ap')
|
, ( 'OUT_PH' , 'ap')
|
||||||
, ( 'POWER' , 'vdd')
|
, ( 'POWER' , 'vdd')
|
||||||
, ( 'GROUND' , 'vss')
|
, ( 'GROUND' , 'vss')
|
||||||
, ( 'CLOCK' , '^ck.*')
|
, ( 'CLOCK' , '.*ck.*|.*nck.*')
|
||||||
, ( 'BLOCKAGE' , '^blockageNet*')
|
, ( 'BLOCKAGE' , '^blockage[Nn]et*')
|
||||||
|
, ( 'PAD' , '.*_px$')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -173,11 +201,11 @@ available settings. Some important remarks about thoses settings:
|
||||||
Each library entry in the tuple will be added to the search path according
|
Each library entry in the tuple will be added to the search path according
|
||||||
to the second parameter:
|
to the second parameter:
|
||||||
|
|
||||||
* :cb:`Environment::Append`: append to the search path.
|
* :cb:`AddMode::Append`: append to the search path.
|
||||||
|
|
||||||
* :cb:`Environment::Prepend`: insert in head of the search path.
|
* :cb:`AddMode::Prepend`: insert in head of the search path.
|
||||||
|
|
||||||
* :cb:`Environment::Replace`: look for a library of the same name and replace
|
* :cb:`AddMode::Replace`: look for a library of the same name and replace
|
||||||
it, whithout changing the search path order. If no library of that name
|
it, whithout changing the search path order. If no library of that name
|
||||||
already exists, it is appended.
|
already exists, it is appended.
|
||||||
|
|
||||||
|
@ -190,11 +218,11 @@ available settings. Some important remarks about thoses settings:
|
||||||
* For ``POWER``, ``GROUND``, ``CLOCK`` and ``BLOCKAGE`` net names, a regular
|
* For ``POWER``, ``GROUND``, ``CLOCK`` and ``BLOCKAGE`` net names, a regular
|
||||||
expression (|GNU| regexp) is expected.
|
expression (|GNU| regexp) is expected.
|
||||||
|
|
||||||
* The ``helpers.sysConfDir`` variable is supplied by the helpers, it is the
|
.. * The ``helpers.sysConfDir`` variable is supplied by the helpers, it is the
|
||||||
directory in which the system-wide configuration files are locateds.
|
.. directory in which the system-wide configuration files are locateds.
|
||||||
For a standard installation it would be: ``/soc/coriolis2``.
|
.. For a standard installation it would be: ``/soc/coriolis2``.
|
||||||
|
..
|
||||||
.. * Trick and naming convention about ``SYMBOLIC_TECHNOLOGY``, ``REAL_TECHNOLOGY``
|
.. .. * Trick and naming convention about ``SYMBOLIC_TECHNOLOGY``, ``REAL_TECHNOLOGY``
|
||||||
.. and ``DISPLAY``. In the previous releases, thoses files where to read by
|
.. and ``DISPLAY``. In the previous releases, thoses files where to read by
|
||||||
.. XML parsers, and still do if you triggers the XML compatibility mode.
|
.. XML parsers, and still do if you triggers the XML compatibility mode.
|
||||||
.. But now, they have Python conterparts. In the configuration files, you
|
.. But now, they have Python conterparts. In the configuration files, you
|
||||||
|
|
|
@ -201,10 +201,10 @@ Hooking up into |Alliance|
|
||||||
|Coriolis| relies on |Alliance| for the cell libraries. So after installing or
|
|Coriolis| relies on |Alliance| for the cell libraries. So after installing or
|
||||||
packaging, you must configure it so that it can found those libraries.
|
packaging, you must configure it so that it can found those libraries.
|
||||||
|
|
||||||
This is done by editing the one variable :cb:`cellsTop` in the |Alliance| helper
|
The easiest way is to setup the |Alliance| environment (i.e. sourcing
|
||||||
(see :ref:`Alliance Helper`). This variable must point to the directory of the
|
``.../etc/profile.d/alc_env.{sh,csh}``) **before** setting up |Coriolis| environment
|
||||||
cells libraries. In a typical installation, this is generally
|
(see the next section). To understand how |Coriolis| find/setup |Alliance| you may
|
||||||
:cb:`/usr/share/alliance/cells`.
|
have look to the :ref:`Alliance Helper`.
|
||||||
|
|
||||||
|
|
||||||
Setting up the Environment (coriolisEnv.py)
|
Setting up the Environment (coriolisEnv.py)
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -426,7 +426,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -287,7 +287,7 @@ available here: <a class="reference external" href="file:../../crlcore/index.htm
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -287,7 +287,7 @@ available here: <a class="reference external" href="file:../../dpgen/index.html"
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -287,7 +287,7 @@ available here: <a class="reference external" href="file:../../hurricane/index.h
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -292,7 +292,7 @@ mixed signal conterpart <strong>Anabatic</strong>.</p>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -292,7 +292,7 @@ mixed-signal conterpart Katana (<span class="sc">Kit[e]-Ana[logic]</span>).</p>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -287,7 +287,7 @@ available here: <a class="reference external" href="file:../../patterns/index.ht
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -320,7 +320,7 @@ associated C++ namespace.</li>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -692,7 +692,7 @@ terminal or not.</li>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -622,7 +622,7 @@ the module itself. This allow to mimic closely the C++ syntax:</p>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -336,7 +336,7 @@ the <code class="docutils literal"><span class="pre">DbU::Unit</span>  <spa
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -450,7 +450,7 @@ like in the code below:</p>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -289,7 +289,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -439,7 +439,7 @@ a standalone <code class="docutils literal"><span class="pre">DBo</span></code>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -321,7 +321,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -746,7 +746,7 @@ wire width and minimal spacing for the routers. They are patly redundant.</p>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -305,7 +305,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -287,7 +287,7 @@ available here: <a class="reference external" href="file:../../stratus/index.htm
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -287,7 +287,7 @@ available here: <a class="reference external" href="file:../../unicorn/index.htm
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -290,20 +290,20 @@ applies to both languages with only minor syntactic changes.</p>
|
||||||
<p>All configuration & initialization files are Python scripts, despite their
|
<p>All configuration & initialization files are Python scripts, despite their
|
||||||
<span class="cb">.conf</span> extention. From a syntactic point of view, there is no difference
|
<span class="cb">.conf</span> extention. From a syntactic point of view, there is no difference
|
||||||
between the system-wide configuration files and the user’s configuration,
|
between the system-wide configuration files and the user’s configuration,
|
||||||
they may use the same Python helpers.
|
they use the same Python helpers.
|
||||||
<span class="raw-html"><br class="medskip"/></span></p>
|
<span class="raw-html"><br class="medskip"/></span></p>
|
||||||
<p>Configuration is done in two stages:</p>
|
<p>Configuration is done in two stages:</p>
|
||||||
<ol class="arabic simple">
|
<ol class="arabic simple">
|
||||||
<li>Selecting the symbolic technology.</li>
|
<li>Selecting the technology.</li>
|
||||||
<li>Loading the complete configuration for the given technology.</li>
|
<li>Loading the complete configuration for the given technology
|
||||||
|
and the user’s settings.</li>
|
||||||
</ol>
|
</ol>
|
||||||
<p></p>
|
<p></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="first-stage-technology-selection">
|
<div class="section" id="first-stage-technology-selection">
|
||||||
<h2>First Stage: Technology Selection<a class="headerlink" href="#first-stage-technology-selection" title="Permalink to this headline">¶</a></h2>
|
<h2>First Stage: Technology Selection<a class="headerlink" href="#first-stage-technology-selection" title="Permalink to this headline">¶</a></h2>
|
||||||
<p> <span class="raw-html"><p class="noindent"></p></span>
|
<p> <span class="raw-html"><p class="noindent"></p></span>
|
||||||
The initialization process is done by executing, in order, the following
|
The initialization process is done by executing, in order, the following file(s):</p>
|
||||||
file(s):</p>
|
|
||||||
<table border="1" class="docutils">
|
<table border="1" class="docutils">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="8%" />
|
<col width="8%" />
|
||||||
|
@ -345,12 +345,12 @@ part is a dummy one.</p>
|
||||||
<div class="section" id="second-stage-technology-configuration-loading">
|
<div class="section" id="second-stage-technology-configuration-loading">
|
||||||
<h2>Second Stage: Technology Configuration Loading<a class="headerlink" href="#second-stage-technology-configuration-loading" title="Permalink to this headline">¶</a></h2>
|
<h2>Second Stage: Technology Configuration Loading<a class="headerlink" href="#second-stage-technology-configuration-loading" title="Permalink to this headline">¶</a></h2>
|
||||||
<p> <span class="raw-html"><p class="noindent"></p></span>
|
<p> <span class="raw-html"><p class="noindent"></p></span>
|
||||||
The <span class="cb">TECHNO</span> variable is set by the first stage and it’s the name of the
|
The <span class="cb">technology</span> variable is set by the first stage and it’s the name of the
|
||||||
symbolic technology. A directory of that name, with all the configuration files,
|
technology. A directory of that name, with all the configuration files,
|
||||||
must exists in the configuration directory. In addition to the technology-specific
|
must exists in the configuration directory (<span class="cb">/etc/coriolis2</span>).
|
||||||
directories, a <span class="cb">common/</span> directory is there to provides a trunk for all the
|
In addition to the technology-specific directories, a <span class="cb">common/</span> directory is
|
||||||
identical datas across the various technologies. The initialization process is done
|
there to provides a trunk for all the identical datas across the various technologies.
|
||||||
by executing, in order, the following file(s):</p>
|
The initialization process is done by executing, in order, the following file(s):</p>
|
||||||
<table border="1" class="docutils">
|
<table border="1" class="docutils">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="8%" />
|
<col width="8%" />
|
||||||
|
@ -366,7 +366,7 @@ by executing, in order, the following file(s):</p>
|
||||||
<tbody valign="top">
|
<tbody valign="top">
|
||||||
<tr class="row-even"><td><strong>1</strong></td>
|
<tr class="row-even"><td><strong>1</strong></td>
|
||||||
<td>The system initialization</td>
|
<td>The system initialization</td>
|
||||||
<td><span class="cb">/etc/coriolis2/<TECHNO>/<TOOL>.conf</span></td>
|
<td><span class="cb">/etc/coriolis2/<technology>/<TOOL>.conf</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row-odd"><td><strong>2</strong></td>
|
<tr class="row-odd"><td><strong>2</strong></td>
|
||||||
<td>The user’s global initialization</td>
|
<td>The user’s global initialization</td>
|
||||||
|
@ -381,10 +381,20 @@ by executing, in order, the following file(s):</p>
|
||||||
<div class="admonition note">
|
<div class="admonition note">
|
||||||
<p class="first admonition-title">Note</p>
|
<p class="first admonition-title">Note</p>
|
||||||
<p><em>The loading policy is not hard-coded.</em> It is implemented
|
<p><em>The loading policy is not hard-coded.</em> It is implemented
|
||||||
at Python level in <span class="cb">/etc/coriolis2/coriolisInit.py</span>, and thus may be easily be
|
at Python level in <span class="cb">/etc/coriolis2/coriolisInit.py</span>, and thus may be easily
|
||||||
amended to whatever site policy.</p>
|
amended to whatever site policy.</p>
|
||||||
<p class="last">The truly mandatory requirement is the existence of <span class="cb">coriolisInit.py</span>
|
<p>The truly mandatory requirement is the existence of <span class="cb">coriolisInit.py</span>
|
||||||
which <em>must</em> contain a <span class="cb">coriolisConfigure()</span> function with no argument.</p>
|
which <em>must</em> contain a <span class="cb">coriolisConfigure()</span> function with no argument.</p>
|
||||||
|
<p>The <span class="cb">coriolisInit.py</span> script execution is triggered by the <em>import</em> of
|
||||||
|
the <code class="docutils literal"><span class="pre">CRL</span></code> module:</p>
|
||||||
|
<div class="code python last highlight-default"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">sys</span>
|
||||||
|
<span class="kn">import</span> <span class="nn">os.path</span>
|
||||||
|
<span class="kn">import</span> <span class="nn">Cfg</span>
|
||||||
|
<span class="kn">import</span> <span class="nn">Hurricane</span>
|
||||||
|
<span class="kn">import</span> <span class="nn">CRL</span> <span class="c1"># Triggers execution of "coriolisInit.py".</span>
|
||||||
|
<span class="kn">import</span> <span class="nn">Viewer</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="configuration-helpers">
|
<div class="section" id="configuration-helpers">
|
||||||
|
@ -399,32 +409,46 @@ simple assembly of tuples. The helpers are installed under the directory:</p>
|
||||||
<p></p>
|
<p></p>
|
||||||
<div class="section" id="alliance-helper">
|
<div class="section" id="alliance-helper">
|
||||||
<span id="id1"></span><h3><span class="sc">Alliance</span> Helper<a class="headerlink" href="#alliance-helper" title="Permalink to this headline">¶</a></h3>
|
<span id="id1"></span><h3><span class="sc">Alliance</span> Helper<a class="headerlink" href="#alliance-helper" title="Permalink to this headline">¶</a></h3>
|
||||||
<p>The configuration file must provide a <span class="cb">allianceConfig</span> tuple of
|
<p>The configuration file must provide an <span class="cb">allianceConfig</span> tuple as shown below.
|
||||||
the form:</p>
|
Like all the <span class="sc">Coriolis</span> configuration file, it is to be executed through <span class="sc">Python</span>,
|
||||||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">cellsTop</span> <span class="o">=</span> <span class="s1">'/usr/share/alliance/cells/'</span>
|
so we can use it to perform a not so dumb search of the <span class="sc">Alliance</span> installation
|
||||||
|
directory. Our default policy is to try to read the <code class="docutils literal"><span class="pre">ALLIANCE_TOP</span></code> environment
|
||||||
|
variable, and if not found, default to <code class="docutils literal"><span class="pre">/soc/alliance</span></code>.</p>
|
||||||
|
<div class="code python highlight-default"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">os</span>
|
||||||
|
<span class="kn">from</span> <span class="nn">helpers.Alliance</span> <span class="k">import</span> <span class="n">AddMode</span>
|
||||||
|
<span class="kn">from</span> <span class="nn">helpers.Alliance</span> <span class="k">import</span> <span class="n">Gauge</span>
|
||||||
|
|
||||||
|
<span class="n">allianceTop</span> <span class="o">=</span> <span class="kc">None</span>
|
||||||
|
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s1">'ALLIANCE_TOP'</span><span class="p">):</span>
|
||||||
|
<span class="n">allianceTop</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">'ALLIANCE_TOP'</span><span class="p">]</span>
|
||||||
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">allianceTop</span><span class="p">):</span>
|
||||||
|
<span class="n">allianceTop</span> <span class="o">=</span> <span class="kc">None</span>
|
||||||
|
|
||||||
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">allianceTop</span><span class="p">:</span> <span class="n">allianceTop</span> <span class="o">=</span> <span class="s1">'/soc/alliance'</span>
|
||||||
|
|
||||||
|
<span class="n">cellsTop</span> <span class="o">=</span> <span class="n">allianceTop</span><span class="o">+</span><span class="s1">'/cells/'</span>
|
||||||
|
|
||||||
|
|
||||||
<span class="n">allianceConfig</span> <span class="o">=</span> \
|
<span class="n">allianceConfig</span> <span class="o">=</span> \
|
||||||
<span class="p">(</span> <span class="p">(</span> <span class="s1">'SYMBOLIC_TECHNOLOGY'</span><span class="p">,</span> <span class="n">helpers</span><span class="o">.</span><span class="n">sysConfDir</span><span class="o">+</span><span class="s1">'/technology.symbolic.xml'</span> <span class="p">)</span>
|
<span class="p">(</span> <span class="p">(</span> <span class="s1">'CATALOG'</span> <span class="p">,</span> <span class="s1">'CATAL'</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span> <span class="s1">'REAL_TECHNOLOGY'</span> <span class="p">,</span> <span class="n">helpers</span><span class="o">.</span><span class="n">sysConfDir</span><span class="o">+</span><span class="s1">'/technology.cmos130.s2r.xml'</span><span class="p">)</span>
|
|
||||||
<span class="p">,</span> <span class="p">(</span> <span class="s1">'DISPLAY'</span> <span class="p">,</span> <span class="n">helpers</span><span class="o">.</span><span class="n">sysConfDir</span><span class="o">+</span><span class="s1">'/display.xml'</span> <span class="p">)</span>
|
|
||||||
<span class="p">,</span> <span class="p">(</span> <span class="s1">'CATALOG'</span> <span class="p">,</span> <span class="s1">'CATAL'</span><span class="p">)</span>
|
|
||||||
<span class="p">,</span> <span class="p">(</span> <span class="s1">'WORKING_LIBRARY'</span> <span class="p">,</span> <span class="s1">'.'</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span> <span class="s1">'WORKING_LIBRARY'</span> <span class="p">,</span> <span class="s1">'.'</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span> <span class="s1">'SYSTEM_LIBRARY'</span> <span class="p">,</span> <span class="p">(</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'sxlib'</span> <span class="p">,</span> <span class="n">Environment</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span> <span class="s1">'SYSTEM_LIBRARY'</span> <span class="p">,</span> <span class="p">(</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'sxlib'</span> <span class="p">,</span> <span class="n">AddMode</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'dp_sxlib'</span><span class="p">,</span> <span class="n">Environment</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'dp_sxlib'</span><span class="p">,</span> <span class="n">AddMode</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'ramlib'</span> <span class="p">,</span> <span class="n">Environment</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'ramlib'</span> <span class="p">,</span> <span class="n">AddMode</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'romlib'</span> <span class="p">,</span> <span class="n">Environment</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'romlib'</span> <span class="p">,</span> <span class="n">AddMode</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'rflib'</span> <span class="p">,</span> <span class="n">Environment</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'rflib'</span> <span class="p">,</span> <span class="n">AddMode</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'rf2lib'</span> <span class="p">,</span> <span class="n">Environment</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'rf2lib'</span> <span class="p">,</span> <span class="n">AddMode</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'pxlib'</span> <span class="p">,</span> <span class="n">Environment</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span> <span class="p">)</span> <span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'pxlib'</span> <span class="p">,</span> <span class="n">AddMode</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span> <span class="s1">'SCALE_X'</span> <span class="p">,</span> <span class="mi">100</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">'padlib'</span> <span class="p">,</span> <span class="n">AddMode</span><span class="o">.</span><span class="n">Append</span><span class="p">)</span> <span class="p">)</span> <span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span> <span class="s1">'IN_LO'</span> <span class="p">,</span> <span class="s1">'vst'</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span> <span class="s1">'IN_LO'</span> <span class="p">,</span> <span class="s1">'vst'</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span> <span class="s1">'IN_PH'</span> <span class="p">,</span> <span class="s1">'ap'</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span> <span class="s1">'IN_PH'</span> <span class="p">,</span> <span class="s1">'ap'</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span> <span class="s1">'OUT_LO'</span> <span class="p">,</span> <span class="s1">'vst'</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span> <span class="s1">'OUT_LO'</span> <span class="p">,</span> <span class="s1">'vst'</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span> <span class="s1">'OUT_PH'</span> <span class="p">,</span> <span class="s1">'ap'</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span> <span class="s1">'OUT_PH'</span> <span class="p">,</span> <span class="s1">'ap'</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span> <span class="s1">'POWER'</span> <span class="p">,</span> <span class="s1">'vdd'</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span> <span class="s1">'POWER'</span> <span class="p">,</span> <span class="s1">'vdd'</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span> <span class="s1">'GROUND'</span> <span class="p">,</span> <span class="s1">'vss'</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span> <span class="s1">'GROUND'</span> <span class="p">,</span> <span class="s1">'vss'</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span> <span class="s1">'CLOCK'</span> <span class="p">,</span> <span class="s1">'^ck.*'</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span> <span class="s1">'CLOCK'</span> <span class="p">,</span> <span class="s1">'.*ck.*|.*nck.*'</span><span class="p">)</span>
|
||||||
<span class="p">,</span> <span class="p">(</span> <span class="s1">'BLOCKAGE'</span> <span class="p">,</span> <span class="s1">'^blockageNet*'</span><span class="p">)</span>
|
<span class="p">,</span> <span class="p">(</span> <span class="s1">'BLOCKAGE'</span> <span class="p">,</span> <span class="s1">'^blockage[Nn]et*'</span><span class="p">)</span>
|
||||||
|
<span class="p">,</span> <span class="p">(</span> <span class="s1">'PAD'</span> <span class="p">,</span> <span class="s1">'.*_px$'</span><span class="p">)</span>
|
||||||
<span class="p">)</span>
|
<span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -440,9 +464,9 @@ much alternatives for the others settings).</p>
|
||||||
Each library entry in the tuple will be added to the search path according
|
Each library entry in the tuple will be added to the search path according
|
||||||
to the second parameter:</p>
|
to the second parameter:</p>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><span class="cb">Environment::Append</span>: append to the search path.</li>
|
<li><span class="cb">AddMode::Append</span>: append to the search path.</li>
|
||||||
<li><span class="cb">Environment::Prepend</span>: insert in head of the search path.</li>
|
<li><span class="cb">AddMode::Prepend</span>: insert in head of the search path.</li>
|
||||||
<li><span class="cb">Environment::Replace</span>: look for a library of the same name and replace
|
<li><span class="cb">AddMode::Replace</span>: look for a library of the same name and replace
|
||||||
it, whithout changing the search path order. If no library of that name
|
it, whithout changing the search path order. If no library of that name
|
||||||
already exists, it is appended.</li>
|
already exists, it is appended.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -455,10 +479,6 @@ the first <em>Cell</em> whose name match.</p>
|
||||||
<li><p class="first">For <code class="docutils literal"><span class="pre">POWER</span></code>, <code class="docutils literal"><span class="pre">GROUND</span></code>, <code class="docutils literal"><span class="pre">CLOCK</span></code> and <code class="docutils literal"><span class="pre">BLOCKAGE</span></code> net names, a regular
|
<li><p class="first">For <code class="docutils literal"><span class="pre">POWER</span></code>, <code class="docutils literal"><span class="pre">GROUND</span></code>, <code class="docutils literal"><span class="pre">CLOCK</span></code> and <code class="docutils literal"><span class="pre">BLOCKAGE</span></code> net names, a regular
|
||||||
expression (<span class="sc">gnu</span> regexp) is expected.</p>
|
expression (<span class="sc">gnu</span> regexp) is expected.</p>
|
||||||
</li>
|
</li>
|
||||||
<li><p class="first">The <code class="docutils literal"><span class="pre">helpers.sysConfDir</span></code> variable is supplied by the helpers, it is the
|
|
||||||
directory in which the system-wide configuration files are locateds.
|
|
||||||
For a standard installation it would be: <code class="docutils literal"><span class="pre">/soc/coriolis2</span></code>.</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<p>A typical user’s configuration file would be:</p>
|
<p>A typical user’s configuration file would be:</p>
|
||||||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">os</span>
|
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">os</span>
|
||||||
|
@ -609,7 +629,7 @@ in <span class="cb"><CWD>/.coriolis2/settings.py</span> (that is, written
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -485,10 +485,10 @@ to emulate a top-level <code class="docutils literal"><span class="pre">autotool
|
||||||
<h2>Hooking up into <span class="sc">Alliance</span><a class="headerlink" href="#hooking-up-into-alliance" title="Permalink to this headline">¶</a></h2>
|
<h2>Hooking up into <span class="sc">Alliance</span><a class="headerlink" href="#hooking-up-into-alliance" title="Permalink to this headline">¶</a></h2>
|
||||||
<p><span class="sc">Coriolis</span> relies on <span class="sc">Alliance</span> for the cell libraries. So after installing or
|
<p><span class="sc">Coriolis</span> relies on <span class="sc">Alliance</span> for the cell libraries. So after installing or
|
||||||
packaging, you must configure it so that it can found those libraries.</p>
|
packaging, you must configure it so that it can found those libraries.</p>
|
||||||
<p>This is done by editing the one variable <span class="cb">cellsTop</span> in the <span class="sc">Alliance</span> helper
|
<p>The easiest way is to setup the <span class="sc">Alliance</span> environment (i.e. sourcing
|
||||||
(see <a class="reference internal" href="Configuration.html#alliance-helper"><span class="std std-ref">Alliance Helper</span></a>). This variable must point to the directory of the
|
<code class="docutils literal"><span class="pre">.../etc/profile.d/alc_env.{sh,csh}</span></code>) <strong>before</strong> setting up <span class="sc">Coriolis</span> environment
|
||||||
cells libraries. In a typical installation, this is generally
|
(see the next section). To understand how <span class="sc">Coriolis</span> find/setup <span class="sc">Alliance</span> you may
|
||||||
<span class="cb">/usr/share/alliance/cells</span>.</p>
|
have look to the <a class="reference internal" href="Configuration.html#alliance-helper"><span class="std std-ref">Alliance Helper</span></a>.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="setting-up-the-environment-coriolisenv-py">
|
<div class="section" id="setting-up-the-environment-coriolisenv-py">
|
||||||
<h2>Setting up the Environment (coriolisEnv.py)<a class="headerlink" href="#setting-up-the-environment-coriolisenv-py" title="Permalink to this headline">¶</a></h2>
|
<h2>Setting up the Environment (coriolisEnv.py)<a class="headerlink" href="#setting-up-the-environment-coriolisenv-py" title="Permalink to this headline">¶</a></h2>
|
||||||
|
@ -537,7 +537,7 @@ infinite loop if it’s called again in, say <span class="cb">~/.bashrc</spa
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -314,7 +314,7 @@ copyright© Chris C. N. <span class="sc">Chu</span> from the Iowa State Universi
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -371,7 +371,7 @@ whole design down and including the standard cells.</li>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -669,7 +669,7 @@ then run the <span class="sc">Python</span> script <span class="cb">doChip.py</s
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -1161,7 +1161,7 @@ is deleted, you will crash the application...</p>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -326,7 +326,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -287,7 +287,7 @@ available here: <a class="reference external" href="file:../../viewer/index.html
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -43,13 +43,14 @@ two methods:
|
||||||
All configuration & initialization files are Python scripts, despite their
|
All configuration & initialization files are Python scripts, despite their
|
||||||
|dot_conf| extention. From a syntactic point of view, there is no difference
|
|dot_conf| extention. From a syntactic point of view, there is no difference
|
||||||
between the system-wide configuration files and the user's configuration,
|
between the system-wide configuration files and the user's configuration,
|
||||||
they may use the same Python helpers.
|
they use the same Python helpers.
|
||||||
|medskip|
|
|medskip|
|
||||||
|
|
||||||
Configuration is done in two stages:
|
Configuration is done in two stages:
|
||||||
|
|
||||||
#. Selecting the symbolic technology.
|
#. Selecting the technology.
|
||||||
#. Loading the complete configuration for the given technology.
|
#. Loading the complete configuration for the given technology
|
||||||
|
and the user's settings.
|
||||||
|
|
||||||
|newpage|
|
|newpage|
|
||||||
|
|
||||||
|
@ -58,8 +59,7 @@ First Stage: Technology Selection
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|noindent|
|
|noindent|
|
||||||
The initialization process is done by executing, in order, the following
|
The initialization process is done by executing, in order, the following file(s):
|
||||||
file(s):
|
|
||||||
|
|
||||||
+-------+----------------------------------+----------------------------------------------+
|
+-------+----------------------------------+----------------------------------------------+
|
||||||
| Order | Meaning | File |
|
| Order | Meaning | File |
|
||||||
|
@ -87,30 +87,42 @@ Second Stage: Technology Configuration Loading
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|noindent|
|
|noindent|
|
||||||
The :cb:`TECHNO` variable is set by the first stage and it's the name of the
|
The :cb:`technology` variable is set by the first stage and it's the name of the
|
||||||
symbolic technology. A directory of that name, with all the configuration files,
|
technology. A directory of that name, with all the configuration files,
|
||||||
must exists in the configuration directory. In addition to the technology-specific
|
must exists in the configuration directory (:cb:`/etc/coriolis2`).
|
||||||
directories, a :cb:`common/` directory is there to provides a trunk for all the
|
In addition to the technology-specific directories, a :cb:`common/` directory is
|
||||||
identical datas across the various technologies. The initialization process is done
|
there to provides a trunk for all the identical datas across the various technologies.
|
||||||
by executing, in order, the following file(s):
|
The initialization process is done by executing, in order, the following file(s):
|
||||||
|
|
||||||
+-------+----------------------------------+----------------------------------------------+
|
+-------+----------------------------------+-----------------------------------------------+
|
||||||
| Order | Meaning | File |
|
| Order | Meaning | File |
|
||||||
+=======+==================================+==============================================+
|
+=======+==================================+===============================================+
|
||||||
| **1** | The system initialization | :cb:`/etc/coriolis2/<TECHNO>/<TOOL>.conf` |
|
| **1** | The system initialization | :cb:`/etc/coriolis2/<technology>/<TOOL>.conf` |
|
||||||
+-------+----------------------------------+----------------------------------------------+
|
+-------+----------------------------------+-----------------------------------------------+
|
||||||
| **2** | The user's global initialization | :cb:`${HOME}/.coriolis2/settings.py` |
|
| **2** | The user's global initialization | :cb:`${HOME}/.coriolis2/settings.py` |
|
||||||
+-------+----------------------------------+----------------------------------------------+
|
+-------+----------------------------------+-----------------------------------------------+
|
||||||
| **3** | The user's local initialization | :cb:`<CWD>/.coriolis2/settings.py` |
|
| **3** | The user's local initialization | :cb:`<CWD>/.coriolis2/settings.py` |
|
||||||
+-------+----------------------------------+----------------------------------------------+
|
+-------+----------------------------------+-----------------------------------------------+
|
||||||
|
|
||||||
.. note:: *The loading policy is not hard-coded.* It is implemented
|
.. note:: *The loading policy is not hard-coded.* It is implemented
|
||||||
at Python level in :cb:`/etc/coriolis2/coriolisInit.py`, and thus may be easily be
|
at Python level in :cb:`/etc/coriolis2/coriolisInit.py`, and thus may be easily
|
||||||
amended to whatever site policy.
|
amended to whatever site policy.
|
||||||
|
|
||||||
The truly mandatory requirement is the existence of :cb:`coriolisInit.py`
|
The truly mandatory requirement is the existence of :cb:`coriolisInit.py`
|
||||||
which *must* contain a :cb:`coriolisConfigure()` function with no argument.
|
which *must* contain a :cb:`coriolisConfigure()` function with no argument.
|
||||||
|
|
||||||
|
The :cb:`coriolisInit.py` script execution is triggered by the *import* of
|
||||||
|
the ``CRL`` module:
|
||||||
|
|
||||||
|
.. code:: python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os.path
|
||||||
|
import Cfg
|
||||||
|
import Hurricane
|
||||||
|
import CRL # Triggers execution of "coriolisInit.py".
|
||||||
|
import Viewer
|
||||||
|
|
||||||
|
|
||||||
Configuration Helpers
|
Configuration Helpers
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
@ -131,33 +143,49 @@ Where :cb:`<install>/` is the root of the installation.
|
||||||
|Alliance| Helper
|
|Alliance| Helper
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
The configuration file must provide a :cb:`allianceConfig` tuple of
|
The configuration file must provide an :cb:`allianceConfig` tuple as shown below.
|
||||||
the form: ::
|
Like all the |Coriolis| configuration file, it is to be executed through |Python|,
|
||||||
|
so we can use it to perform a not so dumb search of the |Alliance| installation
|
||||||
|
directory. Our default policy is to try to read the ``ALLIANCE_TOP`` environment
|
||||||
|
variable, and if not found, default to ``/soc/alliance``.
|
||||||
|
|
||||||
|
.. code:: python
|
||||||
|
|
||||||
|
import os
|
||||||
|
from helpers.Alliance import AddMode
|
||||||
|
from helpers.Alliance import Gauge
|
||||||
|
|
||||||
|
allianceTop = None
|
||||||
|
if os.environ.has_key('ALLIANCE_TOP'):
|
||||||
|
allianceTop = os.environ['ALLIANCE_TOP']
|
||||||
|
if not os.path.isdir(allianceTop):
|
||||||
|
allianceTop = None
|
||||||
|
|
||||||
|
if not allianceTop: allianceTop = '/soc/alliance'
|
||||||
|
|
||||||
|
cellsTop = allianceTop+'/cells/'
|
||||||
|
|
||||||
cellsTop = '/usr/share/alliance/cells/'
|
|
||||||
|
|
||||||
allianceConfig = \
|
allianceConfig = \
|
||||||
( ( 'SYMBOLIC_TECHNOLOGY', helpers.sysConfDir+'/technology.symbolic.xml' )
|
( ( 'CATALOG' , 'CATAL')
|
||||||
, ( 'REAL_TECHNOLOGY' , helpers.sysConfDir+'/technology.cmos130.s2r.xml')
|
|
||||||
, ( 'DISPLAY' , helpers.sysConfDir+'/display.xml' )
|
|
||||||
, ( 'CATALOG' , 'CATAL')
|
|
||||||
, ( 'WORKING_LIBRARY' , '.')
|
, ( 'WORKING_LIBRARY' , '.')
|
||||||
, ( 'SYSTEM_LIBRARY' , ( (cellsTop+'sxlib' , Environment.Append)
|
, ( 'SYSTEM_LIBRARY' , ( (cellsTop+'sxlib' , AddMode.Append)
|
||||||
, (cellsTop+'dp_sxlib', Environment.Append)
|
, (cellsTop+'dp_sxlib', AddMode.Append)
|
||||||
, (cellsTop+'ramlib' , Environment.Append)
|
, (cellsTop+'ramlib' , AddMode.Append)
|
||||||
, (cellsTop+'romlib' , Environment.Append)
|
, (cellsTop+'romlib' , AddMode.Append)
|
||||||
, (cellsTop+'rflib' , Environment.Append)
|
, (cellsTop+'rflib' , AddMode.Append)
|
||||||
, (cellsTop+'rf2lib' , Environment.Append)
|
, (cellsTop+'rf2lib' , AddMode.Append)
|
||||||
, (cellsTop+'pxlib' , Environment.Append) ) )
|
, (cellsTop+'pxlib' , AddMode.Append)
|
||||||
, ( 'SCALE_X' , 100)
|
, (cellsTop+'padlib' , AddMode.Append) ) )
|
||||||
, ( 'IN_LO' , 'vst')
|
, ( 'IN_LO' , 'vst')
|
||||||
, ( 'IN_PH' , 'ap')
|
, ( 'IN_PH' , 'ap')
|
||||||
, ( 'OUT_LO' , 'vst')
|
, ( 'OUT_LO' , 'vst')
|
||||||
, ( 'OUT_PH' , 'ap')
|
, ( 'OUT_PH' , 'ap')
|
||||||
, ( 'POWER' , 'vdd')
|
, ( 'POWER' , 'vdd')
|
||||||
, ( 'GROUND' , 'vss')
|
, ( 'GROUND' , 'vss')
|
||||||
, ( 'CLOCK' , '^ck.*')
|
, ( 'CLOCK' , '.*ck.*|.*nck.*')
|
||||||
, ( 'BLOCKAGE' , '^blockageNet*')
|
, ( 'BLOCKAGE' , '^blockage[Nn]et*')
|
||||||
|
, ( 'PAD' , '.*_px$')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -173,11 +201,11 @@ available settings. Some important remarks about thoses settings:
|
||||||
Each library entry in the tuple will be added to the search path according
|
Each library entry in the tuple will be added to the search path according
|
||||||
to the second parameter:
|
to the second parameter:
|
||||||
|
|
||||||
* :cb:`Environment::Append`: append to the search path.
|
* :cb:`AddMode::Append`: append to the search path.
|
||||||
|
|
||||||
* :cb:`Environment::Prepend`: insert in head of the search path.
|
* :cb:`AddMode::Prepend`: insert in head of the search path.
|
||||||
|
|
||||||
* :cb:`Environment::Replace`: look for a library of the same name and replace
|
* :cb:`AddMode::Replace`: look for a library of the same name and replace
|
||||||
it, whithout changing the search path order. If no library of that name
|
it, whithout changing the search path order. If no library of that name
|
||||||
already exists, it is appended.
|
already exists, it is appended.
|
||||||
|
|
||||||
|
@ -190,11 +218,11 @@ available settings. Some important remarks about thoses settings:
|
||||||
* For ``POWER``, ``GROUND``, ``CLOCK`` and ``BLOCKAGE`` net names, a regular
|
* For ``POWER``, ``GROUND``, ``CLOCK`` and ``BLOCKAGE`` net names, a regular
|
||||||
expression (|GNU| regexp) is expected.
|
expression (|GNU| regexp) is expected.
|
||||||
|
|
||||||
* The ``helpers.sysConfDir`` variable is supplied by the helpers, it is the
|
.. * The ``helpers.sysConfDir`` variable is supplied by the helpers, it is the
|
||||||
directory in which the system-wide configuration files are locateds.
|
.. directory in which the system-wide configuration files are locateds.
|
||||||
For a standard installation it would be: ``/soc/coriolis2``.
|
.. For a standard installation it would be: ``/soc/coriolis2``.
|
||||||
|
..
|
||||||
.. * Trick and naming convention about ``SYMBOLIC_TECHNOLOGY``, ``REAL_TECHNOLOGY``
|
.. .. * Trick and naming convention about ``SYMBOLIC_TECHNOLOGY``, ``REAL_TECHNOLOGY``
|
||||||
.. and ``DISPLAY``. In the previous releases, thoses files where to read by
|
.. and ``DISPLAY``. In the previous releases, thoses files where to read by
|
||||||
.. XML parsers, and still do if you triggers the XML compatibility mode.
|
.. XML parsers, and still do if you triggers the XML compatibility mode.
|
||||||
.. But now, they have Python conterparts. In the configuration files, you
|
.. But now, they have Python conterparts. In the configuration files, you
|
||||||
|
|
|
@ -201,10 +201,10 @@ Hooking up into |Alliance|
|
||||||
|Coriolis| relies on |Alliance| for the cell libraries. So after installing or
|
|Coriolis| relies on |Alliance| for the cell libraries. So after installing or
|
||||||
packaging, you must configure it so that it can found those libraries.
|
packaging, you must configure it so that it can found those libraries.
|
||||||
|
|
||||||
This is done by editing the one variable :cb:`cellsTop` in the |Alliance| helper
|
The easiest way is to setup the |Alliance| environment (i.e. sourcing
|
||||||
(see :ref:`Alliance Helper`). This variable must point to the directory of the
|
``.../etc/profile.d/alc_env.{sh,csh}``) **before** setting up |Coriolis| environment
|
||||||
cells libraries. In a typical installation, this is generally
|
(see the next section). To understand how |Coriolis| find/setup |Alliance| you may
|
||||||
:cb:`/usr/share/alliance/cells`.
|
have look to the :ref:`Alliance Helper`.
|
||||||
|
|
||||||
|
|
||||||
Setting up the Environment (coriolisEnv.py)
|
Setting up the Environment (coriolisEnv.py)
|
||||||
|
|
|
@ -271,7 +271,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -278,7 +278,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -262,7 +262,7 @@
|
||||||
<h1>Coriolis 2 documentation</h1>
|
<h1>Coriolis 2 documentation</h1>
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
Documentation generated on Nov 17, 2017.
|
Documentation generated on Dec 02, 2017.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p><strong>Documentation Topics</strong></p>
|
<p><strong>Documentation Topics</strong></p>
|
||||||
|
@ -352,7 +352,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -281,7 +281,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LFooter"><small>
|
<td class="LFooter"><small>
|
||||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||||
using a <a href="https://readthedocs.org">RTD</a> theme on Nov 17, 2017.
|
using a <a href="https://readthedocs.org">RTD</a> theme on Dec 02, 2017.
|
||||||
</small></td>
|
</small></td>
|
||||||
<td class="RFooter"></td>
|
<td class="RFooter"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue