655 lines
48 KiB
HTML
655 lines
48 KiB
HTML
|
||
|
||
|
||
<!DOCTYPE html>
|
||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||
<head>
|
||
<meta charset="utf-8">
|
||
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
||
<title>Coriolis Configuration & Initialisation — Coriolis 2 documentation</title>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="stylesheet" href="../_static/SoC.css" type="text/css" />
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="top" title="Coriolis 2 documentation" href="../index.html"/>
|
||
<link rel="up" title="Coriolis User’s Guide" href="index.html"/>
|
||
<link rel="next" title="CGT - The Graphical Interface" href="ViewerTools.html"/>
|
||
<link rel="prev" title="Installation" href="Installation.html"/>
|
||
|
||
|
||
<script src="_static/js/modernizr.min.js"></script>
|
||
|
||
</head>
|
||
|
||
<body class="wy-body-for-nav" role="document">
|
||
|
||
<div class="wy-grid-for-nav">
|
||
|
||
|
||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||
<div class="wy-side-nav-search">
|
||
|
||
|
||
|
||
<a href="../index.html" class="icon icon-home"> Coriolis
|
||
|
||
|
||
|
||
</a>
|
||
|
||
|
||
<div role="search">
|
||
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||
<input type="text" name="q" placeholder="Search docs" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||
|
||
|
||
|
||
<ul class="current">
|
||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Coriolis User’s Guide</a><ul class="current">
|
||
<li class="toctree-l2"><a class="reference internal" href="LicenseCredits.html">Credits & License</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="Releases.html">Release Notes</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="Releases.html#release-1-0-1475">Release 1.0.1475</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Releases.html#release-1-0-1963">Release 1.0.1963</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Releases.html#release-1-0-2049">Release 1.0.2049</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Releases.html#release-v2-0-1">Release v2.0.1</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Releases.html#release-v2-1">Release v2.1</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Releases.html#release-v2-2"><strong>Release v2.2</strong></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="Installation.html">Installation</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="Installation.html#fixed-directory-tree">Fixed Directory Tree</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Installation.html#building-coriolis">Building Coriolis</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="Installation.html#building-the-devel-branch">Building the Devel Branch</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Installation.html#additionnal-requirement-under-macos">Additionnal Requirement under <span class="sc">MacOS</span></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Installation.html#packaging-coriolis">Packaging Coriolis</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Installation.html#hooking-up-into-alliance">Hooking up into <span class="sc">Alliance</span></a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Installation.html#setting-up-the-environment-coriolisenv-py">Setting up the Environment (coriolisEnv.py)</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2 current"><a class="current reference internal" href="">Coriolis Configuration & Initialisation</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#general-software-architecture">General Software Architecture</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#first-stage-symbolic-technology-selection">First Stage: Symbolic Technology Selection</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#second-stage-technology-configuration-loading">Second Stage: Technology Configuration Loading</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#configuration-helpers">Configuration Helpers</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#alliance-helper"><span class="sc">Alliance</span> Helper</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#tools-configuration-helpers">Tools Configuration Helpers</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#hacking-the-configuration-files">Hacking the Configuration Files</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="ViewerTools.html">CGT - The Graphical Interface</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="ViewerTools.html#viewer-tools">Viewer & Tools</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#stratus-netlist-capture"><span class="sc">Stratus</span> Netlist Capture</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#the-hurricane-data-base">The <span class="sc">Hurricane</span> Data-Base</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#synthetizing-and-loading-a-design">Synthetizing and loading a design</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#etesian-placer">Etesian – Placer</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#knik-global-router">Knik – Global Router</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#kite-detailed-router">Kite – Detailed Router</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#executing-python-scripts-in-cgt">Executing Python Scripts in Cgt</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#printing-snapshots">Printing & Snapshots</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#memento-of-shortcuts-in-graphic-mode">Memento of Shortcuts in Graphic Mode</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#cgt-command-line-options">Cgt Command Line Options</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#miscellaneous-settings">Miscellaneous Settings</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="ViewerTools.html#the-controller">The Controller</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#the-look-tab">The Look Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#the-filter-tab">The Filter Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#the-layers-go-tab">The Layers&Go Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#the-netlist-tab">The Netlist Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#the-selection-tab">The Selection Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#the-inspector-tab">The Inspector Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#the-settings-tab">The Settings Tab</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="ScriptsPlugins.html">Python Interface for <span class="sc">Hurricane</span> / <span class="sc">Coriolis</span></a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="ScriptsPlugins.html#plugins">Plugins</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="ScriptsPlugins.html#chip-placement">Chip Placement</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ScriptsPlugins.html#clock-tree">Clock Tree</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="ScriptsPlugins.html#recursive-save-rsave">Recursive-Save (RSave)</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="ScriptsPlugins.html#a-simple-example-am2901">A Simple Example: AM2901</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../DpGen/DpGen.html">DpGen Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../Patterns/Patterns.html">Patterns Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../Hurricane/Hurricane.html">Hurricane Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../Viewer/Viewer.html">Viewer Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../CrlCore/CrlCore.html">CRL Core Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../Katabatic/Katabatic.html">Katabatic Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../Kite/Kite.html">Kite Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../Unicorn/Unicorn.html">Unicorn Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../PythonCpp/index.html">Hurricane Python/C++ API Tutorial</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="../PythonCpp/Introduction.html">1. Introduction</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/Introduction.html#first-a-disclaimer">1.1 First, A Disclaimer</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/Introduction.html#about-technical-choices">1.2 About Technical Choices</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/Introduction.html#botched-design">1.3 Botched Design</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../PythonCpp/Configuration.html">2. Basic File Structure and CMake configuration</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../PythonCpp/DBoStandalone.html">3. Case 1 - DBo Derived, Standalone</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoStandalone.html#class-associated-header-file">3.1 Class Associated Header File</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoStandalone.html#class-associated-file">3.2 Class Associated File</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="../PythonCpp/DBoStandalone.html#head-of-the-file">3.2.1 Head of the file</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../PythonCpp/DBoStandalone.html#the-python-module-part">3.2.2 The Python Module Part</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../PythonCpp/DBoStandalone.html#python-type-linking">3.2.3 Python Type Linking</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../PythonCpp/DBoStandalone.html#the-shared-library-part">3.2.4 The Shared Library Part</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoStandalone.html#python-module-c-namespace">3.3 Python Module (C++ namespace)</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html">4. Case 2 - Hierarchy of DBo Derived Classes</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html#base-class-header">4.1 Base Class Header</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html#base-class-file">4.2 Base Class File</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html#intermediate-class-header">4.3 Intermediate Class Header</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html#intermediate-class-file">4.4 Intermediate Class File</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html#terminal-class-header">4.5 Terminal Class Header</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html#terminal-class-file">4.6 Terminal Class File</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html#python-module">4.8 Python Module</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../PythonCpp/NonDBo.html">5. Case 3 - Non-DBo Standalone Classe</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/NonDBo.html#class-header">5.1 Class Header</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/NonDBo.html#class-file">5.2 Class File</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/NonDBo.html#id1">5.2 Class File</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../PythonCpp/DbU.html">6. Encapsulating DbU</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../PythonCpp/Name.html">7. No C++ Hurricane::Name encapsulation</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../RDS/index.html">Symbolic to Real Conversion in Alliance</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="../RDS/RDSpage.html">Symbolic Layout</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#symbolic-components">Symbolic Components</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#symbolic-segments">Symbolic Segments</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../RDS/RDSpage.html#the-rds-file">The RDS File</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#physical-grid-lambda-value">Physical Grid & Lambda Value</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#the-mbk-to-rds-segment-table">The <tt class="docutils literal"><span class="pre">MBK_TO_RDS_SEGMENT</span></tt> table</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#the-mbk-to-rds-via-table">The <tt class="docutils literal"><span class="pre">MBK_TO_RDS_VIA</span></tt> table</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#the-mbk-to-rds-bigvia-hole-table">The <tt class="docutils literal"><span class="pre">MBK_TO_RDS_BIGVIA_HOLE</span></tt> table</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#the-mbk-to-rds-bigvia-metal-table">The <tt class="docutils literal"><span class="pre">MBK_TO_RDS_BIGVIA_METAL</span></tt> table</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#the-mbk-wiresetting-table">The <tt class="docutils literal"><span class="pre">MBK_WIRESETTING</span></tt> table</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</nav>
|
||
|
||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||
|
||
|
||
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
|
||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||
<a href="../index.html">Coriolis</a>
|
||
</nav>
|
||
|
||
|
||
|
||
<div class="wy-nav-content">
|
||
<div class="rst-content">
|
||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||
<ul class="wy-breadcrumbs">
|
||
<li><a href="../index.html">Docs</a> »</li>
|
||
|
||
<li><a href="index.html">Coriolis User’s Guide</a> »</li>
|
||
|
||
<li>Coriolis Configuration & Initialisation</li>
|
||
<li class="wy-breadcrumbs-aside">
|
||
|
||
|
||
|
||
</li>
|
||
</ul>
|
||
<hr/>
|
||
</div>
|
||
<div role="main" class="document">
|
||
|
||
<p></p>
|
||
<div class="section" id="coriolis-configuration-initialisation">
|
||
<h1>Coriolis Configuration & Initialisation<a class="headerlink" href="#coriolis-configuration-initialisation" title="Permalink to this headline">¶</a></h1>
|
||
<div class="section" id="general-software-architecture">
|
||
<h2>General Software Architecture<a class="headerlink" href="#general-software-architecture" title="Permalink to this headline">¶</a></h2>
|
||
<p><span class="sc">Coriolis</span> has been build with respect of the classical paradigm that the
|
||
computational instensive parts have been written in C++, and almost
|
||
everything else in <span class="sc">Python</span>. To build the <span class="sc">Python</span> interface we used
|
||
two methods:</p>
|
||
<ul class="simple">
|
||
<li>For self-contained modules <span class="cb">boost::python</span> (mainly in <span class="cb">vlsisapd</span>).</li>
|
||
<li>For all modules based on <span class="sc">Hurricane</span>, we created our own wrappers due
|
||
to very specific requirements such as shared functions between modules
|
||
or C++/<span class="sc">Python</span> secure bi-directional object deletion.</li>
|
||
</ul>
|
||
<div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last"><strong>Python Documentation:</strong>
|
||
Most of the documentation is related to the C++ API and implemetation of
|
||
the tools. However, the <span class="sc">Python</span> bindings have been created so they
|
||
mimic <em>as closely as possible</em> the C++ interface, so the documentation
|
||
applies to both languages with only minor syntactic changes.</p>
|
||
</div>
|
||
<p> <img alt="Coriolis Software Schematic" class="align-middle" src="../_images/Coriolis-Soft-Schema.png" style="width: 60%;" /> </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.
|
||
<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>
|
||
</ol>
|
||
<p></p>
|
||
</div>
|
||
<div class="section" id="first-stage-symbolic-technology-selection">
|
||
<h2>First Stage: Symbolic Technology Selection<a class="headerlink" href="#first-stage-symbolic-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>
|
||
<table border="1" class="docutils">
|
||
<colgroup>
|
||
<col width="8%" />
|
||
<col width="39%" />
|
||
<col width="53%" />
|
||
</colgroup>
|
||
<thead valign="bottom">
|
||
<tr class="row-odd"><th class="head">Order</th>
|
||
<th class="head">Meaning</th>
|
||
<th class="head">File</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody valign="top">
|
||
<tr class="row-even"><td><strong>1</strong></td>
|
||
<td>The system setting</td>
|
||
<td><span class="cb">/etc/coriolis2/techno.conf</span></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><strong>2</strong></td>
|
||
<td>The user’s global setting</td>
|
||
<td><span class="cb">${HOME}/.coriolis2/techno.py</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td><strong>3</strong></td>
|
||
<td>The user’s local setting</td>
|
||
<td><span class="cb"><CWD>/.coriolis2/techno.py</span></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>Thoses files must provides only two variables, the name of the symbolic technology
|
||
and the one of the real technology. For example:</p>
|
||
<div class="highlight-python"><div class="highlight"><pre><span class="c"># -*- Mode:Python -*-</span>
|
||
|
||
<span class="n">symbolicTechno</span> <span class="o">=</span> <span class="s">'cmos'</span>
|
||
<span class="n">realTechno</span> <span class="o">=</span> <span class="s">'hcmos9'</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<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>
|
||
<table border="1" class="docutils">
|
||
<colgroup>
|
||
<col width="8%" />
|
||
<col width="39%" />
|
||
<col width="53%" />
|
||
</colgroup>
|
||
<thead valign="bottom">
|
||
<tr class="row-odd"><th class="head">Order</th>
|
||
<th class="head">Meaning</th>
|
||
<th class="head">File</th>
|
||
</tr>
|
||
</thead>
|
||
<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>
|
||
</tr>
|
||
<tr class="row-odd"><td><strong>2</strong></td>
|
||
<td>The user’s global initialization</td>
|
||
<td><span class="cb">${HOME}/.coriolis2/settings.py</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td><strong>3</strong></td>
|
||
<td>The user’s local initialization</td>
|
||
<td><span class="cb"><CWD>/.coriolis2/settings.py</span></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<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
|
||
amended to whatever site policy.</p>
|
||
<p class="last">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>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="configuration-helpers">
|
||
<h2>Configuration Helpers<a class="headerlink" href="#configuration-helpers" title="Permalink to this headline">¶</a></h2>
|
||
<p>To ease the writing of configuration files, a set of small helpers
|
||
is available. They allow to setup the configuration parameters through
|
||
simple assembly of tuples. The helpers are installed under the directory:</p>
|
||
<div class="highlight-python"><pre><install>/etc/coriolis2/</pre>
|
||
</div>
|
||
<p>Where <span class="cb"><install>/</span> is the root of the installation.</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-python"><div class="highlight"><pre><span class="n">cellsTop</span> <span class="o">=</span> <span class="s">'/usr/share/alliance/cells/'</span>
|
||
|
||
<span class="n">allianceConfig</span> <span class="o">=</span> \
|
||
<span class="p">(</span> <span class="p">(</span> <span class="s">'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="s">'/technology.symbolic.xml'</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span> <span class="s">'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="s">'/technology.cmos130.s2r.xml'</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span> <span class="s">'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="s">'/display.xml'</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span> <span class="s">'CATALOG'</span> <span class="p">,</span> <span class="s">'CATAL'</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span> <span class="s">'WORKING_LIBRARY'</span> <span class="p">,</span> <span class="s">'.'</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span> <span class="s">'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="s">'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="s">'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="s">'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="s">'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="s">'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="s">'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="s">'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="s">'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="s">'IN_LO'</span> <span class="p">,</span> <span class="s">'vst'</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span> <span class="s">'IN_PH'</span> <span class="p">,</span> <span class="s">'ap'</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span> <span class="s">'OUT_LO'</span> <span class="p">,</span> <span class="s">'vst'</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span> <span class="s">'OUT_PH'</span> <span class="p">,</span> <span class="s">'ap'</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span> <span class="s">'POWER'</span> <span class="p">,</span> <span class="s">'vdd'</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span> <span class="s">'GROUND'</span> <span class="p">,</span> <span class="s">'vss'</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span> <span class="s">'CLOCK'</span> <span class="p">,</span> <span class="s">'^ck.*'</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span> <span class="s">'BLOCKAGE'</span> <span class="p">,</span> <span class="s">'^blockageNet*'</span><span class="p">)</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p> <span class="raw-html"><p class="noindent"></p></span> The example above shows the system configuration file, with all the
|
||
available settings. Some important remarks about thoses settings:</p>
|
||
<ul>
|
||
<li><p class="first">In it’s configuration file, the user do not need to redefine all the settings,
|
||
just the one he wants to change. In most of the cases, the <tt class="docutils literal"><span class="pre">SYSTEM_LIBRARY</span></tt>,
|
||
the <tt class="docutils literal"><span class="pre">WORKING_LIBRARY</span></tt> and the special net names (at this point there is not
|
||
much alternatives for the others settings).</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal"><span class="pre">SYSTEM_LIBRARY</span></tt> setting: Setting up the library search path.
|
||
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
|
||
it, whithout changing the search path order. If no library of that name
|
||
already exists, it is appended.</li>
|
||
</ul>
|
||
<p>A library is identified by it’s name, this name is the last component of the
|
||
path name. For instance: <tt class="docutils literal"><span class="pre">/soc/alliance/sxlib</span></tt> will be named <tt class="docutils literal"><span class="pre">sxlib</span></tt>.
|
||
Implementing the <span class="sc">Alliance</span> specification, when looking for a <em>Cell</em> <tt class="docutils literal"><span class="pre">name</span></tt>,
|
||
the system will browse sequentially trought the library list and returns
|
||
the first <em>Cell</em> whose name match.</p>
|
||
</li>
|
||
<li><p class="first">For <tt class="docutils literal"><span class="pre">POWER</span></tt>, <tt class="docutils literal"><span class="pre">GROUND</span></tt>, <tt class="docutils literal"><span class="pre">CLOCK</span></tt> and <tt class="docutils literal"><span class="pre">BLOCKAGE</span></tt> net names, a regular
|
||
expression (<span class="sc">gnu</span> regexp) is expected.</p>
|
||
</li>
|
||
<li><p class="first">The <tt class="docutils literal"><span class="pre">helpers.sysConfDir</span></tt> 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: <tt class="docutils literal"><span class="pre">/soc/coriolis2</span></tt>.</p>
|
||
</li>
|
||
</ul>
|
||
<p>A typical user’s configuration file would be:</p>
|
||
<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">os</span>
|
||
|
||
<span class="n">homeDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s">'HOME'</span><span class="p">)</span>
|
||
|
||
<span class="n">allianceConfig</span> <span class="o">=</span> \
|
||
<span class="p">(</span> <span class="p">(</span><span class="s">'WORKING_LIBRARY'</span> <span class="p">,</span> <span class="n">homeDir</span><span class="o">+</span><span class="s">'/worklib'</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">'SYSTEM_LIBRARY'</span> <span class="p">,</span> <span class="p">(</span> <span class="p">(</span><span class="n">homeDir</span><span class="o">+</span><span class="s">'/mylib'</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="s">'POWER'</span> <span class="p">,</span> <span class="s">'vdd.*'</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">'GROUND'</span> <span class="p">,</span> <span class="s">'vss.*'</span><span class="p">)</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="tools-configuration-helpers">
|
||
<h3>Tools Configuration Helpers<a class="headerlink" href="#tools-configuration-helpers" title="Permalink to this headline">¶</a></h3>
|
||
<p>All the tools uses the same helper to load their configuration (a.k.a.
|
||
<em>Configuration Helper</em>). Currently the following configuration system-wide
|
||
configuration files are defined:</p>
|
||
<ul class="simple">
|
||
<li><span class="cb">misc.conf</span>: commons settings or not belonging specifically to a tool.</li>
|
||
<li><span class="cb">etesian.conf</span>: for the <span class="sc">Etesian</span> tool.</li>
|
||
<li><span class="cb">kite.conf</span>: for the <span class="sc">Kite</span> tool.</li>
|
||
<li><span class="cb">stratus1.conf</span>: for the <span class="sc">Stratus1</span> tool.</li>
|
||
</ul>
|
||
<p>Here is the contents of <span class="cb">etesian.conf</span>:</p>
|
||
<div class="highlight-python"><div class="highlight"><pre><span class="c"># Etesian parameters.</span>
|
||
<span class="n">parametersTable</span> <span class="o">=</span> \
|
||
<span class="p">(</span> <span class="p">(</span><span class="s">'etesian.aspectRatio'</span> <span class="p">,</span> <span class="n">TypePercentage</span><span class="p">,</span> <span class="mi">100</span> <span class="p">,</span> <span class="p">{</span> <span class="s">'min'</span><span class="p">:</span><span class="mi">10</span><span class="p">,</span> <span class="s">'max'</span><span class="p">:</span><span class="mi">1000</span> <span class="p">}</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">'etesian.spaceMargin'</span> <span class="p">,</span> <span class="n">TypePercentage</span><span class="p">,</span> <span class="mi">5</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">'etesian.uniformDensity'</span> <span class="p">,</span> <span class="n">TypeBool</span> <span class="p">,</span> <span class="bp">False</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">'etesian.routingDriven'</span> <span class="p">,</span> <span class="n">TypeBool</span> <span class="p">,</span> <span class="bp">False</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">"etesian.effort"</span> <span class="p">,</span> <span class="n">TypeEnumerate</span> <span class="p">,</span> <span class="mi">2</span>
|
||
<span class="p">,</span> <span class="p">{</span> <span class="s">'values'</span><span class="p">:(</span> <span class="p">(</span><span class="s">"Fast"</span> <span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">"Standard"</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">"High"</span> <span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">"Extreme"</span> <span class="p">,</span> <span class="mi">4</span><span class="p">)</span> <span class="p">)</span> <span class="p">}</span>
|
||
<span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">"etesian.graphics"</span> <span class="p">,</span> <span class="n">TypeEnumerate</span> <span class="p">,</span> <span class="mi">2</span>
|
||
<span class="p">,</span> <span class="p">{</span> <span class="s">'values'</span><span class="p">:(</span> <span class="p">(</span><span class="s">"Show every step"</span> <span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">"Show lower bound"</span> <span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">"Show result only"</span> <span class="p">,</span> <span class="mi">3</span><span class="p">)</span> <span class="p">)</span> <span class="p">}</span>
|
||
<span class="p">)</span>
|
||
<span class="p">)</span>
|
||
|
||
<span class="n">layoutTable</span> <span class="o">=</span> \
|
||
<span class="p">(</span> <span class="p">(</span><span class="n">TypeTab</span> <span class="p">,</span> <span class="s">'Etesian'</span><span class="p">,</span> <span class="s">'etesian'</span><span class="p">)</span>
|
||
|
||
<span class="p">,</span> <span class="p">(</span><span class="n">TypeTitle</span> <span class="p">,</span> <span class="s">'Placement area'</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="n">TypeOption</span><span class="p">,</span> <span class="s">"etesian.aspectRatio"</span> <span class="p">,</span> <span class="s">"Aspect Ratio, X/Y (%)"</span><span class="p">,</span> <span class="mi">0</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="n">TypeOption</span><span class="p">,</span> <span class="s">"etesian.spaceMargin"</span> <span class="p">,</span> <span class="s">"Space Margin"</span> <span class="p">,</span> <span class="mi">1</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="n">TypeRule</span> <span class="p">,)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="n">TypeTitle</span> <span class="p">,</span> <span class="s">'Etesian - Placer'</span><span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="n">TypeOption</span><span class="p">,</span> <span class="s">"etesian.uniformDensity"</span><span class="p">,</span> <span class="s">"Uniform density"</span> <span class="p">,</span> <span class="mi">0</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="n">TypeOption</span><span class="p">,</span> <span class="s">"etesian.routingDriven"</span> <span class="p">,</span> <span class="s">"Routing driven"</span> <span class="p">,</span> <span class="mi">0</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="n">TypeOption</span><span class="p">,</span> <span class="s">"etesian.effort"</span> <span class="p">,</span> <span class="s">"Placement effort"</span> <span class="p">,</span> <span class="mi">1</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="n">TypeOption</span><span class="p">,</span> <span class="s">"etesian.graphics"</span> <span class="p">,</span> <span class="s">"Placement view"</span> <span class="p">,</span> <span class="mi">1</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="n">TypeRule</span> <span class="p">,)</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p></p>
|
||
<p>Taxonomy of the file:</p>
|
||
<ul class="simple">
|
||
<li>It must contains, at least, the two tables:<ul>
|
||
<li><tt class="docutils literal"><span class="pre">parametersTable</span></tt>, defines & initialise the configuration variables.</li>
|
||
<li><tt class="docutils literal"><span class="pre">layoutTables</span></tt>, defines how the various parameters will be displayed
|
||
in the configuration window (<a class="reference internal" href="ViewerTools.html#the-settings-tab"><em>The Settings Tab</em></a>).</li>
|
||
</ul>
|
||
</li>
|
||
<li>The <tt class="docutils literal"><span class="pre">parametersTable</span></tt>, is a tuple (list) of tuples. Each entry in the list
|
||
describe a configuration parameter. In it’s simplest form, it’s a quadruplet
|
||
<span class="cb">(TypeOption, ‘paramId’, ParameterType, DefaultValue)</span> with:<ol class="arabic">
|
||
<li><tt class="docutils literal"><span class="pre">TypeOption</span></tt>, tells that this tuple describe a parameter.</li>
|
||
<li><tt class="docutils literal"><span class="pre">paramId</span></tt>, the identifier of the parameter. Identifiers are defined
|
||
by the tools. The list of parameters is detailed in each tool section.</li>
|
||
<li><tt class="docutils literal"><span class="pre">ParameterType</span></tt>, the kind of parameter. Could be:<ul>
|
||
<li><tt class="docutils literal"><span class="pre">TypeBool</span></tt>, boolean.</li>
|
||
<li><tt class="docutils literal"><span class="pre">TypeInt</span></tt>, signed integer.</li>
|
||
<li><tt class="docutils literal"><span class="pre">TypeEnumerate</span></tt>, enumerated type, needs extra entry.</li>
|
||
<li><tt class="docutils literal"><span class="pre">TypePercentage</span></tt>, percentage, expressed between 0 and 100.</li>
|
||
<li><tt class="docutils literal"><span class="pre">TypeDouble</span></tt>, float.</li>
|
||
<li><tt class="docutils literal"><span class="pre">TypeString</span></tt>, character string.</li>
|
||
</ul>
|
||
</li>
|
||
<li><tt class="docutils literal"><span class="pre">DefaultValue</span></tt>, the default value for that parameter.</li>
|
||
</ol>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="hacking-the-configuration-files">
|
||
<h2>Hacking the Configuration Files<a class="headerlink" href="#hacking-the-configuration-files" title="Permalink to this headline">¶</a></h2>
|
||
<p>Asides from the symbols that gets used by the configuration helpers like
|
||
<span class="cb">allianceConfig</span> or <span class="cb">parametersTable</span>, you can put pretty much anything
|
||
in <span class="cb"><CWD>/.coriolis2/settings.py</span> (that is, written in <span class="sc">Python</span>).</p>
|
||
<p>For example:</p>
|
||
<div class="highlight-python"><div class="highlight"><pre><span class="c"># -*- Mode:Python -*-</span>
|
||
|
||
<span class="n">defaultStyle</span> <span class="o">=</span> <span class="s">'Alliance.Classic [black]'</span>
|
||
|
||
<span class="c"># Regular Coriolis configuration.</span>
|
||
<span class="n">parametersTable</span> <span class="o">=</span> \
|
||
<span class="p">(</span> <span class="p">(</span><span class="s">'misc.catchCore'</span> <span class="p">,</span> <span class="n">TypeBool</span> <span class="p">,</span> <span class="bp">False</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">'misc.info'</span> <span class="p">,</span> <span class="n">TypeBool</span> <span class="p">,</span> <span class="bp">False</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">'misc.paranoid'</span> <span class="p">,</span> <span class="n">TypeBool</span> <span class="p">,</span> <span class="bp">False</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">'misc.bug'</span> <span class="p">,</span> <span class="n">TypeBool</span> <span class="p">,</span> <span class="bp">False</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">'misc.logMode'</span> <span class="p">,</span> <span class="n">TypeBool</span> <span class="p">,</span> <span class="bp">True</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">'misc.verboseLevel1'</span> <span class="p">,</span> <span class="n">TypeBool</span> <span class="p">,</span> <span class="bp">False</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">'misc.verboseLevel2'</span> <span class="p">,</span> <span class="n">TypeBool</span> <span class="p">,</span> <span class="bp">True</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">'misc.minTraceLevel'</span> <span class="p">,</span> <span class="n">TypeInt</span> <span class="p">,</span> <span class="mi">0</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="p">(</span><span class="s">'misc.maxTraceLevel'</span> <span class="p">,</span> <span class="n">TypeInt</span> <span class="p">,</span> <span class="mi">0</span> <span class="p">)</span>
|
||
<span class="p">)</span>
|
||
|
||
<span class="c"># Some ordinary Python script...</span>
|
||
<span class="kn">import</span> <span class="nn">os</span>
|
||
|
||
<span class="k">print</span> <span class="s">' o Cleaning up ClockTree previous run.'</span>
|
||
<span class="k">for</span> <span class="n">fileName</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="s">'.'</span><span class="p">):</span>
|
||
<span class="k">if</span> <span class="n">fileName</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s">'.ap'</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">fileName</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">'_clocked.'</span><span class="p">)</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">):</span>
|
||
<span class="k">print</span> <span class="s">' - <</span><span class="si">%s</span><span class="s">>'</span> <span class="o">%</span> <span class="n">fileName</span>
|
||
<span class="n">os</span><span class="o">.</span><span class="n">unlink</span><span class="p">(</span><span class="n">fileName</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>See <a class="reference internal" href="ScriptsPlugins.html#python-interface-to-coriolis"><em>Python Interface for Hurricane / Coriolis</em></a> for more details those capabilities.</p>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
<footer>
|
||
|
||
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||
|
||
<a href="ViewerTools.html" class="btn btn-neutral float-right" title="CGT - The Graphical Interface" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||
|
||
|
||
<a href="Installation.html" class="btn btn-neutral" title="Installation" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||
|
||
</div>
|
||
|
||
|
||
<hr/>
|
||
|
||
<div role="contentinfo">
|
||
<table class="footer1">
|
||
<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 Jul 17, 2017.
|
||
</small></td>
|
||
<td class="RFooter"></td>
|
||
</tr>
|
||
</table>
|
||
<table class="footer2">
|
||
<tr>
|
||
<td class="LFooter">Coriolis 2 Documentation</td>
|
||
<td class="RFooter"><small>
|
||
© Copyright 2000-2017, UPMC.
|
||
</small></td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
</footer>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</section>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<script type="text/javascript">
|
||
var DOCUMENTATION_OPTIONS = {
|
||
URL_ROOT:'../',
|
||
VERSION:'2',
|
||
COLLAPSE_INDEX:false,
|
||
FILE_SUFFIX:'.html',
|
||
HAS_SOURCE: true
|
||
};
|
||
</script>
|
||
<script type="text/javascript" src="../_static/jquery.js"></script>
|
||
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||
|
||
|
||
|
||
|
||
|
||
<script type="text/javascript" src="../_static/js/theme.js"></script>
|
||
|
||
|
||
|
||
|
||
<script type="text/javascript">
|
||
jQuery(function () {
|
||
SphinxRtdTheme.StickyNav.enable();
|
||
});
|
||
</script>
|
||
|
||
|
||
</body>
|
||
</html> |