1300 lines
77 KiB
HTML
1300 lines
77 KiB
HTML
|
||
|
||
<!DOCTYPE html>
|
||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||
<head>
|
||
<meta charset="utf-8">
|
||
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
||
<title>CGT - The Graphical Interface — 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="Python Interface for Hurricane / Coriolis" href="ScriptsPlugins.html"/>
|
||
<link rel="prev" title="Coriolis Configuration & Initialisation" href="Configuration.html"/>
|
||
|
||
|
||
<script src="_static/js/modernizr.min.js"></script>
|
||
|
||
</head>
|
||
|
||
<body class="wy-body-for-nav" role="document">
|
||
|
||
<div class="wy-grid-for-nav">
|
||
|
||
|
||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||
<div class="wy-side-nav-search">
|
||
|
||
|
||
|
||
<a href="../index.html" class="icon icon-home"> Coriolis
|
||
|
||
|
||
|
||
</a>
|
||
|
||
|
||
<div role="search">
|
||
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||
<input type="text" name="q" placeholder="Search docs" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||
|
||
|
||
|
||
<ul class="current">
|
||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Coriolis User’s Guide</a><ul class="current">
|
||
<li class="toctree-l2"><a class="reference internal" href="LicenseCredits.html">Credits & License</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="Releases.html">Release Notes</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="Releases.html#release-1-0-1475">Release 1.0.1475</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Releases.html#release-1-0-1963">Release 1.0.1963</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Releases.html#release-1-0-2049">Release 1.0.2049</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Releases.html#release-v2-0-1">Release v2.0.1</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Releases.html#release-v2-1">Release v2.1</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Releases.html#release-v2-2"><strong>Release v2.2</strong></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="Installation.html">Installation</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="Installation.html#fixed-directory-tree">Fixed Directory Tree</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Installation.html#building-coriolis">Building Coriolis</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="Installation.html#building-the-devel-branch">Building the Devel Branch</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Installation.html#additionnal-requirement-under-macos">Additionnal Requirement under <span class="sc">MacOS</span></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Installation.html#packaging-coriolis">Packaging Coriolis</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Installation.html#hooking-up-into-alliance">Hooking up into <span class="sc">Alliance</span></a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Installation.html#setting-up-the-environment-coriolisenv-py">Setting up the Environment (coriolisEnv.py)</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="Configuration.html">Coriolis Configuration & Initialisation</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="Configuration.html#general-software-architecture">General Software Architecture</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Configuration.html#first-stage-technology-selection">First Stage: Technology Selection</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Configuration.html#second-stage-technology-configuration-loading">Second Stage: Technology Configuration Loading</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Configuration.html#configuration-helpers">Configuration Helpers</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="Configuration.html#alliance-helper"><span class="sc">Alliance</span> Helper</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Configuration.html#tools-configuration-helpers">Tools Configuration Helpers</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Configuration.html#hacking-the-configuration-files">Hacking the Configuration Files</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2 current"><a class="current reference internal" href="#">CGT - The Graphical Interface</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#viewer-tools">Viewer & Tools</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#stratus-netlist-capture"><span class="sc">Stratus</span> Netlist Capture</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#the-hurricane-data-base">The <span class="sc">Hurricane</span> Data-Base</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#synthetizing-and-loading-a-design">Synthetizing and loading a design</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#etesian-placer">Etesian – Placer</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#knik-global-router">Knik – Global Router</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#kite-detailed-router">Kite – Detailed Router</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#executing-python-scripts-in-cgt">Executing Python Scripts in Cgt</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#printing-snapshots">Printing & Snapshots</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#memento-of-shortcuts-in-graphic-mode">Memento of Shortcuts in Graphic Mode</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#cgt-command-line-options">Cgt Command Line Options</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#miscellaneous-settings">Miscellaneous Settings</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#the-controller">The Controller</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#the-look-tab">The Look Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#the-filter-tab">The Filter Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#the-layers-go-tab">The Layers&Go Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#the-netlist-tab">The Netlist Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#the-selection-tab">The Selection Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#the-inspector-tab">The Inspector Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#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’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 – 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 – 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 – 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 – 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 – <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 – Etesian</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – 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/Stratus.html">Stratus Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../DpGen/DpGen.html">DpGen Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../Patterns/Patterns.html">Patterns Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../Hurricane/Hurricane.html">Hurricane Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../Viewer/Viewer.html">Viewer Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../CrlCore/CrlCore.html">CRL Core Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../Katabatic/Katabatic.html">Katabatic Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../Kite/Kite.html">Kite Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../Unicorn/Unicorn.html">Unicorn Reference</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../PythonCpp/index.html">Hurricane Python/C++ API Tutorial</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="../PythonCpp/Introduction.html">1. Introduction</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/Introduction.html#first-a-disclaimer">1.1 First, A Disclaimer</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/Introduction.html#about-technical-choices">1.2 About Technical Choices</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/Introduction.html#botched-design">1.3 Botched Design</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../PythonCpp/Configuration.html">2. Basic File Structure and CMake configuration</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../PythonCpp/DBoStandalone.html">3. Case 1 - DBo Derived, Standalone</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoStandalone.html#class-associated-header-file">3.1 Class Associated Header File</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoStandalone.html#class-associated-file">3.2 Class Associated File</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="../PythonCpp/DBoStandalone.html#head-of-the-file">3.2.1 Head of the file</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../PythonCpp/DBoStandalone.html#the-python-module-part">3.2.2 The Python Module Part</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../PythonCpp/DBoStandalone.html#python-type-linking">3.2.3 Python Type Linking</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../PythonCpp/DBoStandalone.html#the-shared-library-part">3.2.4 The Shared Library Part</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoStandalone.html#python-module-c-namespace">3.3 Python Module (C++ namespace)</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html">4. Case 2 - Hierarchy of DBo Derived Classes</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html#base-class-header">4.1 Base Class Header</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html#base-class-file">4.2 Base Class File</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html#intermediate-class-header">4.3 Intermediate Class Header</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html#intermediate-class-file">4.4 Intermediate Class File</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html#terminal-class-header">4.5 Terminal Class Header</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html#terminal-class-file">4.6 Terminal Class File</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/DBoHierarchy.html#python-module">4.8 Python Module</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../PythonCpp/NonDBo.html">5. Case 3 - Non-DBo Standalone Classe</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/NonDBo.html#class-header">5.1 Class Header</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/NonDBo.html#class-file">5.2 Class File</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../PythonCpp/NonDBo.html#id1">5.2 Class File</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../PythonCpp/DbU.html">6. Encapsulating DbU</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../PythonCpp/Name.html">7. No C++ Hurricane::Name encapsulation</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../RDS/index.html">RDS – Symbolic to Real Conversion in Alliance</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="../RDS/RDSpage.html">Symbolic Layout</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#symbolic-components">Symbolic Components</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#symbolic-segments">Symbolic Segments</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../RDS/RDSpage.html#the-rds-file">The RDS File</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#physical-grid-lambda-value">Physical Grid & Lambda Value</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../RDS/RDSpage.html#the-mbk-to-rds-segment-table">The <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>
|
||
|
||
</nav>
|
||
|
||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||
|
||
|
||
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
|
||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||
<a href="../index.html">Coriolis</a>
|
||
</nav>
|
||
|
||
|
||
|
||
<div class="wy-nav-content">
|
||
<div class="rst-content">
|
||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||
<ul class="wy-breadcrumbs">
|
||
<li><a href="../index.html">Docs</a> »</li>
|
||
|
||
<li><a href="index.html">Coriolis User’s Guide</a> »</li>
|
||
|
||
<li>CGT - The Graphical Interface</li>
|
||
<li class="wy-breadcrumbs-aside">
|
||
|
||
|
||
|
||
</li>
|
||
</ul>
|
||
<hr/>
|
||
</div>
|
||
<div role="main" class="document">
|
||
|
||
<div class="section" id="cgt-the-graphical-interface">
|
||
<h1>CGT - The Graphical Interface<a class="headerlink" href="#cgt-the-graphical-interface" title="Permalink to this headline">¶</a></h1>
|
||
<p>The <span class="sc">Coriolis</span> graphical interface is split up into two windows.</p>
|
||
<ul class="simple">
|
||
<li>The <strong>Viewer</strong>, with the following features:<ul>
|
||
<li>Basic load/save capabilities.</li>
|
||
<li>Display the current working cell. Could be empty if the design
|
||
is not yet placed.</li>
|
||
<li>Execute Stratus Scripts.</li>
|
||
<li>Menu to run the tools (placement, routage).</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p>Features are detailed in <a class="reference internal" href="#viewer-tools">Viewer & Tools</a>.</p>
|
||
<p><a class="reference internal" href="../_images/Viewer-1.png"><img alt="Viewer Basic Snapshot" class="align-middle" src="../_images/Viewer-1.png" style="width: 80%;" /></a></p>
|
||
<ul class="simple">
|
||
<li>The <strong>Controller</strong>, which allows:<ul>
|
||
<li>Tweak what is displayer by the <em>Viewer</em>. Through the <em>Look</em>,
|
||
<em>Filter</em> and <em>Layers&Gos</em> tabs.</li>
|
||
<li>Browse the <em>netlist</em> with eponym tab.</li>
|
||
<li>Show the list of selected objects (if any) with <em>selection</em></li>
|
||
<li>Walk through the Database, the Cell or the Selection with <em>Inspector</em>.
|
||
This is an advanced feature, reserved for experimented users.</li>
|
||
<li>The tab <em>Settings</em> which give access to all the settings.
|
||
They are closely related to Configuration & Initialisation.</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p> <a class="reference internal" href="../_images/Controller-1.png"><img alt="Controller Basic Snapshot" class="align-middle" src="../_images/Controller-1.png" style="width: 80%;" /></a> </p>
|
||
<div class="section" id="viewer-tools">
|
||
<span id="id1"></span><h2>Viewer & Tools<a class="headerlink" href="#viewer-tools" title="Permalink to this headline">¶</a></h2>
|
||
<div class="section" id="stratus-netlist-capture">
|
||
<h3><span class="sc">Stratus</span> Netlist Capture<a class="headerlink" href="#stratus-netlist-capture" title="Permalink to this headline">¶</a></h3>
|
||
<p><span class="sc">Stratus</span> is the replacement for <span class="sc">GenLib</span> procedural netlist capture language.
|
||
It is designed as a set of <span class="sc">Python</span> classes, and comes with it’s own documentation
|
||
(<a class="reference external" href="file:///usr/share/doc/coriolis2/en/html/stratus/index.html">Stratus Documentation</a>)</p>
|
||
</div>
|
||
<div class="section" id="the-hurricane-data-base">
|
||
<h3>The <span class="sc">Hurricane</span> Data-Base<a class="headerlink" href="#the-hurricane-data-base" title="Permalink to this headline">¶</a></h3>
|
||
<p>The <span class="sc">Alliance</span> flow is based on the <span class="sc">mbk</span> data-base, which has one data-structure
|
||
for each view. That is, <span class="cb">Lofig</span> for the <em>logical</em> view and <span class="cb">Phfig</span> for the <em>physical</em>
|
||
view. The place and route tools were responsible for maintaining (or not) the
|
||
coherency between views. Reflecting this weak coupling between views, each one
|
||
was stored in a separate file with a specific format. The <em>logical</em> view is stored
|
||
in a <span class="cb">vst</span> file in <span class="sc">vhdl</span> format and the <em>physical</em> in an <span class="cb">ap</span> file in an ad-hoc format.</p>
|
||
<p>The <span class="sc">Coriolis</span> flow is based on the <span class="sc">Hurricane</span> data-base, which has a unified
|
||
structure for <em>logical</em> and <em>physical</em> view. That data structure is the <em>Cell</em> object.
|
||
The <em>Cell</em> can have any state between pure netlist and completly placed and
|
||
routed design. Although the memory representation of the views has deeply
|
||
changed we still use the <span class="sc">Alliance</span> files format, but they now really represent
|
||
views of the same object. The point is that one must be very careful about
|
||
view coherency when going to and from <span class="sc">Coriolis</span>.</p>
|
||
<p>As for the second release, <span class="sc">Coriolis</span> can be used only for three purposes :</p>
|
||
<ul class="simple">
|
||
<li><strong>Placing a design</strong>, in which case the <em>netlist</em> view must be present.</li>
|
||
<li><strong>Routing a design</strong>, in that case the <em>netlist</em>
|
||
view and the <em>layout</em> view must be present and <em>layout</em> view must contain
|
||
a placement. Both views must have the same name. When saving the routed design,
|
||
it is advised to change the design name otherwise the original unrouted placement
|
||
in the <em>layout</em> view will be overwritten.</li>
|
||
<li><strong>Viewing a design</strong>, the <em>netlist</em> view must be present, if a <em>layout</em>
|
||
view is present it still must have the same name but it can be in any
|
||
state.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="synthetizing-and-loading-a-design">
|
||
<h3>Synthetizing and loading a design<a class="headerlink" href="#synthetizing-and-loading-a-design" title="Permalink to this headline">¶</a></h3>
|
||
<p><span class="sc">Coriolis</span> supports several file formats. It can load all file format
|
||
from the <span class="sc">Alliance</span> toolchain (.ap for layout, behavioural and structural vhdl .vbe and .vst),
|
||
BLIF netlist format as well as benchmark formats from the ISPD contests.</p>
|
||
<p>It can be compiled with LEF/DEF support, although it requires acceptance of the SI2 license
|
||
and may not be compiled in your version of the software.</p>
|
||
<div class="section" id="synthesis-under-yosys">
|
||
<h4>Synthesis under Yosys<a class="headerlink" href="#synthesis-under-yosys" title="Permalink to this headline">¶</a></h4>
|
||
<p>You can create a BLIF file from the <span class="sc">Yosys</span> synthetizer, which can be imported under Coriolis.
|
||
Most libraries are specified as a .lib liberty file and a .lef LEF file.
|
||
<span class="sc">Yosys</span> opens most .lib files with minor modifications, but LEF support in Coriolis relies on SI2.
|
||
If Coriolis hasn’t been compiled against it, the library is given in <span class="sc">Alliance</span> .ap format.
|
||
<a class="reference external" href="http://vlsitechnology.org">Some free libraries</a> already provide both .ap and .lib files.</p>
|
||
<p>Once you have installed a common library under <span class="sc">Yosys</span> and Coriolis, just synthetize your design
|
||
with <span class="sc">Yosys</span> and import it (as Blif without the extension) under Coriolis to perform place&route.</p>
|
||
</div>
|
||
<div class="section" id="synthesis-under-alliance">
|
||
<h4>Synthesis under Alliance<a class="headerlink" href="#synthesis-under-alliance" title="Permalink to this headline">¶</a></h4>
|
||
<p><span class="sc">Alliance</span> is an older toolchain but has been extensively used for years. Coriolis can import
|
||
and write Alliance designs and libraries directly.</p>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="etesian-placer">
|
||
<h3>Etesian – Placer<a class="headerlink" href="#etesian-placer" title="Permalink to this headline">¶</a></h3>
|
||
<p>The <span class="sc">Etesian</span> placer is a state of the art (as of 2015) analytical placer. It is
|
||
within <code class="docutils literal"><span class="pre">5%</span></code> of other placers’ solutions, but is normally a bit worse than ePlace.
|
||
This <span class="sc">Coriolis</span> tool is actually an encapsulation of <span class="sc">Coloquinte</span> which <em>is</em> the placer.</p>
|
||
<div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last"><em>Instance Uniquification Unsupported:</em> a same logical instance cannot have
|
||
two different placements. So, either you manually make a clone of it or you
|
||
supply a placement for it. We need to implement uniquification in the
|
||
<span class="sc">Hurricane</span> database.</p>
|
||
</div>
|
||
<p> <span class="raw-html"><p class="noindent"></p></span>
|
||
<strong>Hierarchical Placement</strong></p>
|
||
<p>The placement area is defined by the top cell abutment box.</p>
|
||
<p>When placing a complete hierarchy, the abutment boxes of the cells (models) other than
|
||
the top cell are sets identical to the one of the top cell and their instances are
|
||
all placed at position <code class="docutils literal"><span class="pre">(0,0,ID)</span></code>. That is, all the abutments boxes, whatever the
|
||
hierarchical level, defines the same area (they are exactly superposed).</p>
|
||
<p>We choose this scheme because the placer will see all the instances as virtually
|
||
flattened, so they can be placed anywhere inside the top-cell abutment box.</p>
|
||
<p> <a class="reference internal" href="../_images/etesian-1.png"><img alt="Etesian Abutment Box" class="align-middle" src="../_images/etesian-1.png" style="width: 80%;" /></a> </p>
|
||
<p> <span class="raw-html"><p class="noindent"></p></span>
|
||
<strong>Computing the Placement Area</strong></p>
|
||
<p>The placement area is computed using the <code class="docutils literal"><span class="pre">etesian.aspectRatio</span></code> and <code class="docutils literal"><span class="pre">etesian.spaceMargin</span></code>
|
||
parameters only if the top-cell has an empty abutment box. If the top-cell abutment
|
||
box has to be set, then it is propagated to all the instances models recursively.</p>
|
||
<p> <span class="raw-html"><p class="noindent"></p></span>
|
||
<strong>Reseting the Placement</strong></p>
|
||
<p>Once a placement has been done, the placer cannot reset it (will be implemented
|
||
later). To perform a new placement, you must restart <span class="cb">cgt</span>. In addition, if you
|
||
have saved the placement on disk, you must erase any <span class="cb">.ap</span> file, which are
|
||
automatically reloaded along with the netlist (<span class="cb">.vst</span>).</p>
|
||
<p> <span class="raw-html"><p class="noindent"></p></span>
|
||
<strong>Limitations</strong></p>
|
||
<p>Etesian supports standard cells and fixed macros. As for the Coriolis 2.1 version,
|
||
it doesn’t support movable macros, and you must place every macro beforehand.
|
||
Timing and routability analysis are not included either, and the returned placement
|
||
may be unroutable.</p>
|
||
<div class="section" id="etesian-configuration-parameters">
|
||
<h4>Etesian Configuration Parameters<a class="headerlink" href="#etesian-configuration-parameters" title="Permalink to this headline">¶</a></h4>
|
||
<table border="1" class="docutils">
|
||
<colgroup>
|
||
<col width="43%" />
|
||
<col width="22%" />
|
||
<col width="35%" />
|
||
</colgroup>
|
||
<thead valign="bottom">
|
||
<tr class="row-odd"><th class="head">Parameter Identifier</th>
|
||
<th class="head">Type</th>
|
||
<th class="head">Default</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody valign="top">
|
||
<tr class="row-even"><td colspan="3"><strong>Etesian Parameters</strong></td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">etesian.aspectRatio</span></code></td>
|
||
<td>TypePercentage</td>
|
||
<td><span class="cb">100</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">Define the height on width <code class="docutils literal"><span class="pre">H/W</span></code> aspect
|
||
ratio, can be comprised between 10 and 1000</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">etesian.spaceMargin</span></code></td>
|
||
<td>TypePercentage</td>
|
||
<td><span class="cb">5</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">The extra white space added to the total area
|
||
of the standard cells</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">etesian.uniformDensity</span></code></td>
|
||
<td>TypeBool</td>
|
||
<td><span class="cb">False</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">Whether the cells will be spread envenly
|
||
across the area or allowed to form denser
|
||
clusters</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">etesian.effort</span></code></td>
|
||
<td>TypeInt</td>
|
||
<td><span class="cb">2</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">Sets the balance between the speed of the
|
||
placer and the solution quality</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">etesian.routingDriven</span></code></td>
|
||
<td>TypeBool</td>
|
||
<td><span class="cb">False</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">Whether the tool will try routing iterations
|
||
and whitespace allocation to improve
|
||
routability; to be implemented</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">etesian.graphics</span></code></td>
|
||
<td>TypeInt</td>
|
||
<td><span class="cb">2</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2"><p class="first">How often the display will be refreshed
|
||
More refreshing slows the placer.</p>
|
||
<ul class="last simple">
|
||
<li><code class="docutils literal"><span class="pre">1</span></code> shows both upper and lower bounds</li>
|
||
<li><code class="docutils literal"><span class="pre">2</span></code> only shows lower bound results</li>
|
||
<li><code class="docutils literal"><span class="pre">3</span></code> only shows the final results</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p></p>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="knik-global-router">
|
||
<h3>Knik – Global Router<a class="headerlink" href="#knik-global-router" title="Permalink to this headline">¶</a></h3>
|
||
<p>The quality of <span class="sc">Knik</span> global routing solutions are equivalent to those of <a class="reference external" href="http://vlsicad.eecs.umich.edu/BK/FGR/">FGR</a> 1.0.
|
||
For an in-depth description of <span class="sc">Knik</span> algorithms, you may download the thesis of
|
||
D. <span class="sc">Dupuis</span> avalaible from here~: <a class="reference external" href="http://www-soc.lip6.fr/en/users/damiendupuis/PhD/">Knik Thesis</a>.</p>
|
||
<p>The global router is (not yet) deterministic. To circumvent this limitation,
|
||
a global routing <em>solution</em> can be saved to disk and reloaded for later uses.</p>
|
||
<p>A global routing is saved into a file with the same name as the design and a
|
||
<span class="cb">kgr</span> extention. It is in <a class="reference external" href="http://www.cerc.utexas.edu/~thyeros/boxrouter/boxrouter.htm">Box Router</a> output format.</p>
|
||
<p> <span class="raw-html"><p class="noindent"></p></span> Menus:</p>
|
||
<ul class="simple">
|
||
<li><img class="math" src="../_images/math/ab9c214f89790a2afdc94a731f08c35d0fafa77d.png" alt="\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Save Global Routing}"/></li>
|
||
<li><img class="math" src="../_images/math/0b37db03668389c8e33d766f186469af280334bb.png" alt="\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Load Global Routing}"/></li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="kite-detailed-router">
|
||
<h3>Kite – Detailed Router<a class="headerlink" href="#kite-detailed-router" title="Permalink to this headline">¶</a></h3>
|
||
<p><span class="sc">Kite</span> no longer suffers from the limitations of <span class="sc">Nero</span>. It can route big designs
|
||
as its runtime and memory footprint is almost linear (with respect to the number
|
||
of gates). It has successfully routed design of more than <cite>150K</cite> gates.
|
||
<span class="raw-html"><br class="medskip"/></span></p>
|
||
<p> <span class="raw-html"><p class="noindent"></p></span> However, this first release comes with the temporary the following
|
||
restrictions:</p>
|
||
<ul class="simple">
|
||
<li>Works only with <span class="sc">SxLib</span> standard cell gauge.</li>
|
||
<li>Works always with 4 routing metal layers (<cite>M2</cite> through <cite>M5</cite>).</li>
|
||
<li>Do not allow (take into account) pre-routed wires on signals
|
||
other than <span class="sc">power</span> or <span class="sc">ground</span>.</li>
|
||
</ul>
|
||
<div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last"><strong>Slow Layer Assignment.</strong> Most of the time, the layer assignment stage is
|
||
fast (less than a dozen seconds), but in some instances it can take more
|
||
than a dozen <em>minutes</em>. This is a known bug and will be corrected in later
|
||
releases.</p>
|
||
</div>
|
||
<p>After each run, <span class="sc">Kite</span> displays a set of <em>completion ratios</em> which must all
|
||
be equal to <cite>100%</cite> if the detailed routing has been successfull.
|
||
In the event of a failure, on a saturated design, you may decrease the
|
||
<cite>edge saturation ratio</cite> (argument <cite>–edge</cite>) to balance more evenly the design
|
||
saturation. That is, the maximum saturation decrease at the price of a wider
|
||
saturated area and increased wirelength. This is the saturation of the
|
||
<em>global</em> router <span class="sc">Knik</span>, and you may increase/decrease by steps of <code class="docutils literal"><span class="pre">5%</span></code>,
|
||
which represent one track. The maximum capacity of the <span class="sc">SxLib</span> gauge is
|
||
10 tracks in two layers, that makes 20 tracks by <span class="sc">Knik</span> edge.</p>
|
||
<p>Routing a design is done in four ordered steps:</p>
|
||
<ol class="arabic simple">
|
||
<li>Detailed pre-route <img class="math" src="../_images/math/9354e2441491d324ef5fd162920f581bdf022af5.png" alt="\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Detailed PreRoute}"/></li>
|
||
<li>Global routing <img class="math" src="../_images/math/8080e7327f421afe79e142b39735819ab9631cb9.png" alt="\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Global Route}"/></li>
|
||
<li>Detailed routing <img class="math" src="../_images/math/44344a23b2a3007fed067629259108385790ee6a.png" alt="\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Detailed Route}"/></li>
|
||
<li>Finalize routing <img class="math" src="../_images/math/0d59c123dd2cd130ca29a2ba930fabbc4f547771.png" alt="\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Finalize Route}"/></li>
|
||
</ol>
|
||
<p>It is possible to supply to the router a complete wiring for some nets that the user’s
|
||
wants to be routed according to a specific topology. The supplied topology must respect
|
||
the building rules of the <span class="sc">Katabatic</span> database (contacts must be, terminals, turns, h-tee
|
||
& v-tee only). During the first step <span class="fboxtt">Detailed Pre-Route</span> the router will solve
|
||
overlaps between the segments, without making any dogleg. If no pre-routed topologies
|
||
are present, this step may be ommited. Any net routed at this step is then fixed and
|
||
become unmovable for the later stages.</p>
|
||
<p>After the detailed routing step the <span class="sc">Kite</span> data-structure is still active
|
||
(the Hurricane wiring is decorated). The finalize step performs the removal of
|
||
the <span class="sc">Kite</span> data-structure, and it is not advisable to save the design before
|
||
that step.</p>
|
||
<p>You may visualize the density (saturation) of either <span class="sc">Knik</span> (on edges) or
|
||
<span class="sc">Kite</span> (on GCells) until the routing is finalized. Special layers appears
|
||
to that effect in the <a class="reference internal" href="#the-layers-go-tab">The Layers&Go Tab</a>.</p>
|
||
<div class="section" id="kite-configuration-parameters">
|
||
<h4>Kite Configuration Parameters<a class="headerlink" href="#kite-configuration-parameters" title="Permalink to this headline">¶</a></h4>
|
||
<p>As <span class="sc">Knik</span> is only called through <span class="sc">Kite</span>, it’s parameters also have
|
||
the <span class="cb">kite.</span> prefix.</p>
|
||
<p>The <span class="sc">Katabatic</span> parameters control the layer assignment step.</p>
|
||
<p>All the defaults value given below are from the default <span class="sc">Alliance</span> technology
|
||
(<span class="cb">cmos</span> and <span class="cb">SxLib</span> cell gauge/routing gauge).</p>
|
||
<table border="1" class="docutils">
|
||
<colgroup>
|
||
<col width="43%" />
|
||
<col width="22%" />
|
||
<col width="35%" />
|
||
</colgroup>
|
||
<thead valign="bottom">
|
||
<tr class="row-odd"><th class="head">Parameter Identifier</th>
|
||
<th class="head">Type</th>
|
||
<th class="head">Default</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody valign="top">
|
||
<tr class="row-even"><td colspan="3"><strong>Katabatic Parameters</strong></td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">katabatic.topRoutingLayer</span></code></td>
|
||
<td>TypeString</td>
|
||
<td><span class="cb">METAL5</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">Define the highest metal layer that will be
|
||
used for routing (inclusive).</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">katabatic.globalLengthThreshold</span></code></td>
|
||
<td>TypeInt</td>
|
||
<td><span class="cb">1450</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">This parameter is used by a layer assignment
|
||
method which is no longer used (did not give
|
||
good results)</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">katabatic.saturateRatio</span></code></td>
|
||
<td>TypePercentage</td>
|
||
<td><span class="cb">80</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">If <code class="docutils literal"><span class="pre">M(x)</span></code> density is above this ratio,
|
||
move up feedthru global segments up from
|
||
depth <code class="docutils literal"><span class="pre">x</span></code> to <code class="docutils literal"><span class="pre">x+2</span></code></td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">katabatic.saturateRp</span></code></td>
|
||
<td>TypeInt</td>
|
||
<td><span class="cb">8</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">If a GCell contains more terminals
|
||
(<span class="cb">RoutingPad</span>) than that number, force a
|
||
move up of the connecting segments to those
|
||
in excess</td>
|
||
</tr>
|
||
<tr class="row-odd"><td colspan="3"><strong>Knik Parameters</strong></td>
|
||
</tr>
|
||
<tr class="row-even"><td rowspan="2"><code class="docutils literal"><span class="pre">kite.hTracksReservedLocal</span></code></td>
|
||
<td>TypeInt</td>
|
||
<td><span class="cb">3</span></td>
|
||
</tr>
|
||
<tr class="row-odd"><td colspan="2">To take account the tracks needed <em>inside</em> a
|
||
GCell to build the <em>local</em> routing, decrease
|
||
the capacity of the edges of the global
|
||
router. Horizontal and vertical locally
|
||
reserved capacity can be distinguished for
|
||
more accuracy.</td>
|
||
</tr>
|
||
<tr class="row-even"><td rowspan="2"><code class="docutils literal"><span class="pre">kite.vTracksReservedLocal</span></code></td>
|
||
<td>TypeInt</td>
|
||
<td><span class="cb">3</span></td>
|
||
</tr>
|
||
<tr class="row-odd"><td colspan="2">cf. <code class="docutils literal"><span class="pre">kite.hTracksReservedLocal</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="3"><strong>Kite Parameters</strong></td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">kite.eventsLimit</span></code></td>
|
||
<td>TypeInt</td>
|
||
<td><span class="cb">4000002</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">The maximum number of segment displacements,
|
||
this is a last ditch safety against infinite
|
||
loop. It’s perhaps a little too low for big
|
||
designs</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">kite.ripupCost</span></code></td>
|
||
<td>TypeInt</td>
|
||
<td><span class="cb">3</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">Differential introduced between two ripup
|
||
cost to avoid a loop between two ripped up
|
||
segments</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">kite.strapRipupLimit</span></code></td>
|
||
<td>TypeInt</td>
|
||
<td><span class="cb">16</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">Maximum number of ripup for <em>strap</em> segments</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">kite.localRipupLimit</span></code></td>
|
||
<td>TypeInt</td>
|
||
<td><span class="cb">9</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">Maximum number of ripup for <em>local</em> segments</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">kite.globalRipupLimit</span></code></td>
|
||
<td>TypeInt</td>
|
||
<td><span class="cb">5</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">Maximum number of ripup for <em>global</em> segments,
|
||
when this limit is reached, triggers topologic
|
||
modification</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">kite.longGlobalRipupLimit</span></code></td>
|
||
<td>TypeInt</td>
|
||
<td><span class="cb">5</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">Maximum number of ripup for <em>long global</em>
|
||
segments, when this limit is reached, triggers
|
||
topological modification</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="executing-python-scripts-in-cgt">
|
||
<span id="python-scripts-in-cgt"></span><h3>Executing Python Scripts in Cgt<a class="headerlink" href="#executing-python-scripts-in-cgt" title="Permalink to this headline">¶</a></h3>
|
||
<p>Python/Stratus scripts can be executed either in text or graphical mode.</p>
|
||
<div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last"><strong>How Cgt Locates Python Scripts:</strong>
|
||
<span class="cb">cgt</span> uses the Python <code class="docutils literal"><span class="pre">import</span></code> mechanism to load Python scripts.
|
||
So you must give the name of your script whitout <code class="docutils literal"><span class="pre">.py</span></code> extention and
|
||
it must be reachable through the <code class="docutils literal"><span class="pre">PYTHONPATH</span></code>. You may uses the
|
||
dotted module notation.</p>
|
||
</div>
|
||
<p>A Python/Stratus script must contains a function called <code class="docutils literal"><span class="pre">ScriptMain()</span></code>
|
||
with one optional argument, the graphical editor into which it may be
|
||
running (will be set to <code class="docutils literal"><span class="pre">None</span></code> in text mode). The Python interface to
|
||
the editor (type: <span class="cb">CellViewer</span>) is limited to basic capabilities
|
||
only.</p>
|
||
<p>Any script given on the command line will be run immediatly <em>after</em> the
|
||
initializations and <em>before</em> any other argument is processed.</p>
|
||
<p>For more explanation on Python scripts see <a class="reference internal" href="ScriptsPlugins.html#python-interface-to-coriolis"><span class="std std-ref">Python Interface for Hurricane / Coriolis</span></a>.</p>
|
||
</div>
|
||
<div class="section" id="printing-snapshots">
|
||
<h3>Printing & Snapshots<a class="headerlink" href="#printing-snapshots" title="Permalink to this headline">¶</a></h3>
|
||
<p>Printing or saving into a <span class="sc">pdf</span> is fairly simple, just uses the <strong>File -> Print</strong>
|
||
menu or the <span class="fboxtt">CTRL+P</span> shortcut to open the dialog box.</p>
|
||
<p>The print functionality uses exactly the same rendering mechanism as for the
|
||
screen, beeing almost <em>WYSIWYG</em>. Thus, to obtain the best results it is advisable
|
||
to select the <code class="docutils literal"><span class="pre">Coriolis.Printer</span></code> look (in the <em>Controller</em>), which uses a
|
||
white background and much suited for high resolutions <code class="docutils literal"><span class="pre">32x32</span></code> pixels patterns</p>
|
||
<p>There is also two mode of printing selectable through the <em>Controller</em>
|
||
<strong>Settings -> Misc -> Printer/Snapshot Mode</strong>:</p>
|
||
<table border="1" class="docutils">
|
||
<colgroup>
|
||
<col width="18%" />
|
||
<col width="20%" />
|
||
<col width="62%" />
|
||
</colgroup>
|
||
<tbody valign="top">
|
||
<tr class="row-odd"><td>Mode</td>
|
||
<td>DPI (approx.)</td>
|
||
<td>Intended Usage</td>
|
||
</tr>
|
||
<tr class="row-even"><td><strong>Cell Mode</strong></td>
|
||
<td>150</td>
|
||
<td>For single <code class="docutils literal"><span class="pre">Cell</span></code> printing or very small designs.
|
||
Patterns will be bigger and more readable.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><strong>Design Mode</strong></td>
|
||
<td>300</td>
|
||
<td>For designs (mostly commposed of wires and cells
|
||
outlines).</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last"><em>The pdf file size</em>
|
||
Be aware that the generated <span class="sc">pdf</span> files are indeed only pixmaps.
|
||
So they can grew very large if you select paper format above <code class="docutils literal"><span class="pre">A2</span></code>
|
||
or similar.</p>
|
||
</div>
|
||
<p> <span class="raw-html"><p class="noindent"></p></span>
|
||
Saving into an image is subject to the same remarks as for <span class="sc">pdf</span>.</p>
|
||
</div>
|
||
<div class="section" id="memento-of-shortcuts-in-graphic-mode">
|
||
<h3>Memento of Shortcuts in Graphic Mode<a class="headerlink" href="#memento-of-shortcuts-in-graphic-mode" title="Permalink to this headline">¶</a></h3>
|
||
<p>The main application binary is <span class="cb">cgt</span>.</p>
|
||
<table border="1" class="docutils">
|
||
<colgroup>
|
||
<col width="16%" />
|
||
<col width="20%" />
|
||
<col width="63%" />
|
||
</colgroup>
|
||
<thead valign="bottom">
|
||
<tr class="row-odd"><th class="head">Category</th>
|
||
<th class="head">Keys</th>
|
||
<th class="head">Action</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody valign="top">
|
||
<tr class="row-even"><td><strong>Moves</strong></td>
|
||
<td><div class="first last line-block">
|
||
<div class="line"><span class="fboxtt">Up</span>,
|
||
<span class="fboxtt">Down</span></div>
|
||
<div class="line"><span class="fboxtt">Left</span>,
|
||
<span class="fboxtt">Right</span></div>
|
||
</div>
|
||
</td>
|
||
<td>Shift the view in the according direction</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><strong>Fit</strong></td>
|
||
<td><span class="fboxtt">f</span></td>
|
||
<td>Fit to the Cell abutment box</td>
|
||
</tr>
|
||
<tr class="row-even"><td><strong>Refresh</strong></td>
|
||
<td><span class="fboxtt">CTRL+L</span></td>
|
||
<td>Triggers a complete display redraw</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><strong>Goto</strong></td>
|
||
<td><span class="fboxtt">g</span></td>
|
||
<td><em>apperture</em> is the minimum side of the area
|
||
displayed around the point to go to. It’s an
|
||
alternative way of setting the zoom level</td>
|
||
</tr>
|
||
<tr class="row-even"><td rowspan="2"><strong>Zoom</strong></td>
|
||
<td><span class="fboxtt">z</span>,
|
||
<span class="fboxtt">m</span></td>
|
||
<td>Respectively zoom by a 2 factor and <em>unzoom</em>
|
||
by a 2 factor</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><div class="first last line-block">
|
||
<div class="line"><a class="reference internal" href="../_images/ComputerMouse.png"><img alt="BigMouse" src="../_images/ComputerMouse.png" style="width: 33.75px; height: 33.75px;" /></a></div>
|
||
<div class="line">Area Zoom</div>
|
||
</div>
|
||
</td>
|
||
<td>You can perform a zoom to an area.
|
||
Define the zoom area by <em>holding down the left
|
||
mouse button</em> while moving the mouse.</td>
|
||
</tr>
|
||
<tr class="row-even"><td rowspan="3"><strong>Selection</strong></td>
|
||
<td><div class="first last line-block">
|
||
<div class="line"><a class="reference internal" href="../_images/ComputerMouse.png"><img alt="BigMouse" src="../_images/ComputerMouse.png" style="width: 33.75px; height: 33.75px;" /></a></div>
|
||
<div class="line">Area Selection</div>
|
||
</div>
|
||
</td>
|
||
<td>You can select displayed objects under an area.
|
||
Define the selection area by <em>holding down the
|
||
right mouse button</em> while moving the mouse.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><div class="first last line-block">
|
||
<div class="line"><a class="reference internal" href="../_images/ComputerMouse.png"><img alt="BigMouse" src="../_images/ComputerMouse.png" style="width: 33.75px; height: 33.75px;" /></a></div>
|
||
<div class="line">Toggle Selection</div>
|
||
</div>
|
||
</td>
|
||
<td>You can toggle the selection of one object under
|
||
the mouse position by pressing <span class="fboxtt">CTRL</span> and
|
||
pressing down <em>the right mouse button</em>. A popup
|
||
list of what’s under the position shows up into
|
||
which you can toggle the selection state of one
|
||
item.</td>
|
||
</tr>
|
||
<tr class="row-even"><td><span class="fboxtt">S</span></td>
|
||
<td>Toggle the selection visibility</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><strong>Controller</strong></td>
|
||
<td><span class="fboxtt">CTRL+I</span></td>
|
||
<td><p class="first">Show/hide the controller window.</p>
|
||
<p class="last">It’s the Swiss Army Knife of the viewer.
|
||
From it, you can fine-control the display and
|
||
inspect almost everything in your design.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td rowspan="2"><strong>Rulers</strong></td>
|
||
<td><span class="fboxtt">k</span>,
|
||
<span class="fboxtt">ESC</span></td>
|
||
<td>One stroke on <span class="fboxtt">k</span> enters the ruler mode, in
|
||
which you can draw one ruler. You can exit the
|
||
ruler mode by pressing <span class="fboxtt">ESC</span>. Once in ruler
|
||
mode, the first click on the <em>left mouse button</em>
|
||
sets the ruler’s starting point and the second
|
||
click the ruler’s end point. The second click
|
||
exits automatically the ruler mode.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><span class="fboxtt">K</span></td>
|
||
<td>Clears all the drawn rulers</td>
|
||
</tr>
|
||
<tr class="row-even"><td><strong>Print</strong></td>
|
||
<td><span class="fboxtt">CTRL+P</span></td>
|
||
<td>Currently rather crude. It’s a direct copy of
|
||
what’s displayed in pixels. So the resulting
|
||
picture will be a little blurred due to
|
||
anti-aliasing mechanism.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="3"><strong>Open/Close</strong></td>
|
||
<td><span class="fboxtt">CTRL+O</span></td>
|
||
<td>Opens a new design. The design name must be
|
||
given without path or extention.</td>
|
||
</tr>
|
||
<tr class="row-even"><td><span class="fboxtt">CTRL+W</span></td>
|
||
<td>Close the current viewer window, but do not quit
|
||
the application.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><span class="fboxtt">CTRL+Q</span></td>
|
||
<td><cite>CTRL+Q</cite> quit the application
|
||
(closing all windows).</td>
|
||
</tr>
|
||
<tr class="row-even"><td rowspan="2"><strong>Hierarchy</strong></td>
|
||
<td><span class="fboxtt">CTRL+Down</span></td>
|
||
<td>Go one hierarchy level down. That is, if there
|
||
is an <em>instance</em> under the cursor position, load
|
||
it’s <em>model</em> Cell in place of the current one.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><span class="fboxtt">CTRL+Up</span></td>
|
||
<td>Go one hierarchy level up. if we have entered
|
||
the current model through <span class="fboxtt">CTRL+Down</span>
|
||
reload the previous model (the one
|
||
in which this model is instanciated).</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="section" id="cgt-command-line-options">
|
||
<h3>Cgt Command Line Options<a class="headerlink" href="#cgt-command-line-options" title="Permalink to this headline">¶</a></h3>
|
||
<p>Appart from the obvious <code class="docutils literal"><span class="pre">--text</span></code> options, all can be used for text and graphical mode.</p>
|
||
<table border="1" class="docutils">
|
||
<colgroup>
|
||
<col width="38%" />
|
||
<col width="62%" />
|
||
</colgroup>
|
||
<thead valign="bottom">
|
||
<tr class="row-odd"><th class="head">Arguments</th>
|
||
<th class="head">Meaning</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody valign="top">
|
||
<tr class="row-even"><td><cite>-t|–text</cite></td>
|
||
<td>Instruct <span class="cb">cgt</span> to run in text mode.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><cite>-L|–log-mode</cite></td>
|
||
<td>Disable the uses of <span class="sc">ansi</span> escape sequence on
|
||
the <span class="cb">tty</span>. Useful when the output is
|
||
redirected to a file.</td>
|
||
</tr>
|
||
<tr class="row-even"><td><cite>-c <cell>|–cell=<cell></cite></td>
|
||
<td>The name of the design to load, without
|
||
leading path or extention.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><cite>-g|–load-global</cite></td>
|
||
<td>Reload a global routing solution from disk.
|
||
The file containing the solution must be named
|
||
<cite><cell>.kgr</cite>.</td>
|
||
</tr>
|
||
<tr class="row-even"><td><cite>–save-global</cite></td>
|
||
<td>Save the global routing solution, into a file
|
||
named <cite><design>.kgr</cite>.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><cite>-e <ratio>|–edge=<ratio></cite></td>
|
||
<td>Change the edge capacity for the global
|
||
router, between 0 and 1 (<span class="sc">Knik</span>).</td>
|
||
</tr>
|
||
<tr class="row-even"><td><cite>-G|–global-route</cite></td>
|
||
<td>Run the global router (<span class="sc">Knik</span>).</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><cite>-R|–detailed-route</cite></td>
|
||
<td>Run the detailed router (<span class="sc">Kite</span>).</td>
|
||
</tr>
|
||
<tr class="row-even"><td><cite>-s|–save-design=<routed></cite></td>
|
||
<td>The design into which the routed layout will
|
||
be saved. It is strongly recommanded to choose
|
||
a different name from the source (unrouted)
|
||
design.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><cite>–events-limit=<count></cite></td>
|
||
<td>The maximal number of events after which the
|
||
router will stops. This is mainly a failsafe
|
||
against looping. The limit is sets to 4
|
||
millions of iteration which should suffice to
|
||
any design of <cite>100K</cite>. gates. For bigger
|
||
designs you may wants to increase this limit.</td>
|
||
</tr>
|
||
<tr class="row-even"><td><cite>–stratus-script=<module></cite></td>
|
||
<td>Run the Python/Stratus script <code class="docutils literal"><span class="pre">module</span></code>.
|
||
See <a class="reference internal" href="#python-scripts-in-cgt">Python Scripts in Cgt</a>.</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p></p>
|
||
<p>Some Examples :</p>
|
||
<ul>
|
||
<li><p class="first">Run both global and detailed router, then save the routed design :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">></span> <span class="n">cgt</span> <span class="o">-</span><span class="n">v</span> <span class="o">-</span><span class="n">t</span> <span class="o">-</span><span class="n">G</span> <span class="o">-</span><span class="n">R</span> <span class="o">--</span><span class="n">cell</span><span class="o">=</span><span class="n">design</span> <span class="o">--</span><span class="n">save</span><span class="o">-</span><span class="n">design</span><span class="o">=</span><span class="n">design_kite</span>
|
||
</pre></div>
|
||
</div>
|
||
</li>
|
||
<li><p class="first">Load a previous global solution, run the detailed router, then save the
|
||
routed design :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">></span> <span class="n">cgt</span> <span class="o">-</span><span class="n">v</span> <span class="o">-</span><span class="n">t</span> <span class="o">--</span><span class="n">load</span><span class="o">-</span><span class="k">global</span> <span class="o">-</span><span class="n">R</span> <span class="o">--</span><span class="n">cell</span><span class="o">=</span><span class="n">design</span> <span class="o">--</span><span class="n">save</span><span class="o">-</span><span class="n">design</span><span class="o">=</span><span class="n">design_kite</span>
|
||
</pre></div>
|
||
</div>
|
||
</li>
|
||
<li><p class="first">Run the global router, then save the global routing solution :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">></span> <span class="n">cgt</span> <span class="o">-</span><span class="n">v</span> <span class="o">-</span><span class="n">t</span> <span class="o">-</span><span class="n">G</span> <span class="o">--</span><span class="n">save</span><span class="o">-</span><span class="k">global</span> <span class="o">--</span><span class="n">cell</span><span class="o">=</span><span class="n">design</span>
|
||
</pre></div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="miscellaneous-settings">
|
||
<h3>Miscellaneous Settings<a class="headerlink" href="#miscellaneous-settings" title="Permalink to this headline">¶</a></h3>
|
||
<table border="1" class="docutils">
|
||
<colgroup>
|
||
<col width="46%" />
|
||
<col width="21%" />
|
||
<col width="33%" />
|
||
</colgroup>
|
||
<thead valign="bottom">
|
||
<tr class="row-odd"><th class="head">Parameter Identifier</th>
|
||
<th class="head">Type</th>
|
||
<th class="head">Default</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody valign="top">
|
||
<tr class="row-even"><td colspan="3"><strong>Verbosity/Log Parameters</strong></td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">misc.info</span></code></td>
|
||
<td>TypeBool</td>
|
||
<td><span class="cb">False</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">Enable display of <em>info</em> level message
|
||
(<span class="cb">cinfo</span> stream)</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">misc.bug</span></code></td>
|
||
<td>TypeBool</td>
|
||
<td><span class="cb">False</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">Enable display of <em>bug</em> level message
|
||
(<span class="cb">cbug</span> stream), messages can be a little
|
||
scarry</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">misc.logMode</span></code></td>
|
||
<td>TypeBool</td>
|
||
<td><span class="cb">False</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">If enabled, assume that the output device
|
||
is not a <code class="docutils literal"><span class="pre">tty</span></code> and suppress any escaped
|
||
sequences</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">misc.verboseLevel1</span></code></td>
|
||
<td>TypeBool</td>
|
||
<td><span class="cb">True</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">First level of verbosity, disable level 2</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">misc.verboseLevel2</span></code></td>
|
||
<td>TypeBool</td>
|
||
<td><span class="cb">False</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">Second level of verbosity</td>
|
||
</tr>
|
||
<tr class="row-odd"><td colspan="3"><strong>Development/Debug Parameters</strong></td>
|
||
</tr>
|
||
<tr class="row-even"><td><code class="docutils literal"><span class="pre">misc.minTraceLevel</span></code></td>
|
||
<td>TypeInt</td>
|
||
<td><span class="cb">0</span></td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">misc.maxTraceLevel</span></code></td>
|
||
<td>TypeInt</td>
|
||
<td><span class="cb">0</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">Display trace information <em>between</em> those two
|
||
levels (<span class="cb">cdebug</span> stream)</td>
|
||
</tr>
|
||
<tr class="row-odd"><td rowspan="2"><code class="docutils literal"><span class="pre">misc.catchCore</span></code></td>
|
||
<td>TypeBool</td>
|
||
<td><span class="cb">False</span></td>
|
||
</tr>
|
||
<tr class="row-even"><td colspan="2">By default, <span class="cb">cgt</span> do not dump core.
|
||
To generate one set this flag to <span class="cb">True</span></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p></p>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="the-controller">
|
||
<span id="id2"></span><h2>The Controller<a class="headerlink" href="#the-controller" title="Permalink to this headline">¶</a></h2>
|
||
<p>The <em>Controller</em> window is composed of seven tabs:</p>
|
||
<ol class="arabic simple">
|
||
<li><a class="reference internal" href="#the-look-tab">The Look Tab</a> to select the display style.</li>
|
||
<li><a class="reference internal" href="#the-filter-tab">The Filter Tab</a> the hierarchical levels to be displayed, the look of
|
||
rubbers and the dimension units.</li>
|
||
<li><a class="reference internal" href="#the-layers-go-tab">The Layers&Go Tab</a> to selectively hide/display layers.</li>
|
||
<li><a class="reference internal" href="#the-netlist-tab">The Netlist Tab</a> to browse through the <em>netlist</em>. Works in association
|
||
with the <em>Selection</em> tab.</li>
|
||
<li><a class="reference internal" href="#the-selection-tab">The Selection Tab</a> allow to view all the currently selected elements.</li>
|
||
<li><a class="reference internal" href="#the-inspector-tab">The Inspector Tab</a> browse through either the DataBase, the Cell or
|
||
the current selection.</li>
|
||
<li><a class="reference internal" href="#the-settings-tab">The Settings Tab</a> access all the tool’s configuration settings.</li>
|
||
</ol>
|
||
<div class="section" id="the-look-tab">
|
||
<span id="id3"></span><h3>The Look Tab<a class="headerlink" href="#the-look-tab" title="Permalink to this headline">¶</a></h3>
|
||
<p>You can select how the layout will be displayed. There is a special one
|
||
<code class="docutils literal"><span class="pre">Printer.Coriolis</span></code> specifically designed for <a class="reference internal" href="#printing-snapshots">Printing & Snapshots</a>.
|
||
You should select it prior to calling the print or snapshot dialog boxes.</p>
|
||
<p> <a class="reference internal" href="../_images/Controller-Look-1.png"><img alt="Controller Look, Snapshot 1" class="align-middle" src="../_images/Controller-Look-1.png" style="width: 80%;" /></a> </p>
|
||
<p></p>
|
||
</div>
|
||
<div class="section" id="the-filter-tab">
|
||
<span id="id4"></span><h3>The Filter Tab<a class="headerlink" href="#the-filter-tab" title="Permalink to this headline">¶</a></h3>
|
||
<p>The filter tab let you select what hierarchical levels of your design will be
|
||
displayed. Hierarchy level are numbered top-down: the level 0 correspond to
|
||
the top-level cell, the level one to the instances of the top-level Cell and
|
||
so on.</p>
|
||
<p>There are also check boxes to enable/disable the processing of Terminal Cell,
|
||
Master Cells and Compnents. The processing of Terminal Cell (hierarchy leaf
|
||
cells) is disabled by default when you load a hierarchical design and enabled
|
||
when you load a single Cell.</p>
|
||
<p>You can choose what kind of form to give to the rubbers and the type of
|
||
unit used to display coordinates.</p>
|
||
<div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p><em>What are Rubbers:</em> <span class="sc">Hurricane</span> uses <em>Rubbers</em> to materialize
|
||
physical gaps in net topology. That is, if some wires are missing to
|
||
connect two or more parts of net, a <em>rubber</em> will be drawn between them
|
||
to signal the gap.</p>
|
||
<p class="last">For example, after the detailed routing no <em>rubbers</em> should remains.
|
||
They have been made <em>very</em> visibles as big violet lines...</p>
|
||
</div>
|
||
<p> <a class="reference internal" href="../_images/Controller-Filter-1.png"><img alt="Controller Basic Snapshot" class="align-middle" src="../_images/Controller-Filter-1.png" style="width: 80%;" /></a> </p>
|
||
<p></p>
|
||
</div>
|
||
<div class="section" id="the-layers-go-tab">
|
||
<span id="id5"></span><h3>The Layers&Go Tab<a class="headerlink" href="#the-layers-go-tab" title="Permalink to this headline">¶</a></h3>
|
||
<p>Control the individual display of all <em>layers</em> and <em>Gos</em>.</p>
|
||
<ul class="simple">
|
||
<li><em>Layers</em> correspond to a true physical layer. From a <span class="sc">Hurricane</span> point of
|
||
view they are all the <em>BasicLayers</em> (could be matched to GDSII).</li>
|
||
<li><em>Gos</em> stands from <em>Graphical Objects</em>, they are drawings that have no
|
||
physical existence but are added by the various tools to display extra
|
||
information. One good exemple is the density map of the detailed router,
|
||
to easily locate congested areas.</li>
|
||
</ul>
|
||
<p>For each layer/Go there are two check boxes:</p>
|
||
<ul class="simple">
|
||
<li>The normal one triggers the display.</li>
|
||
<li>The red-outlined allows objects of that layer to be selectable or not.</li>
|
||
</ul>
|
||
<p> <a class="reference internal" href="../_images/Controller-LayersGos-1.png"><img alt="Controller Basic Snapshot" class="align-middle" src="../_images/Controller-LayersGos-1.png" style="width: 80%;" /></a> </p>
|
||
</div>
|
||
<div class="section" id="the-netlist-tab">
|
||
<span id="id6"></span><h3>The Netlist Tab<a class="headerlink" href="#the-netlist-tab" title="Permalink to this headline">¶</a></h3>
|
||
<p>The <em>Netlist</em> tab shows the list of nets... By default the tab is not
|
||
<em>synched</em> with the displayed Cell. To see the nets you must check the
|
||
<strong>Sync Netlist</strong> checkbox. You can narrow the set of displayed nets by
|
||
using the filter pattern (supports regular expressions).</p>
|
||
<p>An very useful feature is to enable the <strong>Sync Selection</strong>, which will
|
||
automatically select all the components of the selected net(s). You can
|
||
select multiple nets. In the figure the net <code class="docutils literal"><span class="pre">auxsc35</span></code> is selected and
|
||
is highlited in the <em>Viewer</em>.</p>
|
||
<p> <a class="reference internal" href="../_images/Controller-Netlist-1.png"><img alt="Controller Basic Snapshot" class="align-middle" src="../_images/Controller-Netlist-1.png" style="width: 80%;" /></a>
|
||
<a class="reference internal" href="../_images/Viewer-Netlist-1.png"><img alt="Controller Basic Snapshot" class="align-middle" src="../_images/Viewer-Netlist-1.png" style="width: 80%;" /></a> </p>
|
||
</div>
|
||
<div class="section" id="the-selection-tab">
|
||
<span id="id7"></span><h3>The Selection Tab<a class="headerlink" href="#the-selection-tab" title="Permalink to this headline">¶</a></h3>
|
||
<p>The <em>Selection</em> tab list all the components currently selecteds. They
|
||
can be filtered thanks to the filter pattern.</p>
|
||
<p>Used in conjunction with the <em>Netlist</em> <strong>Sync Selection</strong> you will all see
|
||
all the components part of <em>net</em>.</p>
|
||
<p>In this list, you can toggle individually the selection of component by
|
||
pressing the <code class="docutils literal"><span class="pre">t</span></code> key. When unselected in this way a component is not
|
||
removed from the the selection list but instead displayed in red italic.
|
||
To see where a component is you may make it blink by repeatedly press
|
||
the <code class="docutils literal"><span class="pre">t</span></code> key...</p>
|
||
<p> <a class="reference internal" href="../_images/Controller-Selection-1.png"><img alt="Controller Basic Snapshot" class="align-middle" src="../_images/Controller-Selection-1.png" style="width: 80%;" /></a> </p>
|
||
</div>
|
||
<div class="section" id="the-inspector-tab">
|
||
<span id="id8"></span><h3>The Inspector Tab<a class="headerlink" href="#the-inspector-tab" title="Permalink to this headline">¶</a></h3>
|
||
<p>This tab is very useful, but mostly for <span class="sc">Coriolis</span> developpers. It allows
|
||
to browse through the live DataBase. The <em>Inspector</em> provide three entry points:</p>
|
||
<ul class="simple">
|
||
<li><strong>DataBase</strong>: Starts from the whole <span class="sc">Hurricane</span> DataBase.</li>
|
||
<li><strong>Cell</strong>: Inspect the currently loaded Cell.</li>
|
||
<li><strong>Selection</strong>: Inspect the object currently highlited in the <em>Selection</em> tab.</li>
|
||
</ul>
|
||
<p>Once an entry point has been activated, you may recursively expore all
|
||
it’s fields using the right/left arrows.</p>
|
||
<div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last"><em>Do not put your fingers in the socket:</em> when inspecting
|
||
anything, do not modify the DataBase. If any object under inspection
|
||
is deleted, you will crash the application...</p>
|
||
</div>
|
||
<div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last"><em>Implementation Detail:</em> the inspector support is done with
|
||
<code class="docutils literal"><span class="pre">Slot</span></code>, <code class="docutils literal"><span class="pre">Record</span></code> and <code class="docutils literal"><span class="pre">getString()</span></code>.</p>
|
||
</div>
|
||
<p> <a class="reference internal" href="../_images/Controller-Inspector-1.png"><img alt="Controller Basic Snapshot" class="align-middle" src="../_images/Controller-Inspector-1.png" style="width: 80%;" /></a>
|
||
<a class="reference internal" href="../_images/Controller-Inspector-2.png"><img alt="Controller Basic Snapshot" class="align-middle" src="../_images/Controller-Inspector-2.png" style="width: 80%;" /></a>
|
||
<a class="reference internal" href="../_images/Controller-Inspector-3.png"><img alt="Controller Basic Snapshot" class="align-middle" src="../_images/Controller-Inspector-3.png" style="width: 80%;" /></a> </p>
|
||
</div>
|
||
<div class="section" id="the-settings-tab">
|
||
<span id="id9"></span><h3>The Settings Tab<a class="headerlink" href="#the-settings-tab" title="Permalink to this headline">¶</a></h3>
|
||
<p>Here comes the description of the <em>Settings</em> tab.</p>
|
||
<p> <a class="reference internal" href="../_images/Controller-Settings-1.png"><img alt="Controller Basic Snapshot" class="align-middle" src="../_images/Controller-Settings-1.png" style="width: 80%;" /></a> </p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
<footer>
|
||
|
||
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||
|
||
<a href="ScriptsPlugins.html" class="btn btn-neutral float-right" title="Python Interface for Hurricane / Coriolis" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||
|
||
|
||
<a href="Configuration.html" class="btn btn-neutral" title="Coriolis Configuration & Initialisation" 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 May 14, 2018.
|
||
</small></td>
|
||
<td class="RFooter"></td>
|
||
</tr>
|
||
</table>
|
||
<table class="footer2">
|
||
<tr>
|
||
<td class="LFooter">Coriolis 2 Documentation</td>
|
||
<td class="RFooter"><small>
|
||
© Copyright 2000-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> |