<!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 &amp; Initialisation &mdash; Coriolis 2 documentation</title>
  

  
  

  

  
  
    

  

  
  
    <link rel="stylesheet" href="../_static/SoC.css" type="text/css" />
  

  

  
        <link rel="index" title="Index"
              href="../genindex.html"/>
        <link rel="search" title="Search" href="../search.html"/>
    <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&#8217;s Guide</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="LicenseCredits.html">Credits &amp; 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 &amp; 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-technology-selection">First Stage: 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 &amp; 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 &#8211; Placer</a></li>
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#knik-global-router">Knik &#8211; Global Router</a></li>
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#kite-detailed-router">Kite &#8211; 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 &amp; 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&amp;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="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Environment.html#setting-up-the-pathes">2.1 Setting up the Pathes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Environment.html#user-s-configurations-file">2.2 User&#8217;s Configurations File</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Environment.html#the-techno-py-file">2.2.1 The <span class="cb">techno.py</span> File</a></li>
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Environment.html#the-settings-py-file">2.2.2 The <span class="cb">settings.py</span> File</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell &#8211; Layout</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-dbu-measurement-unit">3.4 The DbU Measurement Unit</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#setting-up-the-abutment-box">3.5 Setting up the Abutment Box</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Collections.html#hurricane-collections">4.1 Hurricane Collections</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Collections.html#restrictions-about-using-collections">4.1.1 Restrictions about using Collections</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Collections.html#loading-a-cell-with-allianceframework">4.2 Loading a Cell with AllianceFramework</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html">5. Make a script runnable through <span class="cb">cgt</span></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell &#8211; Netlist</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets &#8211; From Plugs to RoutingPads</a></li>
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets &#8211; Regular wiring</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file &#8211; <span class="sc">Yosys</span></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer &#8211; Etesian</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router &#8211; Katana</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2  A Complete Example</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../Stratus/index.html">Stratus : Netlist Capture Language</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../Stratus/Language.html">Stratus User&#8217;s Guide</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/Language.html#introduction">Introduction</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#stratus">Stratus</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#example">Example</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/Language.html#description-of-a-netlist">Description of a netlist</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#nets">Nets</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#instances">Instances</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#generators">Generators</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/Language.html#description-of-a-layout">Description of a layout</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#place">Place</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#placetop">PlaceTop</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#placebottom">PlaceBottom</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#placeright">PlaceRight</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#placeleft">PlaceLeft</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#setrefins">SetRefIns</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#defab">DefAb</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#resizeab">ResizeAb</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/Language.html#patterns-generation-extension">Patterns generation extension</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#description-of-the-stimuli">Description of the stimuli</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/Language.html#place-and-route">Place and Route</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#placesegment">PlaceSegment</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#placecontact">PlaceContact</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#placepin">PlacePin</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#placeref">PlaceRef</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#getrefxy">GetRefXY</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#copyupsegment">CopyUpSegment</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#placecentric">PlaceCentric</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#placeglu">PlaceGlu</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#fillcell">FillCell</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#pads">Pads</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#alimentation-rails">Alimentation rails</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#alimentation-connectors">Alimentation connectors</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#powerring">PowerRing</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#routeck">RouteCk</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/Language.html#instanciation-facilities">Instanciation facilities</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#buffer">Buffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#multiplexor">Multiplexor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#shifter">Shifter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#register">Register</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#constants">Constants</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#boolean-operations">Boolean operations</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#arithmetical-operations">Arithmetical operations</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#comparison-operations">Comparison operations</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#virtual-library">Virtual library</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/Language.html#useful-links">Useful links</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#dpgen-generators">DpGen generators</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#arithmetic-package-of-stratus">Arithmetic package of stratus</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#arithmetic-generators-and-some-stratus-packages">Arithmetic generators and some stratus packages</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Language.html#patterns-module">Patterns module</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../Stratus/Developper.html">Stratus Developper&#8217;s Guide</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/Developper.html#class-model">Class Model</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#synopsys">Synopsys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#description">Description</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#parameters">Parameters</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#attributes">Attributes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#methods">Methods</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/Developper.html#nets">Nets</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#id1">Synopsys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#id2">Description</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#id3">Parameters</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#id4">Attributes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#id5">Methods</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/Developper.html#instances">Instances</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#id6">Synopsys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#id7">Description</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#id8">Parameters</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#id9">Attributes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Developper.html#id10">Methods</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../Stratus/Patterns.html">Patterns module User&#8217;s Guide</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/Patterns.html#description">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/Patterns.html#syntax">Syntax</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Patterns.html#declaration-part">Declaration part</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Patterns.html#description-part">Description part</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/Patterns.html#methods">Methods</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Patterns.html#patwrite">PatWrite</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Patterns.html#declar">declar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Patterns.html#declar-interface">declar_interface</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Patterns.html#id2">declar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Patterns.html#affect-int">affect_int</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Patterns.html#affect-fix">affect_fix</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Patterns.html#affect-any">affect_any</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Patterns.html#addpat">addpat</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Patterns.html#pattern-begin">pattern_begin</a></li>
<li class="toctree-l4"><a class="reference internal" href="../Stratus/Patterns.html#pattern-end">pattern_end</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/Patterns.html#example">Example</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../Stratus/DpGen.html">DpGen generators manual</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgeninv">DpgenInv</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenbuff">DpgenBuff</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgennand2">DpgenNand2</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgennand3">DpgenNand3</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgennand4">Dpgennand4</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenand2">DpgenAnd2</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenand3">DpgenAnd3</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenand4">DpgenAnd4</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgennor2">DpgenNor2</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgennor3">DpgenNor3</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgennor4">DpgenNor4</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenor2">DpgenOr2</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenor3">DpgenOr3</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenor4">DpgenOr4</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenxor2">DpgenXor2</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenxnor2">DpgenXnor2</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgennmux2">DpgenNmux2</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenmux2">DpgenMux2</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgennbuse">DpgenNbuse</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenbuse">DpgenBuse</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgennand2mask">DpgenNand2mask</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgennor2mask">DpgenNor2mask</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenxnor2mask">DpgenXnor2mask</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenadsb2f">DpgenAdsb2f</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenshift">DpgenShift</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenshrot">DpgenShrot</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgennul">DpgenNul</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenconst">DpgenConst</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenrom2">DpgenRom2</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenrom4">DpgenRom4</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenram">DpgenRam</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenrf1">DpgenRf1</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenrf1d">DpgenRf1d</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgenfifo">DpgenFifo</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgendff">DpgenDff</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgendfft">DpgenDfft</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgensff">DpgenSff</a></li>
<li class="toctree-l3"><a class="reference internal" href="../Stratus/DpGen.html#dpgensfft">DpgenSfft</a></li>
</ul>
</li>
</ul>
</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">RDS &#8211; 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 &amp; Lambda Value</a></li>
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#the-mbk-to-rds-segment-table">The <code class="docutils literal"><span class="pre">MBK_TO_RDS_SEGMENT</span></code> table</a></li>
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#the-mbk-to-rds-via-table">The <code class="docutils literal"><span class="pre">MBK_TO_RDS_VIA</span></code> table</a></li>
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#the-mbk-to-rds-bigvia-hole-table">The <code class="docutils literal"><span class="pre">MBK_TO_RDS_BIGVIA_HOLE</span></code> table</a></li>
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#the-mbk-to-rds-bigvia-metal-table">The <code class="docutils literal"><span class="pre">MBK_TO_RDS_BIGVIA_METAL</span></code> table</a></li>
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#the-mbk-wiresetting-table">The <code class="docutils literal"><span class="pre">MBK_WIRESETTING</span></code> table</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../lefapi/lefapi.html">LEF API Reference</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../lefapi/lefapi.html#implementation-notes">Implementation Notes</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../lefapi/lefapi.html#understanding-units">Understanding Units</a></li>
<li class="toctree-l3"><a class="reference internal" href="../lefapi/lefapi.html#callback-calling-order">Callback Calling Order</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../defapi/defapi.html">DEF API Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lefdef/lefdef.html">LEF/DEF Language Reference</a></li>
</ul>

          
        
      </div>
      &nbsp;
    </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> &raquo;</li>
      
          <li><a href="index.html">Coriolis User&#8217;s Guide</a> &raquo;</li>
      
    <li>Coriolis Configuration &amp; 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 &amp; 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> <a class="reference internal" href="../_images/Coriolis-Soft-Schema.png"><img alt="Coriolis Software Schematic" class="align-middle" src="../_images/Coriolis-Soft-Schema.png" style="width: 60%;" /></a> </p>
<p>All configuration &amp; 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&#8217;s configuration,
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 technology.</li>
<li>Loading the complete configuration for the given technology
and the user&#8217;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>
<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&#8217;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&#8217;s local setting</td>
<td><span class="cb">&lt;CWD&gt;/.coriolis2/techno.py</span></td>
</tr>
</tbody>
</table>
<p>Thoses files must provides only one variable, the name of the technology. Each technology
will provide configuration for both the symbolic part and the real part. <span class="sc">Coriolis</span> can
work with purely symbolic technology (<code class="docutils literal"><span class="pre">symbolic/cmos</span></code>) in that case, the real technology
part is a dummy one.</p>
<p>For example, to use <span class="sc">mosis</span> 180nm:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="c1"># -*- Mode:Python -*-</span>

<span class="n">technology</span> <span class="o">=</span> <span class="s1">&#39;180/scn6m_deep_09&#39;</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">technology</span> variable is set by the first stage and it&#8217;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%" />
<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/&lt;technology&gt;/&lt;TOOL&gt;.conf</span></td>
</tr>
<tr class="row-odd"><td><strong>2</strong></td>
<td>The user&#8217;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&#8217;s local initialization</td>
<td><span class="cb">&lt;CWD&gt;/.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
amended to whatever site policy.</p>
<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 &quot;coriolisInit.py&quot;.</span>
<span class="kn">import</span> <span class="nn">Viewer</span>
</pre></div>
</div>
</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-default"><div class="highlight"><pre><span></span><span class="o">&lt;</span><span class="n">install</span><span class="o">&gt;/</span><span class="n">etc</span><span class="o">/</span><span class="n">coriolis2</span><span class="o">/</span>
</pre></div>
</div>
<p>Where <span class="cb">&lt;install&gt;/</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 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">&#39;ALLIANCE_TOP&#39;</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">&#39;ALLIANCE_TOP&#39;</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">&#39;/soc/alliance&#39;</span>

<span class="n">cellsTop</span> <span class="o">=</span> <span class="n">allianceTop</span><span class="o">+</span><span class="s1">&#39;/cells/&#39;</span>


<span class="n">allianceConfig</span> <span class="o">=</span> \
    <span class="p">(</span> <span class="p">(</span> <span class="s1">&#39;CATALOG&#39;</span>            <span class="p">,</span> <span class="s1">&#39;CATAL&#39;</span><span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span> <span class="s1">&#39;WORKING_LIBRARY&#39;</span>    <span class="p">,</span> <span class="s1">&#39;.&#39;</span><span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span> <span class="s1">&#39;SYSTEM_LIBRARY&#39;</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">&#39;sxlib&#39;</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">&#39;dp_sxlib&#39;</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">&#39;ramlib&#39;</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">&#39;romlib&#39;</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">&#39;rflib&#39;</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">&#39;rf2lib&#39;</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">&#39;pxlib&#39;</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">&#39;padlib&#39;</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">&#39;IN_LO&#39;</span>              <span class="p">,</span> <span class="s1">&#39;vst&#39;</span><span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span> <span class="s1">&#39;IN_PH&#39;</span>              <span class="p">,</span> <span class="s1">&#39;ap&#39;</span><span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span> <span class="s1">&#39;OUT_LO&#39;</span>             <span class="p">,</span> <span class="s1">&#39;vst&#39;</span><span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span> <span class="s1">&#39;OUT_PH&#39;</span>             <span class="p">,</span> <span class="s1">&#39;ap&#39;</span><span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span> <span class="s1">&#39;POWER&#39;</span>              <span class="p">,</span> <span class="s1">&#39;vdd&#39;</span><span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span> <span class="s1">&#39;GROUND&#39;</span>             <span class="p">,</span> <span class="s1">&#39;vss&#39;</span><span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span> <span class="s1">&#39;CLOCK&#39;</span>              <span class="p">,</span> <span class="s1">&#39;.*ck.*|.*nck.*&#39;</span><span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span> <span class="s1">&#39;BLOCKAGE&#39;</span>           <span class="p">,</span> <span class="s1">&#39;^blockage[Nn]et*&#39;</span><span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span> <span class="s1">&#39;PAD&#39;</span>                <span class="p">,</span> <span class="s1">&#39;.*_px$&#39;</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&#8217;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 <code class="docutils literal"><span class="pre">SYSTEM_LIBRARY</span></code>,
the <code class="docutils literal"><span class="pre">WORKING_LIBRARY</span></code> and the special net names (at this point there is not
much alternatives for the others settings).</p>
</li>
<li><p class="first"><code class="docutils literal"><span class="pre">SYSTEM_LIBRARY</span></code> 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">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>
<p>A library is identified by it&#8217;s name, this name is the last component of the
path name. For instance: <code class="docutils literal"><span class="pre">/soc/alliance/sxlib</span></code> will be named <code class="docutils literal"><span class="pre">sxlib</span></code>.
Implementing the <span class="sc">Alliance</span> specification, when looking for a <em>Cell</em> <code class="docutils literal"><span class="pre">name</span></code>,
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 <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>
</ul>
<p>A typical user&#8217;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>

<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="s1">&#39;HOME&#39;</span><span class="p">)</span>

<span class="n">allianceConfig</span> <span class="o">=</span> \
    <span class="p">(</span> <span class="p">(</span><span class="s1">&#39;WORKING_LIBRARY&#39;</span>    <span class="p">,</span> <span class="n">homeDir</span><span class="o">+</span><span class="s1">&#39;/worklib&#39;</span><span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span><span class="s1">&#39;SYSTEM_LIBRARY&#39;</span>     <span class="p">,</span> <span class="p">(</span> <span class="p">(</span><span class="n">homeDir</span><span class="o">+</span><span class="s1">&#39;/mylib&#39;</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">&#39;POWER&#39;</span>              <span class="p">,</span> <span class="s1">&#39;vdd.*&#39;</span><span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span><span class="s1">&#39;GROUND&#39;</span>             <span class="p">,</span> <span class="s1">&#39;vss.*&#39;</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-default"><div class="highlight"><pre><span></span><span class="c1"># Etesian parameters.</span>
<span class="n">parametersTable</span> <span class="o">=</span> \
    <span class="p">(</span> <span class="p">(</span><span class="s1">&#39;etesian.aspectRatio&#39;</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="s1">&#39;min&#39;</span><span class="p">:</span><span class="mi">10</span><span class="p">,</span> <span class="s1">&#39;max&#39;</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="s1">&#39;etesian.spaceMargin&#39;</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="s1">&#39;etesian.uniformDensity&#39;</span> <span class="p">,</span> <span class="n">TypeBool</span>      <span class="p">,</span> <span class="kc">False</span>  <span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span><span class="s1">&#39;etesian.routingDriven&#39;</span>  <span class="p">,</span> <span class="n">TypeBool</span>      <span class="p">,</span> <span class="kc">False</span>  <span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span><span class="s2">&quot;etesian.effort&quot;</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="s1">&#39;values&#39;</span><span class="p">:(</span> <span class="p">(</span><span class="s2">&quot;Fast&quot;</span>    <span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
                   <span class="p">,</span> <span class="p">(</span><span class="s2">&quot;Standard&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
                   <span class="p">,</span> <span class="p">(</span><span class="s2">&quot;High&quot;</span>    <span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
                   <span class="p">,</span> <span class="p">(</span><span class="s2">&quot;Extreme&quot;</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="s2">&quot;etesian.graphics&quot;</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="s1">&#39;values&#39;</span><span class="p">:(</span> <span class="p">(</span><span class="s2">&quot;Show every step&quot;</span>  <span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
                   <span class="p">,</span> <span class="p">(</span><span class="s2">&quot;Show lower bound&quot;</span> <span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
                   <span class="p">,</span> <span class="p">(</span><span class="s2">&quot;Show result only&quot;</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="s1">&#39;Etesian&#39;</span><span class="p">,</span> <span class="s1">&#39;etesian&#39;</span><span class="p">)</span>

    <span class="p">,</span> <span class="p">(</span><span class="n">TypeTitle</span> <span class="p">,</span> <span class="s1">&#39;Placement area&#39;</span><span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span><span class="n">TypeOption</span><span class="p">,</span> <span class="s2">&quot;etesian.aspectRatio&quot;</span>   <span class="p">,</span> <span class="s2">&quot;Aspect Ratio, X/Y (%)&quot;</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="s2">&quot;etesian.spaceMargin&quot;</span>   <span class="p">,</span> <span class="s2">&quot;Space Margin&quot;</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="s1">&#39;Etesian - Placer&#39;</span><span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span><span class="n">TypeOption</span><span class="p">,</span> <span class="s2">&quot;etesian.uniformDensity&quot;</span><span class="p">,</span> <span class="s2">&quot;Uniform density&quot;</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="s2">&quot;etesian.routingDriven&quot;</span> <span class="p">,</span> <span class="s2">&quot;Routing driven&quot;</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="s2">&quot;etesian.effort&quot;</span>        <span class="p">,</span> <span class="s2">&quot;Placement effort&quot;</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="s2">&quot;etesian.graphics&quot;</span>      <span class="p">,</span> <span class="s2">&quot;Placement view&quot;</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><code class="docutils literal"><span class="pre">parametersTable</span></code>, defines &amp; initialise the configuration variables.</li>
<li><code class="docutils literal"><span class="pre">layoutTables</span></code>, defines how the various parameters will be displayed
in the configuration window (<a class="reference internal" href="ViewerTools.html#the-settings-tab"><span class="std std-ref">The Settings Tab</span></a>).</li>
</ul>
</li>
<li>The <code class="docutils literal"><span class="pre">parametersTable</span></code>, is a tuple (list) of tuples. Each entry in the list
describe a configuration parameter. In it&#8217;s simplest form, it&#8217;s a quadruplet
<span class="cb">(TypeOption, &#8216;paramId&#8217;, ParameterType, DefaultValue)</span> with:<ol class="arabic">
<li><code class="docutils literal"><span class="pre">TypeOption</span></code>, tells that this tuple describe a parameter.</li>
<li><code class="docutils literal"><span class="pre">paramId</span></code>, the identifier of the parameter. Identifiers are defined
by the tools. The list of parameters is detailed in each tool section.</li>
<li><code class="docutils literal"><span class="pre">ParameterType</span></code>, the kind of parameter. Could be:<ul>
<li><code class="docutils literal"><span class="pre">TypeBool</span></code>, boolean.</li>
<li><code class="docutils literal"><span class="pre">TypeInt</span></code>, signed integer.</li>
<li><code class="docutils literal"><span class="pre">TypeEnumerate</span></code>, enumerated type, needs extra entry.</li>
<li><code class="docutils literal"><span class="pre">TypePercentage</span></code>, percentage, expressed between 0 and 100.</li>
<li><code class="docutils literal"><span class="pre">TypeDouble</span></code>, float.</li>
<li><code class="docutils literal"><span class="pre">TypeString</span></code>, character string.</li>
</ul>
</li>
<li><code class="docutils literal"><span class="pre">DefaultValue</span></code>, 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">&lt;CWD&gt;/.coriolis2/settings.py</span> (that is, written in <span class="sc">Python</span>).</p>
<p>For example:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="c1"># -*- Mode:Python -*-</span>

<span class="n">defaultStyle</span> <span class="o">=</span> <span class="s1">&#39;Alliance.Classic [black]&#39;</span>

<span class="c1"># Regular Coriolis configuration.</span>
<span class="n">parametersTable</span> <span class="o">=</span> \
    <span class="p">(</span> <span class="p">(</span><span class="s1">&#39;misc.catchCore&#39;</span>           <span class="p">,</span> <span class="n">TypeBool</span>      <span class="p">,</span> <span class="kc">False</span>  <span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span><span class="s1">&#39;misc.info&#39;</span>                <span class="p">,</span> <span class="n">TypeBool</span>      <span class="p">,</span> <span class="kc">False</span>  <span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span><span class="s1">&#39;misc.paranoid&#39;</span>            <span class="p">,</span> <span class="n">TypeBool</span>      <span class="p">,</span> <span class="kc">False</span>  <span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span><span class="s1">&#39;misc.bug&#39;</span>                 <span class="p">,</span> <span class="n">TypeBool</span>      <span class="p">,</span> <span class="kc">False</span>  <span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span><span class="s1">&#39;misc.logMode&#39;</span>             <span class="p">,</span> <span class="n">TypeBool</span>      <span class="p">,</span> <span class="kc">True</span>   <span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span><span class="s1">&#39;misc.verboseLevel1&#39;</span>       <span class="p">,</span> <span class="n">TypeBool</span>      <span class="p">,</span> <span class="kc">False</span>  <span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span><span class="s1">&#39;misc.verboseLevel2&#39;</span>       <span class="p">,</span> <span class="n">TypeBool</span>      <span class="p">,</span> <span class="kc">True</span>   <span class="p">)</span>
    <span class="p">,</span> <span class="p">(</span><span class="s1">&#39;misc.minTraceLevel&#39;</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="s1">&#39;misc.maxTraceLevel&#39;</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="c1"># Some ordinary Python script...</span>
<span class="kn">import</span> <span class="nn">os</span>

<span class="nb">print</span> <span class="s1">&#39;       o  Cleaning up ClockTree previous run.&#39;</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="s1">&#39;.&#39;</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="s1">&#39;.ap&#39;</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="s1">&#39;_clocked.&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">):</span>
    <span class="nb">print</span> <span class="s1">&#39;          - &lt;</span><span class="si">%s</span><span class="s1">&gt;&#39;</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"><span class="std std-ref">Python Interface for Hurricane / Coriolis</span></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 Aug 19, 2018.
        </small></td>
        <td class="RFooter"></td>
      </tr>
    </table>
    <table class="footer2">
      <tr>
        <td class="LFooter">Coriolis 2 Documentation</td>
        <td class="RFooter"><small>
              &copy; Copyright 2000-2018, 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>