coriolis/documentation/_build/html/UsersGuide/Configuration.html

788 lines
60 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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 Users 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">Release v2.2</a></li>
<li class="toctree-l3"><a class="reference internal" href="Releases.html#release-v2-3">Release v2.3</a></li>
<li class="toctree-l3"><a class="reference internal" href="Releases.html#release-v2-4">Release v2.4</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="DesignFlow.html">Complete Design Flow &amp; Examples</a></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#cross-dependencies-issues">Cross Dependencies Issues</a></li>
<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#the-actively-developed-branch">The actively developed branch</a></li>
<li class="toctree-l4"><a class="reference internal" href="Installation.html#installing-on-redhat-or-compatible-distributions">Installing on <span class="sc">RedHat</span> or compatible distributions</a></li>
<li class="toctree-l4"><a class="reference internal" href="Installation.html#building-a-debug-enabled-version">Building a Debug Enabled Version</a></li>
<li class="toctree-l4"><a class="reference internal" href="Installation.html#installing-on-debian-9-ubuntu-18-or-compatible-distributions">Installing on <span class="sc">Debian</span> 9, <span class="sc">Ubuntu</span> 18 or compatible distributions</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="#configuration-user-s-settings">Configuration &amp; User&#8217;s Settings</a></li>
<li class="toctree-l3"><a class="reference internal" href="#a-comprehensive-example-of-coriolis2-setting-py">A Comprehensive Example of <span class="cb">./coriolis2/setting.py</span></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#katana-global-router">Katana &#8211; Global Router</a></li>
<li class="toctree-l4"><a class="reference internal" href="ViewerTools.html#katana-detailed-router">Katana &#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-paths">2.1 Setting up the Paths</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="../Analog/Analog.html">Hurricane/Analog Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Oroshi/Oroshi.html">Oroshi Reference</a></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">
<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 built with respect of the classical paradigm that the
computational intensive 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>
</div>
<div class="section" id="configuration-user-s-settings">
<h2>Configuration &amp; User&#8217;s Settings<a class="headerlink" href="#configuration-user-s-settings" title="Permalink to this headline"></a></h2>
<p>All configurations files are shipped under the form of <span class="sc">Python</span> modules.
They are to be loaded through <code class="docutils literal"><span class="pre">import</span></code> statements. The user&#8217;s configuration
files must be put in a <code class="docutils literal"><span class="pre">./coriolis2/</span></code> directory under the working directory.
It must be made a <span class="sc">Python</span> module so it must contains a <code class="docutils literal"><span class="pre">__init__.py</span></code> file
(kept empty most of the time). And as they are true <span class="sc">Python</span> files, you may use
in them any valid code you see fit.</p>
<p>If no user configuration files are present, <span class="sc">Coriolis</span> will use the default
<code class="docutils literal"><span class="pre">symbolic.cmos</span></code> technology which matches the <span class="sc">Alliance</span> symbolic default one.</p>
<p>Contents of the user&#8217;s configuration directory <code class="docutils literal"><span class="pre">./coriolis2/</span></code>:</p>
<table border="1" class="docutils">
<colgroup>
<col width="43%" />
<col width="58%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">File</th>
<th class="head">Contents/Meaning</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><span class="cb">./coriolis2/__init__.py</span></td>
<td><strong>Mandatory.</strong> Tells <span class="sc">Python</span> this directory
<em>is</em> a module. Can be left empty</td>
</tr>
<tr class="row-odd"><td><span class="cb">./coriolis2/settings.py</span></td>
<td><strong>Mandatory.</strong> The user&#8217;s settings, it must
setup the technology intended for use and
perform any configuration variable settings</td>
</tr>
<tr class="row-even"><td><span class="cb">./coriolis2/ioring.py</span></td>
<td><strong>Optional.</strong> Define how the I/O pads are to
be placed on the periphery of the chip along
the chip and core sizes</td>
</tr>
<tr class="row-odd"><td><span class="cb">./coriolis2/katana.py</span></td>
<td><strong>Optional.</strong> Hook file for <span class="sc">Katana</span>, run
just after the tool has been created for a
<code class="docutils literal"><span class="pre">Cell</span></code>. Mostly to setup <code class="docutils literal"><span class="pre">Nets</span></code> to be
traced</td>
</tr>
</tbody>
</table>
<p>For example, to use <span class="sc">mosis</span> 180nm, you can put in your <span class="cb">./coriolis2/setting.py</span>:</p>
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="c1"># -*- Mode:Python -*-</span>
<span class="kn">import</span> <span class="nn">node180.scn6m_deep_09</span>
</pre></div>
</div>
</div>
<div class="section" id="a-comprehensive-example-of-coriolis2-setting-py">
<h2>A Comprehensive Example of <span class="cb">./coriolis2/setting.py</span><a class="headerlink" href="#a-comprehensive-example-of-coriolis2-setting-py" title="Permalink to this headline"></a></h2>
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">os</span>
<span class="kn">import</span> <span class="nn">Cfg</span>
<span class="kn">import</span> <span class="nn">Viewer</span>
<span class="kn">import</span> <span class="nn">CRL</span>
<span class="kn">import</span> <span class="nn">node180.scn6m_deep_09</span>
<span class="kn">from</span> <span class="nn">helpers</span> <span class="kn">import</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">,</span> <span class="n">n</span>
<span class="n">allianceTop</span> <span class="o">=</span> <span class="bp">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="bp">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">Cfg</span><span class="o">.</span><span class="n">Configuration</span><span class="o">.</span><span class="n">pushDefaultPriority</span><span class="p">(</span> <span class="n">Cfg</span><span class="o">.</span><span class="n">Parameter</span><span class="o">.</span><span class="n">Priority</span><span class="o">.</span><span class="n">UserFile</span> <span class="p">)</span>
<span class="n">Viewer</span><span class="o">.</span><span class="n">Graphics</span><span class="o">.</span><span class="n">setStyle</span><span class="p">(</span> <span class="s1">&#39;Alliance.Classic [black]&#39;</span> <span class="p">)</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="c1"># Alliance related settings.</span>
<span class="n">af</span> <span class="o">=</span> <span class="n">CRL</span><span class="o">.</span><span class="n">AllianceFramework</span><span class="o">.</span><span class="n">get</span><span class="p">()</span>
<span class="n">env</span> <span class="o">=</span> <span class="n">af</span><span class="o">.</span><span class="n">getEnvironment</span><span class="p">()</span>
<span class="n">env</span><span class="o">.</span><span class="n">setSCALE_X</span> <span class="p">(</span> <span class="mi">100</span> <span class="p">)</span>
<span class="n">env</span><span class="o">.</span><span class="n">setCATALOG</span> <span class="p">(</span> <span class="s1">&#39;CATAL&#39;</span> <span class="p">)</span>
<span class="n">env</span><span class="o">.</span><span class="n">setIN_LO</span> <span class="p">(</span> <span class="s1">&#39;vst&#39;</span> <span class="p">)</span>
<span class="n">env</span><span class="o">.</span><span class="n">setIN_PH</span> <span class="p">(</span> <span class="s1">&#39;ap&#39;</span> <span class="p">)</span>
<span class="n">env</span><span class="o">.</span><span class="n">setOUT_LO</span> <span class="p">(</span> <span class="s1">&#39;vst&#39;</span> <span class="p">)</span>
<span class="n">env</span><span class="o">.</span><span class="n">setOUT_PH</span> <span class="p">(</span> <span class="s1">&#39;ap&#39;</span> <span class="p">)</span>
<span class="n">env</span><span class="o">.</span><span class="n">setPOWER</span> <span class="p">(</span> <span class="s1">&#39;vdd&#39;</span> <span class="p">)</span>
<span class="n">env</span><span class="o">.</span><span class="n">setGROUND</span> <span class="p">(</span> <span class="s1">&#39;vss&#39;</span> <span class="p">)</span>
<span class="n">env</span><span class="o">.</span><span class="n">setCLOCK</span> <span class="p">(</span> <span class="s1">&#39;.*ck.*|.*nck.*&#39;</span> <span class="p">)</span>
<span class="n">env</span><span class="o">.</span><span class="n">setBLOCKAGE</span> <span class="p">(</span> <span class="s1">&#39;blockage[Nn]et.*&#39;</span> <span class="p">)</span>
<span class="n">env</span><span class="o">.</span><span class="n">setPad</span> <span class="p">(</span> <span class="s1">&#39;.*_mpx$&#39;</span> <span class="p">)</span>
<span class="n">env</span><span class="o">.</span><span class="n">setWORKING_LIBRARY</span><span class="p">(</span> <span class="s1">&#39;.&#39;</span> <span class="p">)</span>
<span class="n">env</span><span class="o">.</span><span class="n">addSYSTEM_LIBRARY</span> <span class="p">(</span> <span class="n">library</span><span class="o">=</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">&#39;/nsxlib&#39;</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="n">CRL</span><span class="o">.</span><span class="n">Environment</span><span class="o">.</span><span class="n">Append</span> <span class="p">)</span>
<span class="n">env</span><span class="o">.</span><span class="n">addSYSTEM_LIBRARY</span> <span class="p">(</span> <span class="n">library</span><span class="o">=</span><span class="n">cellsTop</span><span class="o">+</span><span class="s1">&#39;/mpxlib&#39;</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="n">CRL</span><span class="o">.</span><span class="n">Environment</span><span class="o">.</span><span class="n">Append</span> <span class="p">)</span>
<span class="c1"># Misc. setting parameters.</span>
<span class="n">Cfg</span><span class="o">.</span><span class="n">getParamBool</span> <span class="p">(</span> <span class="s1">&#39;misc.logMode&#39;</span> <span class="p">)</span><span class="o">.</span><span class="n">setBool</span> <span class="p">(</span> <span class="bp">False</span> <span class="p">)</span>
<span class="n">Cfg</span><span class="o">.</span><span class="n">getParamBool</span> <span class="p">(</span> <span class="s1">&#39;misc.verboseLevel1&#39;</span> <span class="p">)</span><span class="o">.</span><span class="n">setBool</span> <span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
<span class="n">Cfg</span><span class="o">.</span><span class="n">getParamBool</span> <span class="p">(</span> <span class="s1">&#39;misc.verboseLevel2&#39;</span> <span class="p">)</span><span class="o">.</span><span class="n">setBool</span> <span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
<span class="c1"># P&amp;R related parameters.</span>
<span class="n">Cfg</span><span class="o">.</span><span class="n">getParamString</span> <span class="p">(</span> <span class="s1">&#39;anabatic.routingGauge&#39;</span> <span class="p">)</span><span class="o">.</span><span class="n">setString</span> <span class="p">(</span> <span class="s1">&#39;msxlib4&#39;</span> <span class="p">)</span>
<span class="n">Cfg</span><span class="o">.</span><span class="n">getParamString</span> <span class="p">(</span> <span class="s1">&#39;anabatic.topRoutingLayer&#39;</span> <span class="p">)</span><span class="o">.</span><span class="n">setString</span> <span class="p">(</span> <span class="s1">&#39;METAL4&#39;</span> <span class="p">)</span>
<span class="n">Cfg</span><span class="o">.</span><span class="n">getParamInt</span> <span class="p">(</span> <span class="s1">&#39;katana.hTracksReservedLocal&#39;</span> <span class="p">)</span><span class="o">.</span><span class="n">setInt</span> <span class="p">(</span> <span class="mi">6</span> <span class="p">)</span>
<span class="n">Cfg</span><span class="o">.</span><span class="n">getParamInt</span> <span class="p">(</span> <span class="s1">&#39;katana.vTracksReservedLocal&#39;</span> <span class="p">)</span><span class="o">.</span><span class="n">setInt</span> <span class="p">(</span> <span class="mi">3</span> <span class="p">)</span>
<span class="n">Cfg</span><span class="o">.</span><span class="n">Configuration</span><span class="o">.</span><span class="n">popDefaultPriority</span><span class="p">()</span>
</pre></div>
</div>
<p> <span class="raw-html"><p class="noindent"></p></span> The example above shows the user&#8217;s configuration file, with all the
available settings for <span class="sc">Alliance</span> and a small subset for other tools. Some remarks
about this file:</p>
<ul>
<li><p class="first">The <code class="docutils literal"><span class="pre">Cfg.Configuration.pushDefaultPriority()</span></code> and <code class="docutils literal"><span class="pre">Cfg.Configuration.popDefaultPriority()</span></code>
statements are there so the value sets by the user will not be overriden by system
ones event if they are setup afterwards. This priority system is introduced so the
various configuration files could be loaded in out of order.</p>
</li>
<li><p class="first">The <code class="docutils literal"><span class="pre">Viewer.Graphics.setStyle()</span></code> allows you to choose the look of your liking from
the start.</p>
</li>
<li><p class="first">For <span class="sc">Alliance</span>, the user does 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">addSYSTEM_LIBRARY()</span></code>,
the <code class="docutils literal"><span class="pre">setWORKING_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">addSYSTEM_LIBRARY()</span></code> adds a directory to the library search path.
Each library entry will be added to the search path according to the second parameter:</p>
<ul class="simple">
<li><span class="cb">CRL.Environment::Append</span>: append to the search path.</li>
<li><span class="cb">CRL.Environment::Prepend</span>: insert in head of the search path.</li>
<li><span class="cb">CRL.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 its 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 through 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">setPOWER()</span></code>, <code class="docutils literal"><span class="pre">setGROUND()</span></code>, <code class="docutils literal"><span class="pre">setCLOCK()</span></code> and <code class="docutils literal"><span class="pre">setBLOCKAGE()</span></code> net names,
a regular expression (<span class="sc">gnu</span> regexp) is expected.</p>
</li>
<li><p class="first">For other tools parameters, just use getter and setter according to their types:</p>
<table border="1" class="docutils">
<colgroup>
<col width="23%" />
<col width="77%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Type</th>
<th class="head">Getter/Setter</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal"><span class="pre">Bool</span></code></td>
<td><code class="docutils literal"><span class="pre">Cgt.getParamBool('name').setBool(</span> <span class="pre">True</span> <span class="pre">)</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">Int</span></code></td>
<td><code class="docutils literal"><span class="pre">Cgt.getParamInt('name').setBool(</span> <span class="pre">12</span> <span class="pre">)</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">Enumerate</span></code></td>
<td><code class="docutils literal"><span class="pre">Cgt.getParamEnumerate('name').setBool(</span> <span class="pre">12</span> <span class="pre">)</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">Double</span></code></td>
<td><code class="docutils literal"><span class="pre">Cgt.getParamDouble('name').setDouble(</span> <span class="pre">254.5</span> <span class="pre">)</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">Percentage</span></code></td>
<td><code class="docutils literal"><span class="pre">Cgt.getParamPercentage('name').setPercentage(</span> <span class="pre">75.0</span> <span class="pre">)</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">String</span></code></td>
<td><code class="docutils literal"><span class="pre">Cgt.getParamString('name').setString(</span> <span class="pre">'machin'</span> <span class="pre">)</span></code></td>
</tr>
</tbody>
</table>
<p>Lists of the configurable parameters of most interest to the user are given in
<a class="reference internal" href="ViewerTools.html#viewer-tools"><span class="std std-ref">Viewer &amp; Tools</span></a>.</p>
</li>
</ul>
</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 Oct 30, 2019.
</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-2019, Sorbonne Université.
</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>