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
|
||||
|dot_conf| extention. From a syntactic point of view, there is no difference
|
||||
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|
|
||||
|
||||
Configuration is done in two stages:
|
||||
|
||||
#. Selecting the symbolic technology.
|
||||
#. Loading the complete configuration for the given technology.
|
||||
#. Selecting the technology.
|
||||
#. Loading the complete configuration for the given technology
|
||||
and the user's settings.
|
||||
|
||||
|newpage|
|
||||
|
||||
|
@ -58,8 +59,7 @@ First Stage: Technology Selection
|
|||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|noindent|
|
||||
The initialization process is done by executing, in order, the following
|
||||
file(s):
|
||||
The initialization process is done by executing, in order, the following file(s):
|
||||
|
||||
+-------+----------------------------------+----------------------------------------------+
|
||||
| Order | Meaning | File |
|
||||
|
@ -87,30 +87,42 @@ Second Stage: Technology Configuration Loading
|
|||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|noindent|
|
||||
The :cb:`TECHNO` 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,
|
||||
must exists in the configuration directory. In addition to the technology-specific
|
||||
directories, a :cb:`common/` directory is there to provides a trunk for all the
|
||||
identical datas across the various technologies. The initialization process is done
|
||||
by executing, in order, the following file(s):
|
||||
The :cb:`technology` variable is set by the first stage and it's the name of the
|
||||
technology. A directory of that name, with all the configuration files,
|
||||
must exists in the configuration directory (:cb:`/etc/coriolis2`).
|
||||
In addition to the technology-specific directories, a :cb:`common/` directory is
|
||||
there to provides a trunk for all the identical datas across the various technologies.
|
||||
The initialization process is done by executing, in order, the following file(s):
|
||||
|
||||
+-------+----------------------------------+----------------------------------------------+
|
||||
| Order | Meaning | File |
|
||||
+=======+==================================+==============================================+
|
||||
| **1** | The system initialization | :cb:`/etc/coriolis2/<TECHNO>/<TOOL>.conf` |
|
||||
+-------+----------------------------------+----------------------------------------------+
|
||||
| **2** | The user's global initialization | :cb:`${HOME}/.coriolis2/settings.py` |
|
||||
+-------+----------------------------------+----------------------------------------------+
|
||||
| **3** | The user's local initialization | :cb:`<CWD>/.coriolis2/settings.py` |
|
||||
+-------+----------------------------------+----------------------------------------------+
|
||||
+-------+----------------------------------+-----------------------------------------------+
|
||||
| Order | Meaning | File |
|
||||
+=======+==================================+===============================================+
|
||||
| **1** | The system initialization | :cb:`/etc/coriolis2/<technology>/<TOOL>.conf` |
|
||||
+-------+----------------------------------+-----------------------------------------------+
|
||||
| **2** | The user's global initialization | :cb:`${HOME}/.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
|
||||
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.
|
||||
|
||||
The truly mandatory requirement is the existence of :cb:`coriolisInit.py`
|
||||
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
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -131,33 +143,49 @@ Where :cb:`<install>/` is the root of the installation.
|
|||
|Alliance| Helper
|
||||
-----------------
|
||||
|
||||
The configuration file must provide a :cb:`allianceConfig` tuple of
|
||||
the form: ::
|
||||
|
||||
cellsTop = '/usr/share/alliance/cells/'
|
||||
The configuration file must provide an :cb:`allianceConfig` tuple as shown below.
|
||||
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/'
|
||||
|
||||
|
||||
allianceConfig = \
|
||||
( ( 'SYMBOLIC_TECHNOLOGY', helpers.sysConfDir+'/technology.symbolic.xml' )
|
||||
, ( 'REAL_TECHNOLOGY' , helpers.sysConfDir+'/technology.cmos130.s2r.xml')
|
||||
, ( 'DISPLAY' , helpers.sysConfDir+'/display.xml' )
|
||||
, ( 'CATALOG' , 'CATAL')
|
||||
( ( 'CATALOG' , 'CATAL')
|
||||
, ( 'WORKING_LIBRARY' , '.')
|
||||
, ( 'SYSTEM_LIBRARY' , ( (cellsTop+'sxlib' , Environment.Append)
|
||||
, (cellsTop+'dp_sxlib', Environment.Append)
|
||||
, (cellsTop+'ramlib' , Environment.Append)
|
||||
, (cellsTop+'romlib' , Environment.Append)
|
||||
, (cellsTop+'rflib' , Environment.Append)
|
||||
, (cellsTop+'rf2lib' , Environment.Append)
|
||||
, (cellsTop+'pxlib' , Environment.Append) ) )
|
||||
, ( 'SCALE_X' , 100)
|
||||
, ( 'SYSTEM_LIBRARY' , ( (cellsTop+'sxlib' , AddMode.Append)
|
||||
, (cellsTop+'dp_sxlib', AddMode.Append)
|
||||
, (cellsTop+'ramlib' , AddMode.Append)
|
||||
, (cellsTop+'romlib' , AddMode.Append)
|
||||
, (cellsTop+'rflib' , AddMode.Append)
|
||||
, (cellsTop+'rf2lib' , AddMode.Append)
|
||||
, (cellsTop+'pxlib' , AddMode.Append)
|
||||
, (cellsTop+'padlib' , AddMode.Append) ) )
|
||||
, ( 'IN_LO' , 'vst')
|
||||
, ( 'IN_PH' , 'ap')
|
||||
, ( 'OUT_LO' , 'vst')
|
||||
, ( 'OUT_PH' , 'ap')
|
||||
, ( 'POWER' , 'vdd')
|
||||
, ( 'GROUND' , 'vss')
|
||||
, ( 'CLOCK' , '^ck.*')
|
||||
, ( 'BLOCKAGE' , '^blockageNet*')
|
||||
, ( 'CLOCK' , '.*ck.*|.*nck.*')
|
||||
, ( '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
|
||||
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
|
||||
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
|
||||
expression (|GNU| regexp) is expected.
|
||||
|
||||
* The ``helpers.sysConfDir`` 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: ``/soc/coriolis2``.
|
||||
|
||||
.. * Trick and naming convention about ``SYMBOLIC_TECHNOLOGY``, ``REAL_TECHNOLOGY``
|
||||
.. * The ``helpers.sysConfDir`` 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: ``/soc/coriolis2``.
|
||||
..
|
||||
.. .. * Trick and naming convention about ``SYMBOLIC_TECHNOLOGY``, ``REAL_TECHNOLOGY``
|
||||
.. and ``DISPLAY``. In the previous releases, thoses files where to read by
|
||||
.. XML parsers, and still do if you triggers the XML compatibility mode.
|
||||
.. 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
|
||||
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
|
||||
(see :ref:`Alliance Helper`). This variable must point to the directory of the
|
||||
cells libraries. In a typical installation, this is generally
|
||||
:cb:`/usr/share/alliance/cells`.
|
||||
The easiest way is to setup the |Alliance| environment (i.e. sourcing
|
||||
``.../etc/profile.d/alc_env.{sh,csh}``) **before** setting up |Coriolis| environment
|
||||
(see the next section). To understand how |Coriolis| find/setup |Alliance| you may
|
||||
have look to the :ref:`Alliance Helper`.
|
||||
|
||||
|
||||
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>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -287,7 +287,7 @@ available here: <a class="reference external" href="file:../../crlcore/index.htm
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -287,7 +287,7 @@ available here: <a class="reference external" href="file:../../dpgen/index.html"
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -287,7 +287,7 @@ available here: <a class="reference external" href="file:../../hurricane/index.h
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -292,7 +292,7 @@ mixed signal conterpart <strong>Anabatic</strong>.</p>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -292,7 +292,7 @@ mixed-signal conterpart Katana (<span class="sc">Kit[e]-Ana[logic]</span>).</p>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -287,7 +287,7 @@ available here: <a class="reference external" href="file:../../patterns/index.ht
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -320,7 +320,7 @@ associated C++ namespace.</li>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -692,7 +692,7 @@ terminal or not.</li>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -622,7 +622,7 @@ the module itself. This allow to mimic closely the C++ syntax:</p>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -336,7 +336,7 @@ the <code class="docutils literal"><span class="pre">DbU::Unit</span>  <spa
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -450,7 +450,7 @@ like in the code below:</p>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -289,7 +289,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -439,7 +439,7 @@ a standalone <code class="docutils literal"><span class="pre">DBo</span></code>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -321,7 +321,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -746,7 +746,7 @@ wire width and minimal spacing for the routers. They are patly redundant.</p>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -305,7 +305,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -287,7 +287,7 @@ available here: <a class="reference external" href="file:../../stratus/index.htm
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -287,7 +287,7 @@ available here: <a class="reference external" href="file:../../unicorn/index.htm
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</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
|
||||
<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,
|
||||
they may use the same Python helpers.
|
||||
they use the same Python helpers.
|
||||
<span class="raw-html"><br class="medskip"/></span></p>
|
||||
<p>Configuration is done in two stages:</p>
|
||||
<ol class="arabic simple">
|
||||
<li>Selecting the symbolic technology.</li>
|
||||
<li>Loading the complete configuration for the given technology.</li>
|
||||
<li>Selecting the technology.</li>
|
||||
<li>Loading the complete configuration for the given technology
|
||||
and the user’s settings.</li>
|
||||
</ol>
|
||||
<p></p>
|
||||
</div>
|
||||
<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>
|
||||
<p> <span class="raw-html"><p class="noindent"></p></span>
|
||||
The initialization process is done 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">
|
||||
<colgroup>
|
||||
<col width="8%" />
|
||||
|
@ -345,12 +345,12 @@ part is a dummy one.</p>
|
|||
<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>
|
||||
<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
|
||||
symbolic technology. A directory of that name, with all the configuration files,
|
||||
must exists in the configuration directory. In addition to the technology-specific
|
||||
directories, a <span class="cb">common/</span> directory is there to provides a trunk for all the
|
||||
identical datas across the various technologies. The initialization process is done
|
||||
by executing, in order, the following file(s):</p>
|
||||
The <span class="cb">technology</span> variable is set by the first stage and it’s the name of the
|
||||
technology. A directory of that name, with all the configuration files,
|
||||
must exists in the configuration directory (<span class="cb">/etc/coriolis2</span>).
|
||||
In addition to the technology-specific directories, a <span class="cb">common/</span> directory is
|
||||
there to provides a trunk for all the identical datas across the various technologies.
|
||||
The initialization process is done by executing, in order, the following file(s):</p>
|
||||
<table border="1" class="docutils">
|
||||
<colgroup>
|
||||
<col width="8%" />
|
||||
|
@ -366,7 +366,7 @@ by executing, in order, the following file(s):</p>
|
|||
<tbody valign="top">
|
||||
<tr class="row-even"><td><strong>1</strong></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 class="row-odd"><td><strong>2</strong></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">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<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>
|
||||
<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>
|
||||
<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 class="section" id="configuration-helpers">
|
||||
|
@ -399,32 +409,46 @@ simple assembly of tuples. The helpers are installed under the directory:</p>
|
|||
<p></p>
|
||||
<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>
|
||||
<p>The configuration file must provide a <span class="cb">allianceConfig</span> tuple of
|
||||
the form:</p>
|
||||
<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>
|
||||
<p>The configuration file must provide an <span class="cb">allianceConfig</span> tuple as shown below.
|
||||
Like all the <span class="sc">Coriolis</span> configuration file, it is to be executed through <span class="sc">Python</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="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">'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">'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">'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="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">'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">'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">'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">'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">'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="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="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">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">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">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">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">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">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">'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_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_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">'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">'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">'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">'^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>
|
||||
</pre></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
|
||||
to the second parameter:</p>
|
||||
<ul class="simple">
|
||||
<li><span class="cb">Environment::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">Environment::Replace</span>: look for a library of the same name and replace
|
||||
<li><span class="cb">AddMode::Append</span>: append to the search path.</li>
|
||||
<li><span class="cb">AddMode::Prepend</span>: insert in head of the search path.</li>
|
||||
<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
|
||||
already exists, it is appended.</li>
|
||||
</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
|
||||
expression (<span class="sc">gnu</span> regexp) is expected.</p>
|
||||
</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>
|
||||
<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>
|
||||
|
@ -609,7 +629,7 @@ in <span class="cb"><CWD>/.coriolis2/settings.py</span> (that is, written
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</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>
|
||||
<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>
|
||||
<p>This is done by editing the one variable <span class="cb">cellsTop</span> in the <span class="sc">Alliance</span> helper
|
||||
(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
|
||||
cells libraries. In a typical installation, this is generally
|
||||
<span class="cb">/usr/share/alliance/cells</span>.</p>
|
||||
<p>The easiest way is to setup the <span class="sc">Alliance</span> environment (i.e. sourcing
|
||||
<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
|
||||
(see the next section). To understand how <span class="sc">Coriolis</span> find/setup <span class="sc">Alliance</span> you may
|
||||
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 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>
|
||||
|
@ -537,7 +537,7 @@ infinite loop if it’s called again in, say <span class="cb">~/.bashrc</spa
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -314,7 +314,7 @@ copyright© Chris C. N. <span class="sc">Chu</span> from the Iowa State Universi
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -371,7 +371,7 @@ whole design down and including the standard cells.</li>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -669,7 +669,7 @@ then run the <span class="sc">Python</span> script <span class="cb">doChip.py</s
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -1161,7 +1161,7 @@ is deleted, you will crash the application...</p>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -326,7 +326,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -287,7 +287,7 @@ available here: <a class="reference external" href="file:../../viewer/index.html
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -43,13 +43,14 @@ two methods:
|
|||
All configuration & initialization files are Python scripts, despite their
|
||||
|dot_conf| extention. From a syntactic point of view, there is no difference
|
||||
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|
|
||||
|
||||
Configuration is done in two stages:
|
||||
|
||||
#. Selecting the symbolic technology.
|
||||
#. Loading the complete configuration for the given technology.
|
||||
#. Selecting the technology.
|
||||
#. Loading the complete configuration for the given technology
|
||||
and the user's settings.
|
||||
|
||||
|newpage|
|
||||
|
||||
|
@ -58,8 +59,7 @@ First Stage: Technology Selection
|
|||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|noindent|
|
||||
The initialization process is done by executing, in order, the following
|
||||
file(s):
|
||||
The initialization process is done by executing, in order, the following file(s):
|
||||
|
||||
+-------+----------------------------------+----------------------------------------------+
|
||||
| Order | Meaning | File |
|
||||
|
@ -87,30 +87,42 @@ Second Stage: Technology Configuration Loading
|
|||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|noindent|
|
||||
The :cb:`TECHNO` 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,
|
||||
must exists in the configuration directory. In addition to the technology-specific
|
||||
directories, a :cb:`common/` directory is there to provides a trunk for all the
|
||||
identical datas across the various technologies. The initialization process is done
|
||||
by executing, in order, the following file(s):
|
||||
The :cb:`technology` variable is set by the first stage and it's the name of the
|
||||
technology. A directory of that name, with all the configuration files,
|
||||
must exists in the configuration directory (:cb:`/etc/coriolis2`).
|
||||
In addition to the technology-specific directories, a :cb:`common/` directory is
|
||||
there to provides a trunk for all the identical datas across the various technologies.
|
||||
The initialization process is done by executing, in order, the following file(s):
|
||||
|
||||
+-------+----------------------------------+----------------------------------------------+
|
||||
| Order | Meaning | File |
|
||||
+=======+==================================+==============================================+
|
||||
| **1** | The system initialization | :cb:`/etc/coriolis2/<TECHNO>/<TOOL>.conf` |
|
||||
+-------+----------------------------------+----------------------------------------------+
|
||||
| **2** | The user's global initialization | :cb:`${HOME}/.coriolis2/settings.py` |
|
||||
+-------+----------------------------------+----------------------------------------------+
|
||||
| **3** | The user's local initialization | :cb:`<CWD>/.coriolis2/settings.py` |
|
||||
+-------+----------------------------------+----------------------------------------------+
|
||||
+-------+----------------------------------+-----------------------------------------------+
|
||||
| Order | Meaning | File |
|
||||
+=======+==================================+===============================================+
|
||||
| **1** | The system initialization | :cb:`/etc/coriolis2/<technology>/<TOOL>.conf` |
|
||||
+-------+----------------------------------+-----------------------------------------------+
|
||||
| **2** | The user's global initialization | :cb:`${HOME}/.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
|
||||
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.
|
||||
|
||||
The truly mandatory requirement is the existence of :cb:`coriolisInit.py`
|
||||
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
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -131,33 +143,49 @@ Where :cb:`<install>/` is the root of the installation.
|
|||
|Alliance| Helper
|
||||
-----------------
|
||||
|
||||
The configuration file must provide a :cb:`allianceConfig` tuple of
|
||||
the form: ::
|
||||
|
||||
cellsTop = '/usr/share/alliance/cells/'
|
||||
The configuration file must provide an :cb:`allianceConfig` tuple as shown below.
|
||||
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/'
|
||||
|
||||
|
||||
allianceConfig = \
|
||||
( ( 'SYMBOLIC_TECHNOLOGY', helpers.sysConfDir+'/technology.symbolic.xml' )
|
||||
, ( 'REAL_TECHNOLOGY' , helpers.sysConfDir+'/technology.cmos130.s2r.xml')
|
||||
, ( 'DISPLAY' , helpers.sysConfDir+'/display.xml' )
|
||||
, ( 'CATALOG' , 'CATAL')
|
||||
( ( 'CATALOG' , 'CATAL')
|
||||
, ( 'WORKING_LIBRARY' , '.')
|
||||
, ( 'SYSTEM_LIBRARY' , ( (cellsTop+'sxlib' , Environment.Append)
|
||||
, (cellsTop+'dp_sxlib', Environment.Append)
|
||||
, (cellsTop+'ramlib' , Environment.Append)
|
||||
, (cellsTop+'romlib' , Environment.Append)
|
||||
, (cellsTop+'rflib' , Environment.Append)
|
||||
, (cellsTop+'rf2lib' , Environment.Append)
|
||||
, (cellsTop+'pxlib' , Environment.Append) ) )
|
||||
, ( 'SCALE_X' , 100)
|
||||
, ( 'SYSTEM_LIBRARY' , ( (cellsTop+'sxlib' , AddMode.Append)
|
||||
, (cellsTop+'dp_sxlib', AddMode.Append)
|
||||
, (cellsTop+'ramlib' , AddMode.Append)
|
||||
, (cellsTop+'romlib' , AddMode.Append)
|
||||
, (cellsTop+'rflib' , AddMode.Append)
|
||||
, (cellsTop+'rf2lib' , AddMode.Append)
|
||||
, (cellsTop+'pxlib' , AddMode.Append)
|
||||
, (cellsTop+'padlib' , AddMode.Append) ) )
|
||||
, ( 'IN_LO' , 'vst')
|
||||
, ( 'IN_PH' , 'ap')
|
||||
, ( 'OUT_LO' , 'vst')
|
||||
, ( 'OUT_PH' , 'ap')
|
||||
, ( 'POWER' , 'vdd')
|
||||
, ( 'GROUND' , 'vss')
|
||||
, ( 'CLOCK' , '^ck.*')
|
||||
, ( 'BLOCKAGE' , '^blockageNet*')
|
||||
, ( 'CLOCK' , '.*ck.*|.*nck.*')
|
||||
, ( '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
|
||||
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
|
||||
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
|
||||
expression (|GNU| regexp) is expected.
|
||||
|
||||
* The ``helpers.sysConfDir`` 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: ``/soc/coriolis2``.
|
||||
|
||||
.. * Trick and naming convention about ``SYMBOLIC_TECHNOLOGY``, ``REAL_TECHNOLOGY``
|
||||
.. * The ``helpers.sysConfDir`` 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: ``/soc/coriolis2``.
|
||||
..
|
||||
.. .. * Trick and naming convention about ``SYMBOLIC_TECHNOLOGY``, ``REAL_TECHNOLOGY``
|
||||
.. and ``DISPLAY``. In the previous releases, thoses files where to read by
|
||||
.. XML parsers, and still do if you triggers the XML compatibility mode.
|
||||
.. 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
|
||||
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
|
||||
(see :ref:`Alliance Helper`). This variable must point to the directory of the
|
||||
cells libraries. In a typical installation, this is generally
|
||||
:cb:`/usr/share/alliance/cells`.
|
||||
The easiest way is to setup the |Alliance| environment (i.e. sourcing
|
||||
``.../etc/profile.d/alc_env.{sh,csh}``) **before** setting up |Coriolis| environment
|
||||
(see the next section). To understand how |Coriolis| find/setup |Alliance| you may
|
||||
have look to the :ref:`Alliance Helper`.
|
||||
|
||||
|
||||
Setting up the Environment (coriolisEnv.py)
|
||||
|
|
|
@ -271,7 +271,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -278,7 +278,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -262,7 +262,7 @@
|
|||
<h1>Coriolis 2 documentation</h1>
|
||||
<p>
|
||||
|
||||
Documentation generated on Nov 17, 2017.
|
||||
Documentation generated on Dec 02, 2017.
|
||||
</p>
|
||||
|
||||
<p><strong>Documentation Topics</strong></p>
|
||||
|
@ -352,7 +352,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -281,7 +281,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
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>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue