3000 lines
247 KiB
HTML
3000 lines
247 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>Stratus User’s Guide — 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="Stratus : Netlist Capture Language" href="index.html"/>
|
||
<link rel="next" title="Stratus Developper’s Guide" href="Developper.html"/>
|
||
<link rel="prev" title="Stratus : Netlist Capture Language" href="index.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"><a class="reference internal" href="../UsersGuide/index.html">Coriolis User’s Guide</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="../UsersGuide/LicenseCredits.html">Credits & License</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../UsersGuide/Releases.html">Release Notes</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/Releases.html#release-1-0-1475">Release 1.0.1475</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/Releases.html#release-1-0-1963">Release 1.0.1963</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/Releases.html#release-1-0-2049">Release 1.0.2049</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/Releases.html#release-v2-0-1">Release v2.0.1</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/Releases.html#release-v2-1">Release v2.1</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/Releases.html#release-v2-2">Release v2.2</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/Releases.html#release-v2-3">Release v2.3</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/Releases.html#release-v2-4">Release v2.4</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../UsersGuide/DesignFlow.html">Complete Design Flow & Examples</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../UsersGuide/Installation.html">Installation</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/Installation.html#cross-dependencies-issues">Cross Dependencies Issues</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/Installation.html#fixed-directory-tree">Fixed Directory Tree</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/Installation.html#building-coriolis">Building Coriolis</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/Installation.html#the-actively-developed-branch">The actively developed branch</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/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="../UsersGuide/Installation.html#building-a-debug-enabled-version">Building a Debug Enabled Version</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/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="../UsersGuide/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="../UsersGuide/Installation.html#packaging-coriolis">Packaging Coriolis</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/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="../UsersGuide/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="../UsersGuide/Configuration.html">Coriolis Configuration & Initialisation</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/Configuration.html#general-software-architecture">General Software Architecture</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/Configuration.html#configuration-user-s-settings">Configuration & User’s Settings</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/Configuration.html#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="../UsersGuide/ViewerTools.html">CGT - The Graphical Interface</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/ViewerTools.html#viewer-tools">Viewer & Tools</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ViewerTools.html#stratus-netlist-capture"><span class="sc">Stratus</span> Netlist Capture</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/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="../UsersGuide/ViewerTools.html#synthetizing-and-loading-a-design">Synthetizing and loading a design</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ViewerTools.html#etesian-placer">Etesian – Placer</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ViewerTools.html#katana-global-router">Katana – Global Router</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ViewerTools.html#katana-detailed-router">Katana – Detailed Router</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ViewerTools.html#executing-python-scripts-in-cgt">Executing Python Scripts in Cgt</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ViewerTools.html#printing-snapshots">Printing & Snapshots</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/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="../UsersGuide/ViewerTools.html#cgt-command-line-options">Cgt Command Line Options</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ViewerTools.html#miscellaneous-settings">Miscellaneous Settings</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/ViewerTools.html#the-controller">The Controller</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ViewerTools.html#the-look-tab">The Look Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ViewerTools.html#the-filter-tab">The Filter Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ViewerTools.html#the-layers-go-tab">The Layers&Go Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ViewerTools.html#the-netlist-tab">The Netlist Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ViewerTools.html#the-selection-tab">The Selection Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ViewerTools.html#the-inspector-tab">The Inspector Tab</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ViewerTools.html#the-settings-tab">The Settings Tab</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../UsersGuide/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="../UsersGuide/ScriptsPlugins.html#plugins">Plugins</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ScriptsPlugins.html#chip-placement">Chip Placement</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ScriptsPlugins.html#clock-tree">Clock Tree</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="../UsersGuide/ScriptsPlugins.html#recursive-save-rsave">Recursive-Save (RSave)</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../UsersGuide/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’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 current"><a class="reference internal" href="index.html">Stratus : Netlist Capture Language</a><ul class="current">
|
||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Stratus User’s Guide</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#introduction">Introduction</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#stratus">Stratus</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#example">Example</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#description-of-a-netlist">Description of a netlist</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#nets">Nets</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#instances">Instances</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#generators">Generators</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#description-of-a-layout">Description of a layout</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#place">Place</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#placetop">PlaceTop</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#placebottom">PlaceBottom</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#placeright">PlaceRight</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#placeleft">PlaceLeft</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#setrefins">SetRefIns</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#defab">DefAb</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#resizeab">ResizeAb</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#patterns-generation-extension">Patterns generation extension</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#description-of-the-stimuli">Description of the stimuli</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#place-and-route">Place and Route</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#placesegment">PlaceSegment</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#placecontact">PlaceContact</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#placepin">PlacePin</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#placeref">PlaceRef</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#getrefxy">GetRefXY</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#copyupsegment">CopyUpSegment</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#placecentric">PlaceCentric</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#placeglu">PlaceGlu</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#fillcell">FillCell</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#pads">Pads</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#alimentation-rails">Alimentation rails</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#alimentation-connectors">Alimentation connectors</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#powerring">PowerRing</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#routeck">RouteCk</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#instanciation-facilities">Instanciation facilities</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#buffer">Buffer</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#multiplexor">Multiplexor</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#shifter">Shifter</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#register">Register</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#constants">Constants</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#boolean-operations">Boolean operations</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#arithmetical-operations">Arithmetical operations</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#comparison-operations">Comparison operations</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#virtual-library">Virtual library</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#useful-links">Useful links</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#dpgen-generators">DpGen generators</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#arithmetic-package-of-stratus">Arithmetic package of stratus</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#arithmetic-generators-and-some-stratus-packages">Arithmetic generators and some stratus packages</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#patterns-module">Patterns module</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="Developper.html">Stratus Developper’s Guide</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="Developper.html#class-model">Class Model</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#synopsys">Synopsys</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#description">Description</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#parameters">Parameters</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#attributes">Attributes</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#methods">Methods</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Developper.html#nets">Nets</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#id1">Synopsys</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#id2">Description</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#id3">Parameters</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#id4">Attributes</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#id5">Methods</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Developper.html#instances">Instances</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#id6">Synopsys</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#id7">Description</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#id8">Parameters</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#id9">Attributes</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Developper.html#id10">Methods</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="Patterns.html">Patterns module User’s Guide</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="Patterns.html#description">Description</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Patterns.html#syntax">Syntax</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="Patterns.html#declaration-part">Declaration part</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Patterns.html#description-part">Description part</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Patterns.html#methods">Methods</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="Patterns.html#patwrite">PatWrite</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Patterns.html#declar">declar</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Patterns.html#declar-interface">declar_interface</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Patterns.html#id2">declar</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Patterns.html#affect-int">affect_int</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Patterns.html#affect-fix">affect_fix</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Patterns.html#affect-any">affect_any</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Patterns.html#addpat">addpat</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Patterns.html#pattern-begin">pattern_begin</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="Patterns.html#pattern-end">pattern_end</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="Patterns.html#example">Example</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="DpGen.html">DpGen generators manual</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgeninv">DpgenInv</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenbuff">DpgenBuff</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgennand2">DpgenNand2</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgennand3">DpgenNand3</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgennand4">Dpgennand4</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenand2">DpgenAnd2</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenand3">DpgenAnd3</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenand4">DpgenAnd4</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgennor2">DpgenNor2</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgennor3">DpgenNor3</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgennor4">DpgenNor4</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenor2">DpgenOr2</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenor3">DpgenOr3</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenor4">DpgenOr4</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenxor2">DpgenXor2</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenxnor2">DpgenXnor2</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgennmux2">DpgenNmux2</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenmux2">DpgenMux2</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgennbuse">DpgenNbuse</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenbuse">DpgenBuse</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgennand2mask">DpgenNand2mask</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgennor2mask">DpgenNor2mask</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenxnor2mask">DpgenXnor2mask</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenadsb2f">DpgenAdsb2f</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenshift">DpgenShift</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenshrot">DpgenShrot</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgennul">DpgenNul</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenconst">DpgenConst</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenrom2">DpgenRom2</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenrom4">DpgenRom4</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenram">DpgenRam</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenrf1">DpgenRf1</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenrf1d">DpgenRf1d</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgenfifo">DpgenFifo</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgendff">DpgenDff</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgendfft">DpgenDfft</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="DpGen.html#dpgensff">DpgenSff</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="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 – 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="../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>
|
||
|
||
</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">Stratus : Netlist Capture Language</a> »</li>
|
||
|
||
<li>Stratus User’s Guide</li>
|
||
<li class="wy-breadcrumbs-aside">
|
||
|
||
|
||
|
||
</li>
|
||
</ul>
|
||
<hr/>
|
||
</div>
|
||
<div role="main" class="document">
|
||
|
||
<div class="section" id="stratus-user-s-guide">
|
||
<h1>Stratus User’s Guide<a class="headerlink" href="#stratus-user-s-guide" title="Permalink to this headline">¶</a></h1>
|
||
<p>Sophie Belloeil</p>
|
||
<div class="section" id="introduction">
|
||
<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
|
||
<div class="section" id="stratus">
|
||
<h3>Stratus<a class="headerlink" href="#stratus" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="name">
|
||
<h4>Name<a class="headerlink" href="#name" title="Permalink to this headline">¶</a></h4>
|
||
<p>Stratus – Procedural design language based upon <em>Python</em></p>
|
||
</div>
|
||
<div class="section" id="description">
|
||
<h4>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h4>
|
||
<p><em>Stratus</em> is a set of <em>Python</em> methods/functions dedicated to
|
||
procedural generation purposes. From a user point of view, <em>Stratus</em> is
|
||
a circuit’s description language that allows <em>Python</em> programming flow
|
||
control, variable use, and specialized functions in order to handle vlsi
|
||
objects.</p>
|
||
<p>Based upon the <em>Hurricane</em> data structures, the <em>Stratus</em> language gives
|
||
the user the ability to describe netlist and layout views.</p>
|
||
</div>
|
||
<div class="section" id="configuration">
|
||
<h4>Configuration<a class="headerlink" href="#configuration" title="Permalink to this headline">¶</a></h4>
|
||
<p>A configuration file can be used to direct the generation process of
|
||
Stratus. With this file, the user can choose the output format (vst,
|
||
vhdl...), the simulator (asimut, ghdl...), the standard cell library...
|
||
This configuration file named <code class="docutils literal"><span class="pre">.st_config.py</span></code> must be placed either in
|
||
the HOME directory or in the current directory. This file contains a set
|
||
of variables used in the process generation of Stratus, as for example :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="nb">format</span> <span class="o">=</span> <span class="s1">'vhdl'</span>
|
||
<span class="n">simulator</span> <span class="o">=</span> <span class="s1">'ghdl'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The default configuration of Stratus uses the Alliance CAD system, ie
|
||
<code class="docutils literal"><span class="pre">'vst'</span></code> as <code class="docutils literal"><span class="pre">format</span></code> and <code class="docutils literal"><span class="pre">'asimut'</span></code> as <code class="docutils literal"><span class="pre">simulator</span></code>.</p>
|
||
</div>
|
||
<div class="section" id="description-of-a-cell">
|
||
<h4>Description of a cell<a class="headerlink" href="#description-of-a-cell" title="Permalink to this headline">¶</a></h4>
|
||
<p>A cell is a hierachical structural description of a circuit in terms
|
||
of ports (I/Os), signals (nets) and instances.</p>
|
||
<p>The description of a cell is done by creating a new class, derivating
|
||
for class <code class="docutils literal"><span class="pre">Model</span></code>, with different methods :</p>
|
||
<ul class="simple">
|
||
<li>Method <code class="docutils literal"><span class="pre">Interface</span></code> : Description of the external ports of the cell
|
||
:<ul>
|
||
<li>SignalIn, SignalOut, ...</li>
|
||
</ul>
|
||
</li>
|
||
<li>Method <code class="docutils literal"><span class="pre">Netlist</span></code> : Description of the netlist of the cell :<ul>
|
||
<li>Inst, Signal</li>
|
||
</ul>
|
||
</li>
|
||
<li>Method <code class="docutils literal"><span class="pre">Layout</span></code> : Description of the layout of the cell :<ul>
|
||
<li>Place, PlaceTop, PlaceBottom, PlaceRight, PlaceLeft ...</li>
|
||
</ul>
|
||
</li>
|
||
<li>Method <code class="docutils literal"><span class="pre">Stimuli</span></code> : Description of the simulation stimuli of the
|
||
cell :<ul>
|
||
<li>affect, addd ...</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="creation-of-the-cell">
|
||
<h4>Creation of the cell<a class="headerlink" href="#creation-of-the-cell" title="Permalink to this headline">¶</a></h4>
|
||
<p>After the description of a cell as a sub-class of <code class="docutils literal"><span class="pre">Model</span></code>, the cell
|
||
has to be instantiated. The different methods described before have to
|
||
be called.</p>
|
||
<p>Then different methods are provided :</p>
|
||
<ul class="simple">
|
||
<li>Method <code class="docutils literal"><span class="pre">View</span></code> : Opens/Refreshes the editor in order to see the
|
||
created layout</li>
|
||
<li>Method <code class="docutils literal"><span class="pre">Save</span></code> : Saves the created cell in the desired format thanks
|
||
to the configuration file<ul>
|
||
<li>no argument : creation of a netlist file</li>
|
||
<li>PHYSICAL : creation of a netlist file AND a layout file</li>
|
||
<li>STRATUS : creation of a python/stratus file<ul>
|
||
<li>FileName : optionnal argument when using Save(STRATUS) in order
|
||
to choose the name of the file to be generated</li>
|
||
<li>Be careful : if one wants to create a stratus file AND a
|
||
netlist, always use Save(STRATUS) before Save() !</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>Method <code class="docutils literal"><span class="pre">Testbench</span></code> : Creates the testbench of the cell using the
|
||
<code class="docutils literal"><span class="pre">Stimuli</span></code> method to compute the stimuli. The output format depends
|
||
of the <code class="docutils literal"><span class="pre">format</span></code> variable given in the configuration file</li>
|
||
<li>Method <code class="docutils literal"><span class="pre">Simul</span></code> : Runs the simulation using the simulator named in
|
||
the configuration file</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="syntax">
|
||
<h4>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline">¶</a></h4>
|
||
<p>A <em>Stratus</em> file must have a .py extension and must begin as follow :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="ch">#!/usr/bin/env python</span>
|
||
|
||
<span class="kn">from</span> <span class="nn">stratus</span> <span class="k">import</span> <span class="o">*</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The description of a cell as a sub-class of <code class="docutils literal"><span class="pre">Model</span></code> is done as follow
|
||
:</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">myClass</span> <span class="p">(</span> <span class="n">Model</span> <span class="p">)</span> <span class="p">:</span>
|
||
<span class="o">...</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The creation of the cell is done by instantiating the previous class as
|
||
follow :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">exemple</span> <span class="o">=</span> <span class="n">myClass</span> <span class="p">(</span> <span class="n">name</span><span class="p">,</span> <span class="n">param</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>After the different methods can be called as follow :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">exemple</span><span class="o">.</span><span class="n">Interface</span><span class="p">()</span>
|
||
<span class="n">exemple</span><span class="o">.</span><span class="n">Netlist</span><span class="p">()</span>
|
||
<span class="n">exemple</span><span class="o">.</span><span class="n">Save</span><span class="p">()</span>
|
||
<span class="o">...</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>In order to execute a <em>Stratus</em> file (named <code class="docutils literal"><span class="pre">file</span></code> for example), one
|
||
has two choices :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="n">file</span><span class="o">.</span><span class="n">py</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Or :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">chmod</span> <span class="n">u</span><span class="o">+</span><span class="n">x</span> <span class="n">file</span><span class="o">.</span><span class="n">py</span>
|
||
<span class="o">./</span><span class="n">file</span><span class="o">.</span><span class="n">py</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The names used in <em>Stratus</em>, as arguments to <em>Stratus</em> functions,
|
||
should be alphanumerical, including the underscore. The arguments of
|
||
<em>Stratus</em> are case sensitive, so VDD is not equivalent to vdd.</p>
|
||
<div class="line-block">
|
||
<div class="line">Vectorized connectors or signal can be used using the [n:m] construct.</div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="syntax-highlighting">
|
||
<h4>Syntax highlighting<a class="headerlink" href="#syntax-highlighting" title="Permalink to this headline">¶</a></h4>
|
||
<p>When using vi, it’s possible to have the right syntax highlighting :</p>
|
||
<ul class="simple">
|
||
<li>Commands to do when you want to change once the coloration of your
|
||
file :</li>
|
||
</ul>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="p">:</span><span class="n">syntax</span> <span class="n">off</span>
|
||
<span class="p">:</span><span class="n">source</span> <span class="o">/</span><span class="n">asim</span><span class="o">/</span><span class="n">coriolis</span><span class="o">/</span><span class="n">share</span><span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">stratus</span><span class="o">.</span><span class="n">vim</span>
|
||
</pre></div>
|
||
</div>
|
||
<ul class="simple">
|
||
<li>Modification of your .vimrc in order to have the syntax highlighting
|
||
each time you open a file :</li>
|
||
</ul>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">syntax</span> <span class="n">off</span>
|
||
<span class="n">autocmd</span> <span class="n">BufRead</span><span class="p">,</span><span class="n">BufNewfile</span> <span class="o">*.</span><span class="n">py</span> <span class="n">so</span> <span class="o">/</span><span class="n">asim</span><span class="o">/</span><span class="n">coriolis</span><span class="o">/</span><span class="n">share</span><span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">stratus</span><span class="o">.</span><span class="n">vim</span>
|
||
<span class="n">syntax</span> <span class="n">on</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="example">
|
||
<h3>Example<a class="headerlink" href="#example" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="the-addaccu-circuit">
|
||
<h4>The addaccu circuit<a class="headerlink" href="#the-addaccu-circuit" title="Permalink to this headline">¶</a></h4>
|
||
<p><img alt="add1" src="../_images/add1.png" /></p>
|
||
</div>
|
||
<div class="section" id="the-data-path">
|
||
<h4>The data-path<a class="headerlink" href="#the-data-path" title="Permalink to this headline">¶</a></h4>
|
||
<p><img alt="add2" src="../_images/add2.png" /></p>
|
||
</div>
|
||
<div class="section" id="description-of-the-circuit-with-stratus-file-addaccu-py">
|
||
<h4>Description of the circuit with <em>Stratus</em> : file addaccu.py<a class="headerlink" href="#description-of-the-circuit-with-stratus-file-addaccu-py" title="Permalink to this headline">¶</a></h4>
|
||
<p><img alt="addaccu" src="../_images/addaccu.png" /></p>
|
||
</div>
|
||
<div class="section" id="creation-of-the-circuit-file-test-py">
|
||
<h4>Creation of the circuit : file test.py<a class="headerlink" href="#creation-of-the-circuit-file-test-py" title="Permalink to this headline">¶</a></h4>
|
||
<p><img alt="test" src="../_images/test.png" /></p>
|
||
</div>
|
||
<div class="section" id="how-to-execute-the-file">
|
||
<h4>How to execute the file<a class="headerlink" href="#how-to-execute-the-file" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="n">test</span><span class="o">.</span><span class="n">py</span> <span class="o">-</span><span class="n">n</span> <span class="mi">4</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>or :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">chmod</span> <span class="n">u</span><span class="o">+</span><span class="n">x</span> <span class="n">test</span><span class="o">.</span><span class="n">py</span>
|
||
<span class="o">./</span><span class="n">test</span> <span class="o">-</span><span class="n">n</span> <span class="mi">4</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="the-editor">
|
||
<h4>The editor<a class="headerlink" href="#the-editor" title="Permalink to this headline">¶</a></h4>
|
||
<p>The method <code class="docutils literal"><span class="pre">View</span></code> permits to open an editor in which one can see the
|
||
cell being created as shown in the picture below.</p>
|
||
<p><img alt="editor" src="../_images/editor.png" /></p>
|
||
</div>
|
||
<div class="section" id="function-param">
|
||
<h4>Function Param<a class="headerlink" href="#function-param" title="Permalink to this headline">¶</a></h4>
|
||
<p>This function allows the user to give parameters when creating a cell.
|
||
When one wants to give values to two parameters, one can type on the
|
||
shell :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="n">test</span><span class="o">.</span><span class="n">py</span> <span class="o">-</span><span class="n">n</span> <span class="mi">4</span> <span class="o">-</span><span class="n">w</span> <span class="mi">8</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The file <code class="docutils literal"><span class="pre">test.py</span></code> has then to contain :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">nbit</span><span class="p">,</span> <span class="n">nword</span> <span class="o">=</span> <span class="n">Param</span> <span class="p">(</span> <span class="s2">"n"</span><span class="p">,</span> <span class="s2">"w"</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The letters typed on the shell must be the ones given as parameters of
|
||
function <code class="docutils literal"><span class="pre">Param</span></code>.</p>
|
||
</div>
|
||
<div class="section" id="how-to-instanciate-your-generator-in-another-generator">
|
||
<h4>How to instanciate your generator in another generator<a class="headerlink" href="#how-to-instanciate-your-generator-in-another-generator" title="Permalink to this headline">¶</a></h4>
|
||
<p>One can create a generator and instantiate it in another generator.
|
||
To do that, the model name of the generator must have the form :
|
||
“file_name.class_name”.
|
||
Note that if the two generators are not in the same directory, the
|
||
directory of the generator to be instantiated has to be added in the
|
||
CRL_CATA_LIB environment variable.</p>
|
||
<p>For example, in order to instanciate the addaccu created above in a cell
|
||
:</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">n</span> <span class="o">=</span> <span class="mi">4</span>
|
||
<span class="n">Generate</span> <span class="p">(</span> <span class="s2">"addaccu.addaccu"</span><span class="p">,</span> <span class="s2">"my_addaccu_</span><span class="si">%d</span><span class="s2">bits"</span> <span class="o">%</span> <span class="n">n</span>
|
||
<span class="p">,</span> <span class="n">param</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">'nbit'</span> <span class="p">:</span> <span class="n">n</span> <span class="p">}</span> <span class="p">)</span>
|
||
|
||
<span class="n">Inst</span> <span class="p">(</span> <span class="s2">"my_addaccu_</span><span class="si">%d</span><span class="s2">bits"</span> <span class="o">%</span> <span class="n">n</span>
|
||
<span class="p">,</span> <span class="nb">map</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">'a'</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">netA</span>
|
||
<span class="p">,</span> <span class="s1">'b'</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">netB</span>
|
||
<span class="p">,</span> <span class="s1">'c'</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">netC</span>
|
||
<span class="p">,</span> <span class="s1">'v'</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">netV</span>
|
||
<span class="p">,</span> <span class="s1">'cmd'</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">netCmd</span>
|
||
<span class="p">,</span> <span class="s1">'cout'</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">netCout</span>
|
||
<span class="p">,</span> <span class="s1">'s'</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">netS</span>
|
||
<span class="p">,</span> <span class="s1">'vdd'</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">vdd</span>
|
||
<span class="p">,</span> <span class="s1">'vss'</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">vss</span>
|
||
<span class="p">}</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="description-of-a-netlist">
|
||
<h2>Description of a netlist<a class="headerlink" href="#description-of-a-netlist" title="Permalink to this headline">¶</a></h2>
|
||
<div class="section" id="nets">
|
||
<h3>Nets<a class="headerlink" href="#nets" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id1">
|
||
<h4>Name<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h4>
|
||
<p>SignalIn, SignalOut ... – Creation of nets</p>
|
||
</div>
|
||
<div class="section" id="synopsys">
|
||
<h4>Synopsys<a class="headerlink" href="#synopsys" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">netA</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"a"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id2">
|
||
<h4>Description<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h4>
|
||
<p>How to create and use nets.</p>
|
||
</div>
|
||
<div class="section" id="id3">
|
||
<h4>Nets<a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h4>
|
||
<p>Differents kind of nets are listed below :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">SignalIn</span></code> : Creation of an input port</li>
|
||
<li><code class="docutils literal"><span class="pre">SignalOut</span></code> : Creation of an output port</li>
|
||
<li><code class="docutils literal"><span class="pre">SignalInOut</span></code> : Creation of an inout port</li>
|
||
<li><code class="docutils literal"><span class="pre">SignalUnknown</span></code> : Creation of an input/output port which direction
|
||
is not defined</li>
|
||
<li><code class="docutils literal"><span class="pre">TriState</span></code> : Creation of a tristate port</li>
|
||
<li><code class="docutils literal"><span class="pre">CkIn</span></code> : Creation of a clock port</li>
|
||
<li><code class="docutils literal"><span class="pre">VddIn</span></code> : Creation of the vdd alimentation</li>
|
||
<li><code class="docutils literal"><span class="pre">VssIn</span></code> : Creation of the vss alimentation</li>
|
||
<li><code class="docutils literal"><span class="pre">Signal</span></code> : Creation of an internal net</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="parameters">
|
||
<h4>Parameters<a class="headerlink" href="#parameters" title="Permalink to this headline">¶</a></h4>
|
||
<p>All kind of constructors have the same parameters :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">name</span></code> : the name of the net (mandatory argument)</li>
|
||
<li><code class="docutils literal"><span class="pre">arity</span></code> : the arity of the net (mandatory argument)</li>
|
||
<li><code class="docutils literal"><span class="pre">indice</span></code> : for bit vectors only : the LSB bit (optional argument :
|
||
set to 0 by default)</li>
|
||
</ul>
|
||
<p>Only <code class="docutils literal"><span class="pre">CkIn</span></code>, <code class="docutils literal"><span class="pre">VddIn</span></code> and <code class="docutils literal"><span class="pre">VssIn</span></code> do not have the same parameters :
|
||
there is only the <code class="docutils literal"><span class="pre">name</span></code> parameter (they are 1 bit nets).</p>
|
||
</div>
|
||
<div class="section" id="functions-and-methods">
|
||
<h4>Functions and methods<a class="headerlink" href="#functions-and-methods" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some functions/methods are provided in order to handle nets :</p>
|
||
<ul>
|
||
<li><p class="first">function <code class="docutils literal"><span class="pre">Cat</span></code> : Concatenation of nets, beginning with the MSB</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Inst</span> <span class="p">(</span> <span class="s1">'DpgenInv'</span>
|
||
<span class="p">,</span> <span class="nb">map</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">'i0'</span> <span class="p">:</span> <span class="n">Cat</span> <span class="p">(</span> <span class="n">A</span><span class="p">,</span> <span class="n">B</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="s1">'nq'</span> <span class="p">:</span> <span class="n">S</span>
|
||
<span class="p">,</span> <span class="s1">'vdd'</span> <span class="p">:</span> <span class="n">vdd</span>
|
||
<span class="p">,</span> <span class="s1">'vss'</span> <span class="p">:</span> <span class="n">vss</span>
|
||
<span class="p">}</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Or :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">tab</span> <span class="o">=</span> <span class="p">[]</span>
|
||
<span class="n">tab</span><span class="o">.</span><span class="n">append</span> <span class="p">(</span> <span class="n">A</span> <span class="p">)</span>
|
||
<span class="n">tab</span><span class="o">.</span><span class="n">append</span> <span class="p">(</span> <span class="n">B</span> <span class="p">)</span>
|
||
|
||
<span class="n">Inst</span> <span class="p">(</span> <span class="s1">'DpgenInv'</span>
|
||
<span class="p">,</span> <span class="nb">map</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">'i0'</span> <span class="p">:</span> <span class="n">Cat</span> <span class="p">(</span> <span class="n">tab</span> <span class="p">)</span>
|
||
<span class="p">,</span> <span class="s1">'nq'</span> <span class="p">:</span> <span class="n">S</span>
|
||
<span class="p">,</span> <span class="s1">'vdd'</span> <span class="p">:</span> <span class="n">vdd</span>
|
||
<span class="p">,</span> <span class="s1">'vss'</span> <span class="p">:</span> <span class="n">vss</span>
|
||
<span class="p">}</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>If A and B are 2 bits nets, the net <code class="docutils literal"><span class="pre">myNet</span></code> will be such as :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">myNet</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">=</span> <span class="n">A</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
|
||
<span class="n">myNet</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">A</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||
<span class="n">myNet</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">B</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
|
||
<span class="n">myNet</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">B</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
</li>
|
||
<li><p class="first">function <code class="docutils literal"><span class="pre">Extend</span></code> : Creation of a net which is an extension of the
|
||
net which it is applied to</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">temp</span> <span class="o">=</span> <span class="n">Signal</span> <span class="p">(</span> <span class="s2">"temp"</span><span class="p">,</span> <span class="mi">5</span> <span class="p">)</span>
|
||
<span class="n">tempExt</span> <span class="o">=</span> <span class="n">Signal</span> <span class="p">(</span> <span class="s2">"temp_ext"</span><span class="p">,</span> <span class="mi">8</span> <span class="p">)</span>
|
||
|
||
<span class="n">tempExt</span> <span class="o"><=</span> <span class="n">temp</span><span class="o">.</span><span class="n">Extand</span> <span class="p">(</span> <span class="mi">8</span><span class="p">,</span> <span class="s1">'one'</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</li>
|
||
<li><p class="first">method <code class="docutils literal"><span class="pre">Alias</span></code> : Creation of an alias name for a net</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">cin</span><span class="o">.</span><span class="n">Alias</span> <span class="p">(</span> <span class="n">c_temp</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="p">)</span>
|
||
<span class="n">cout</span><span class="o">.</span><span class="n">Alias</span> <span class="p">(</span> <span class="n">c_temp</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span> <span class="p">)</span>
|
||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span> <span class="p">(</span> <span class="mi">4</span> <span class="p">)</span> <span class="p">:</span>
|
||
<span class="n">Inst</span> <span class="p">(</span> <span class="s2">"Fulladder"</span>
|
||
<span class="p">,</span> <span class="nb">map</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">'a'</span> <span class="p">:</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
||
<span class="p">,</span> <span class="s1">'b'</span> <span class="p">:</span> <span class="n">b</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
||
<span class="p">,</span> <span class="s1">'cin'</span> <span class="p">:</span> <span class="n">c_temp</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
||
<span class="p">,</span> <span class="s1">'sout'</span> <span class="p">:</span> <span class="n">sout</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
||
<span class="p">,</span> <span class="s1">'cout'</span> <span class="p">:</span> <span class="n">c_temp</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span>
|
||
<span class="p">,</span> <span class="s1">'vdd'</span> <span class="p">:</span> <span class="n">vdd</span>
|
||
<span class="p">,</span> <span class="s1">'vss'</span> <span class="p">:</span> <span class="n">vss</span>
|
||
<span class="p">}</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="errors">
|
||
<h4>Errors<a class="headerlink" href="#errors" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul>
|
||
<li><div class="first line-block">
|
||
<div class="line"><code class="docutils literal"><span class="pre">Error</span> <span class="pre">in</span> <span class="pre">SignalIn</span> <span class="pre">:</span></code></div>
|
||
<div class="line"><code class="docutils literal"><span class="pre">the</span> <span class="pre">lenght</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">net</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">a</span> <span class="pre">positive</span> <span class="pre">value.</span></code></div>
|
||
<div class="line">One can not create a net with a negative lenght.</div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="instances">
|
||
<h3>Instances<a class="headerlink" href="#instances" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id4">
|
||
<h4>Name<a class="headerlink" href="#id4" title="Permalink to this headline">¶</a></h4>
|
||
<p>Inst – Creation of instances</p>
|
||
</div>
|
||
<div class="section" id="id5">
|
||
<h4>Synopsys<a class="headerlink" href="#id5" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Inst</span> <span class="p">(</span> <span class="n">model</span>
|
||
<span class="p">,</span> <span class="n">name</span>
|
||
<span class="p">,</span> <span class="nb">map</span> <span class="o">=</span> <span class="n">connectmap</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id6">
|
||
<h4>Description<a class="headerlink" href="#id6" title="Permalink to this headline">¶</a></h4>
|
||
<p>Instantiation of an instance. The type of the instance is given by the
|
||
<code class="docutils literal"><span class="pre">model</span></code> parameter. The connexions are made thanks to the
|
||
<code class="docutils literal"><span class="pre">connectmap</span></code> parameters.</p>
|
||
</div>
|
||
<div class="section" id="id7">
|
||
<h4>Parameters<a class="headerlink" href="#id7" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">Model</span></code> : Name of the mastercell of the instance to create
|
||
(mandatory argument)</li>
|
||
<li><code class="docutils literal"><span class="pre">name</span></code> : Name of the instance (optional)
|
||
When this argument is not defined, the instance has a name created
|
||
by default. This argument is usefull when one wants to create a
|
||
layout as well. Indeed, the placement of the instances is much easier
|
||
when the conceptor has chosen himself the name f the
|
||
instances.</para></li>
|
||
<li><code class="docutils literal"><span class="pre">connectmap</span></code> : Connexions in order to make the netlist</li>
|
||
</ul>
|
||
<p><code class="docutils literal"><span class="pre">param</span></code> and <code class="docutils literal"><span class="pre">map</span></code> are dictionnaries as shown in the example below.</p>
|
||
</div>
|
||
<div class="section" id="id8">
|
||
<h4>Example<a class="headerlink" href="#id8" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Inst</span> <span class="p">(</span> <span class="s1">'a2_x2'</span>
|
||
<span class="p">,</span> <span class="nb">map</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">'i0'</span> <span class="p">:</span> <span class="n">in0</span>
|
||
<span class="p">,</span> <span class="s1">'i1'</span> <span class="p">:</span> <span class="n">in1</span>
|
||
<span class="p">,</span> <span class="s1">'q'</span> <span class="p">:</span> <span class="n">out</span>
|
||
<span class="p">,</span> <span class="s1">'vdd'</span> <span class="p">:</span> <span class="n">vdd</span>
|
||
<span class="p">,</span> <span class="s1">'vss'</span> <span class="p">:</span> <span class="n">vss</span>
|
||
<span class="p">}</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>You can see a concrete example at :</p>
|
||
</div>
|
||
<div class="section" id="id9">
|
||
<h4>Errors<a class="headerlink" href="#id9" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">Error</span> <span class="pre">in</span> <span class="pre">Inst</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">model</span> <span class="pre">Model</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist.</span></code>
|
||
<code class="docutils literal"><span class="pre">Check</span> <span class="pre">CRL_CATA_LIB.</span></code>
|
||
Either one has made a mistake in the name of the model, either the
|
||
environment variable is not correct.</li>
|
||
<li><code class="docutils literal"><span class="pre">Error</span> <span class="pre">in</span> <span class="pre">Inst</span> <span class="pre">:</span> <span class="pre">port</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span> <span class="pre">in</span> <span class="pre">model</span> <span class="pre">Model.</span></code>
|
||
One port in map is not correct.</li>
|
||
<li><code class="docutils literal"><span class="pre">Error</span> <span class="pre">in</span> <span class="pre">Inst</span> <span class="pre">:</span> <span class="pre">one</span> <span class="pre">input</span> <span class="pre">net</span> <span class="pre">is</span> <span class="pre">not</span> <span class="pre">dimensionned.</span></code>
|
||
The size of the output nets is automatically calculated bus the
|
||
input nets must be dimensionned before being connected.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="generators">
|
||
<h3>Generators<a class="headerlink" href="#generators" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id10">
|
||
<h4>Name<a class="headerlink" href="#id10" title="Permalink to this headline">¶</a></h4>
|
||
<p>Generate – Interface with the generators</p>
|
||
</div>
|
||
<div class="section" id="id11">
|
||
<h4>Synopsys<a class="headerlink" href="#id11" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Generate</span> <span class="p">(</span> <span class="n">model</span><span class="p">,</span> <span class="n">modelname</span><span class="p">,</span> <span class="n">param</span> <span class="o">=</span> <span class="nb">dict</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id12">
|
||
<h4>Description<a class="headerlink" href="#id12" title="Permalink to this headline">¶</a></h4>
|
||
<p>The <code class="docutils literal"><span class="pre">Generate</span></code> function call is the generic interface to all
|
||
generators.</p>
|
||
</div>
|
||
<div class="section" id="arguments">
|
||
<h4>Arguments<a class="headerlink" href="#arguments" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">model</span></code> : Specifies which generator is to be invoked<ul>
|
||
<li>If the generator belongs to the Dpgen library provided by Stratus,
|
||
the model name of the generator is simply the name of the class of
|
||
the generator.</li>
|
||
<li>If the generator is created by the user, the model name of the
|
||
generator must have the form : “file_name.class_name”. (Note
|
||
that if the the generator is not in the working directory, the
|
||
directory of the generator to be instantiated has to be added in
|
||
the CRL_CATA_LIB environment variable)</li>
|
||
</ul>
|
||
</li>
|
||
<li><code class="docutils literal"><span class="pre">modelname</span></code> : Specifies the name of the model to be generated</li>
|
||
<li><code class="docutils literal"><span class="pre">dict</span></code> : Specifies the parameters of the generator</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id13">
|
||
<h4>Parameters<a class="headerlink" href="#id13" title="Permalink to this headline">¶</a></h4>
|
||
<p>Every generator has it’s own parameters. They must be described in the
|
||
map <code class="docutils literal"><span class="pre">dict</span></code>.
|
||
Every generator provides a netlist view. Two other views can be
|
||
generated, if they are provided by the generator. Two parameters have to
|
||
be given, in order to choose those views :</p>
|
||
<ul class="simple">
|
||
<li>’physical’ : True/False, generation of the physical view (optionnal,
|
||
False by default)</li>
|
||
<li>’behavioral’ : True/False, generation of the behavioral view
|
||
(optionnal, False by default)</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id14">
|
||
<h4>Errors<a class="headerlink" href="#id14" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Generate</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">model</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">described</span> <span class="pre">in</span> <span class="pre">a</span> <span class="pre">string.</span></code></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="description-of-a-layout">
|
||
<h2>Description of a layout<a class="headerlink" href="#description-of-a-layout" title="Permalink to this headline">¶</a></h2>
|
||
<div class="section" id="place">
|
||
<h3>Place<a class="headerlink" href="#place" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id15">
|
||
<h4>Name<a class="headerlink" href="#id15" title="Permalink to this headline">¶</a></h4>
|
||
<p>Place – Places an instance</p>
|
||
</div>
|
||
<div class="section" id="id16">
|
||
<h4>Synopsys<a class="headerlink" href="#id16" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Place</span> <span class="p">(</span> <span class="n">ins</span><span class="p">,</span> <span class="n">sym</span><span class="p">,</span> <span class="n">point</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id17">
|
||
<h4>Description<a class="headerlink" href="#id17" title="Permalink to this headline">¶</a></h4>
|
||
<p>Placement of an instance.
|
||
The instance has to be instantiated in the method <code class="docutils literal"><span class="pre">Netlist</span></code>, in
|
||
order to use the <code class="docutils literal"><span class="pre">Place</span></code> function.</p>
|
||
</div>
|
||
<div class="section" id="id18">
|
||
<h4>Parameters<a class="headerlink" href="#id18" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">ins</span></code> : Instance to place.</li>
|
||
<li><code class="docutils literal"><span class="pre">sym</span></code> : Geometrical operation to be performed on the instance
|
||
before beeing placed.
|
||
The <code class="docutils literal"><span class="pre">sym</span></code> argument can take eight legal values :<ul>
|
||
<li><code class="docutils literal"><span class="pre">NOSYM</span></code> : no geometrical operation is performed</li>
|
||
<li><code class="docutils literal"><span class="pre">SYM_Y</span></code> : Y becomes -Y, that means toward X axe symetry</li>
|
||
<li><code class="docutils literal"><span class="pre">SYM_X</span></code> : X becomes -X, that means toward Y axe symetry</li>
|
||
<li><code class="docutils literal"><span class="pre">SYMXY</span></code> : X becomes -X, Y becomes -Y</li>
|
||
<li><code class="docutils literal"><span class="pre">ROT_P</span></code> : a positive 90 degrees rotation takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">ROT_M</span></code> : a negative 90 degrees rotation takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">SY_RP</span></code> : Y becomes -Y, and then a positive 90 degrees rotation
|
||
takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">SY_RM</span></code> : Y becomes -Y, and then a negative 90 degrees rotation
|
||
takes place</li>
|
||
</ul>
|
||
</li>
|
||
<li><code class="docutils literal"><span class="pre">point</span></code> : coordinates of the lower left corner of the abutment box
|
||
of the instance in the current figure.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id19">
|
||
<h4>Example<a class="headerlink" href="#id19" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Place</span> <span class="p">(</span> <span class="n">myInst</span><span class="p">,</span> <span class="n">NOSYM</span><span class="p">,</span> <span class="n">XY</span> <span class="p">(</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span> <span class="p">)</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id20">
|
||
<h4>Errors<a class="headerlink" href="#id20" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul>
|
||
<li><div class="first line-block">
|
||
<div class="line"><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">instance</span> <span class="pre">doesn't</span> <span class="pre">exist.</span></code></div>
|
||
<div class="line">The instance must be instanciated in order to be placed.</div>
|
||
</div>
|
||
</li>
|
||
<li><p class="first"><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">first</span> <span class="pre">argument</span> <span class="pre">is</span> <span class="pre">not</span> <span class="pre">an</span> <span class="pre">instance.</span></code></p>
|
||
</li>
|
||
<li><div class="first line-block">
|
||
<div class="line"><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">instance</span> <span class="pre">is</span> <span class="pre">already</span> <span class="pre">placed.</span></code></div>
|
||
<div class="line">One can not place an instance twice</div>
|
||
</div>
|
||
</li>
|
||
<li><div class="first line-block">
|
||
<div class="line"><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Place</span> <span class="pre">:</span> <span class="pre">wrong</span> <span class="pre">argument</span> <span class="pre">for</span> <span class="pre">placement</span> <span class="pre">type.</span></code></div>
|
||
<div class="line">The symetry given as argument is not correct.</div>
|
||
</div>
|
||
</li>
|
||
<li><div class="first line-block">
|
||
<div class="line"><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Place</span> <span class="pre">:</span> <span class="pre">wrong</span> <span class="pre">argument</span> <span class="pre">for</span> <span class="pre">placement,</span></code></div>
|
||
<div class="line">`` the coordinates must be put in a XY object.``</div>
|
||
<div class="line">The coordinates are not descrobed the bood way.</div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="placetop">
|
||
<h3>PlaceTop<a class="headerlink" href="#placetop" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id21">
|
||
<h4>Name<a class="headerlink" href="#id21" title="Permalink to this headline">¶</a></h4>
|
||
<p>PlaceTop – Places an instance at the top of the “reference instance”</p>
|
||
</div>
|
||
<div class="section" id="id22">
|
||
<h4>Synopsys<a class="headerlink" href="#id22" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PlaceTop</span> <span class="p">(</span> <span class="n">ins</span><span class="p">,</span> <span class="n">sym</span><span class="p">,</span> <span class="n">offsetX</span><span class="p">,</span> <span class="n">offsetY</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id23">
|
||
<h4>Description<a class="headerlink" href="#id23" title="Permalink to this headline">¶</a></h4>
|
||
<p>Placement of an instance.
|
||
The instance has to be instantiated in the method <code class="docutils literal"><span class="pre">Netlist</span></code> in order
|
||
to use the <code class="docutils literal"><span class="pre">PlaceTop</span></code> function.</p>
|
||
<p>The bottom left corner of the abutment box of the instance is placed,
|
||
after beeing symetrized and/or rotated, toward the top left corner of
|
||
the abutment box of the “reference instance”. The newly placed instance
|
||
becomes the “reference instance”.</p>
|
||
</div>
|
||
<div class="section" id="id24">
|
||
<h4>Parameters<a class="headerlink" href="#id24" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">ins</span></code> : Instance to place.</li>
|
||
<li><code class="docutils literal"><span class="pre">sym</span></code> : Geometrical operation to be performed on the instance
|
||
before beeing placed.
|
||
The <code class="docutils literal"><span class="pre">sym</span></code> argument can take eight legal values :<ul>
|
||
<li><code class="docutils literal"><span class="pre">NOSYM</span></code> : no geometrical operation is performed</li>
|
||
<li><code class="docutils literal"><span class="pre">SYM_Y</span></code> : Y becomes -Y, that means toward X axe symetry</li>
|
||
<li><code class="docutils literal"><span class="pre">SYM_X</span></code> : X becomes -X, that means toward Y axe symetry</li>
|
||
<li><code class="docutils literal"><span class="pre">SYMXY</span></code> : X becomes -X, Y becomes -Y</li>
|
||
<li><code class="docutils literal"><span class="pre">ROT_P</span></code> : a positive 90 degrees rotation takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">ROT_M</span></code> : a negative 90 degrees rotation takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">SY_RP</span></code> : Y becomes -Y, and then a positive 90 degrees rotation
|
||
takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">SY_RM</span></code> : Y becomes -Y, and then a negative 90 degrees rotation
|
||
takes place</li>
|
||
</ul>
|
||
</li>
|
||
<li><code class="docutils literal"><span class="pre">offsetX</span></code> (optionnal) : An offset is put horizontally. The value
|
||
given as argument must be a multiple of PITCH</li>
|
||
<li><code class="docutils literal"><span class="pre">offsetY</span></code> (optionnal) : An offset is put vertically. The value
|
||
given as argument must be a multiple of SLICE</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id25">
|
||
<h4>Example<a class="headerlink" href="#id25" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Place</span> <span class="p">(</span> <span class="n">myInst1</span><span class="p">,</span> <span class="n">NOSYM</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span> <span class="p">)</span>
|
||
<span class="n">PlaceTop</span> <span class="p">(</span> <span class="n">myInst2</span><span class="p">,</span> <span class="n">SYM_Y</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id26">
|
||
<h4>Errors<a class="headerlink" href="#id26" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">instance</span> <span class="pre">doesn't</span> <span class="pre">exist.</span></code>
|
||
The instance must be instanciated in order to be placed.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">first</span> <span class="pre">argument</span> <span class="pre">is</span> <span class="pre">not</span> <span class="pre">an</span> <span class="pre">instance.</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">instance</span> <span class="pre">is</span> <span class="pre">already</span> <span class="pre">placed.</span></code>
|
||
One can not place an instance twice</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceTop</span> <span class="pre">:</span> <span class="pre">no</span> <span class="pre">previous</span> <span class="pre">instance.</span></code>
|
||
One can use <code class="docutils literal"><span class="pre">PlaceTop</span></code> only if a reference instance exist. Use a
|
||
<code class="docutils literal"><span class="pre">Place</span></code> call before.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceTop</span> <span class="pre">:</span> <span class="pre">wrong</span> <span class="pre">argument</span> <span class="pre">for</span> <span class="pre">placement</span> <span class="pre">type.</span></code>
|
||
The symetry given as argument is not correct.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="placebottom">
|
||
<h3>PlaceBottom<a class="headerlink" href="#placebottom" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id27">
|
||
<h4>Name<a class="headerlink" href="#id27" title="Permalink to this headline">¶</a></h4>
|
||
<p>PlaceBottom – Places an instance below the “reference instance”</p>
|
||
</div>
|
||
<div class="section" id="id28">
|
||
<h4>Synopsys<a class="headerlink" href="#id28" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PlaceBottom</span> <span class="p">(</span> <span class="n">ins</span><span class="p">,</span> <span class="n">sym</span><span class="p">,</span> <span class="n">offsetX</span><span class="p">,</span> <span class="n">offsetY</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id29">
|
||
<h4>Description<a class="headerlink" href="#id29" title="Permalink to this headline">¶</a></h4>
|
||
<p>Placement of an instance.
|
||
The instance has to be instantiated in the method <code class="docutils literal"><span class="pre">Netlist</span></code> in order
|
||
to use the <code class="docutils literal"><span class="pre">PlaceTop</span></code> function.</p>
|
||
<p>The top left corner of the abutment box of the instance is placed, after
|
||
beeing symetrized and/or rotated, toward the bottom left corner of the
|
||
abutment box of the “reference instance”. The newly placed instance
|
||
becomes the “reference instance”.</p>
|
||
</div>
|
||
<div class="section" id="id30">
|
||
<h4>Parameters<a class="headerlink" href="#id30" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">ins</span></code> : Instance to place.</li>
|
||
<li><code class="docutils literal"><span class="pre">sym</span></code> : Geometrical operation to be performed on the instance
|
||
before beeing placed.
|
||
The <code class="docutils literal"><span class="pre">sym</span></code> argument can take eight legal values :<ul>
|
||
<li><code class="docutils literal"><span class="pre">NOSYM</span></code> : no geometrical operation is performed</li>
|
||
<li><code class="docutils literal"><span class="pre">SYM_Y</span></code> : Y becomes -Y, that means toward X axe symetry</li>
|
||
<li><code class="docutils literal"><span class="pre">SYM_X</span></code> : X becomes -X, that means toward Y axe symetry</li>
|
||
<li><code class="docutils literal"><span class="pre">SYMXY</span></code> : X becomes -X, Y becomes -Y</li>
|
||
<li><code class="docutils literal"><span class="pre">ROT_P</span></code> : a positive 90 degrees rotation takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">ROT_M</span></code> : a negative 90 degrees rotation takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">SY_RP</span></code> : Y becomes -Y, and then a positive 90 degrees rotation
|
||
takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">SY_RM</span></code> : Y becomes -Y, and then a negative 90 degrees rotation
|
||
takes place</li>
|
||
</ul>
|
||
</li>
|
||
<li><code class="docutils literal"><span class="pre">offsetX</span></code> (optionnal) : An offset is put horizontally. The value
|
||
given as argument must be a multiple of PITCH</li>
|
||
<li><code class="docutils literal"><span class="pre">offsetY</span></code> (optionnal) : An offset is put vertically. The value
|
||
given as argument must be a multiple of SLICE</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id31">
|
||
<h4>Example<a class="headerlink" href="#id31" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Place</span> <span class="p">(</span> <span class="n">myInst1</span><span class="p">,</span> <span class="n">NOSYM</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span> <span class="p">)</span>
|
||
<span class="n">PlaceBottom</span> <span class="p">(</span> <span class="n">myInst2</span><span class="p">,</span> <span class="n">SYM_Y</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id32">
|
||
<h4>Errors<a class="headerlink" href="#id32" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">instance</span> <span class="pre">doesn't</span> <span class="pre">exist.</span></code>
|
||
The instance must be instanciated in order to be placed.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">first</span> <span class="pre">argument</span> <span class="pre">is</span> <span class="pre">not</span> <span class="pre">an</span> <span class="pre">instance.</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">instance</span> <span class="pre">is</span> <span class="pre">already</span> <span class="pre">placed.</span></code>
|
||
One can not place an instance twice</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceBottom</span> <span class="pre">:</span> <span class="pre">no</span> <span class="pre">previous</span> <span class="pre">instance.</span></code>
|
||
One can use <code class="docutils literal"><span class="pre">PlaceBottom</span></code> only if a reference instance exist. Use
|
||
a <code class="docutils literal"><span class="pre">Place</span></code> call before.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceBottom</span> <span class="pre">:</span> <span class="pre">wrong</span> <span class="pre">argument</span> <span class="pre">for</span> <span class="pre">placement</span> <span class="pre">type.</span></code>
|
||
The symetry given as argument is not correct.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="placeright">
|
||
<h3>PlaceRight<a class="headerlink" href="#placeright" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id33">
|
||
<h4>Name<a class="headerlink" href="#id33" title="Permalink to this headline">¶</a></h4>
|
||
<p>PlaceRight – Places an instance at the right of the “reference instance”</p>
|
||
</div>
|
||
<div class="section" id="id34">
|
||
<h4>Synopsys<a class="headerlink" href="#id34" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PlaceRight</span> <span class="p">(</span> <span class="n">ins</span><span class="p">,</span> <span class="n">sym</span><span class="p">,</span> <span class="n">offsetX</span><span class="p">,</span> <span class="n">offsetY</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id35">
|
||
<h4>Description<a class="headerlink" href="#id35" title="Permalink to this headline">¶</a></h4>
|
||
<p>Placement of an instance.
|
||
The instance has to be instantiated in the method <code class="docutils literal"><span class="pre">Netlist</span></code> in order
|
||
to use the <code class="docutils literal"><span class="pre">PlaceTop</span></code> function.</p>
|
||
<p>The bottom left corner of the abutment box of the instance is placed,
|
||
after beeing symetrized and/or rotated, toward the bottom right corner
|
||
of the abutment box of the “reference instance”. The newly placed
|
||
instance becomes the “reference instance”.</p>
|
||
</div>
|
||
<div class="section" id="id36">
|
||
<h4>Parameters<a class="headerlink" href="#id36" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">ins</span></code> : Instance to place.</li>
|
||
<li><code class="docutils literal"><span class="pre">sym</span></code> : Geometrical operation to be performed on the instance
|
||
before beeing placed.
|
||
The <code class="docutils literal"><span class="pre">sym</span></code> argument can take eight legal values :<ul>
|
||
<li><code class="docutils literal"><span class="pre">NOSYM</span></code> : no geometrical operation is performed</li>
|
||
<li><code class="docutils literal"><span class="pre">SYM_Y</span></code> : Y becomes -Y, that means toward X axe symetry</li>
|
||
<li><code class="docutils literal"><span class="pre">SYM_X</span></code> : X becomes -X, that means toward Y axe symetry</li>
|
||
<li><code class="docutils literal"><span class="pre">SYMXY</span></code> : X becomes -X, Y becomes -Y</li>
|
||
<li><code class="docutils literal"><span class="pre">ROT_P</span></code> : a positive 90 degrees rotation takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">ROT_M</span></code> : a negative 90 degrees rotation takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">SY_RP</span></code> : Y becomes -Y, and then a positive 90 degrees rotation
|
||
takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">SY_RM</span></code> : Y becomes -Y, and then a negative 90 degrees rotation
|
||
takes place</li>
|
||
</ul>
|
||
</li>
|
||
<li><code class="docutils literal"><span class="pre">offsetX</span></code> (optionnal) : An offset is put horizontally. The value
|
||
given as argument must be a multiple of PITCH</li>
|
||
<li><code class="docutils literal"><span class="pre">offsetY</span></code> (optionnal) : An offset is put vertically. The value
|
||
given as argument must be a multiple of SLICE</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id37">
|
||
<h4>Example<a class="headerlink" href="#id37" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Place</span> <span class="p">(</span> <span class="n">myInst1</span><span class="p">,</span> <span class="n">NOSYM</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span> <span class="p">)</span>
|
||
<span class="n">PlaceRight</span> <span class="p">(</span> <span class="n">myInst2</span><span class="p">,</span> <span class="n">NOSYM</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id38">
|
||
<h4>Errors<a class="headerlink" href="#id38" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">instance</span> <span class="pre">doesn't</span> <span class="pre">exist.</span></code>
|
||
The instance must be instanciated in order to be placed.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">first</span> <span class="pre">argument</span> <span class="pre">is</span> <span class="pre">not</span> <span class="pre">an</span> <span class="pre">instance.</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">instance</span> <span class="pre">is</span> <span class="pre">already</span> <span class="pre">placed.</span></code>
|
||
One can not place an instance twice</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceRight</span> <span class="pre">:</span> <span class="pre">no</span> <span class="pre">previous</span> <span class="pre">instance.</span></code>
|
||
One can use <code class="docutils literal"><span class="pre">PlaceRight</span></code> only if a reference instance exist. Use
|
||
a <code class="docutils literal"><span class="pre">Place</span></code> call before.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceRight</span> <span class="pre">:</span> <span class="pre">wrong</span> <span class="pre">argument</span> <span class="pre">for</span> <span class="pre">placement</span> <span class="pre">type.</span></code>
|
||
The symetry given as argument is not correct.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="placeleft">
|
||
<h3>PlaceLeft<a class="headerlink" href="#placeleft" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id39">
|
||
<h4>Name<a class="headerlink" href="#id39" title="Permalink to this headline">¶</a></h4>
|
||
<p>PlaceLeft – Places an instance at the left of the “reference instance”</p>
|
||
</div>
|
||
<div class="section" id="id40">
|
||
<h4>Synopsys<a class="headerlink" href="#id40" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PlaceLeft</span> <span class="p">(</span> <span class="n">ins</span><span class="p">,</span> <span class="n">sym</span><span class="p">,</span> <span class="n">offsetX</span><span class="p">,</span> <span class="n">offsetY</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id41">
|
||
<h4>Description<a class="headerlink" href="#id41" title="Permalink to this headline">¶</a></h4>
|
||
<p>Placement of an instance.
|
||
The instance has to be instantiated in the method <code class="docutils literal"><span class="pre">Netlist</span></code> in order
|
||
to use the <code class="docutils literal"><span class="pre">PlaceTop</span></code> function.</p>
|
||
<p>The bottom right corner of the abutment box of the instance is placed,
|
||
after beeing symetrized and/or rotated, toward the bottom left corner of
|
||
the abutment box of the “reference instance”. The newly placed instance
|
||
becomes the “reference instance”.</p>
|
||
</div>
|
||
<div class="section" id="id42">
|
||
<h4>Parameters<a class="headerlink" href="#id42" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">ins</span></code> : Instance to place.</li>
|
||
<li><code class="docutils literal"><span class="pre">sym</span></code> : Geometrical operation to be performed on the instance
|
||
before beeing placed.
|
||
The <code class="docutils literal"><span class="pre">sym</span></code> argument can take eight legal values :<ul>
|
||
<li><code class="docutils literal"><span class="pre">NOSYM</span></code> : no geometrical operation is performed</li>
|
||
<li><code class="docutils literal"><span class="pre">SYM_Y</span></code> : Y becomes -Y, that means toward X axe symetry</li>
|
||
<li><code class="docutils literal"><span class="pre">SYM_X</span></code> : X becomes -X, that means toward Y axe symetry</li>
|
||
<li><code class="docutils literal"><span class="pre">SYMXY</span></code> : X becomes -X, Y becomes -Y</li>
|
||
<li><code class="docutils literal"><span class="pre">ROT_P</span></code> : a positive 90 degrees rotation takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">ROT_M</span></code> : a negative 90 degrees rotation takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">SY_RP</span></code> : Y becomes -Y, and then a positive 90 degrees rotation
|
||
takes place</li>
|
||
<li><code class="docutils literal"><span class="pre">SY_RM</span></code> : Y becomes -Y, and then a negative 90 degrees rotation
|
||
takes place</li>
|
||
</ul>
|
||
</li>
|
||
<li><code class="docutils literal"><span class="pre">offsetX</span></code> (optionnal) : An offset is put horizontally. The value
|
||
given as argument must be a multiple of PITCH</li>
|
||
<li><code class="docutils literal"><span class="pre">offsetY</span></code> (optionnal) : An offset is put vertically. The value
|
||
given as argument must be a multiple of SLICE</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id43">
|
||
<h4>Example<a class="headerlink" href="#id43" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Place</span> <span class="p">(</span> <span class="n">myInst1</span><span class="p">,</span> <span class="n">NOSYM</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span> <span class="p">)</span>
|
||
<span class="n">PlaceLeft</span> <span class="p">(</span> <span class="n">myInst2</span><span class="p">,</span> <span class="n">NOSYM</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id44">
|
||
<h4>Errors<a class="headerlink" href="#id44" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">instance</span> <span class="pre">doesn't</span> <span class="pre">exist.</span></code>
|
||
The instance must be instanciated in order to be placed.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">first</span> <span class="pre">argument</span> <span class="pre">is</span> <span class="pre">not</span> <span class="pre">an</span> <span class="pre">instance.</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">instance</span> <span class="pre">is</span> <span class="pre">already</span> <span class="pre">placed.</span></code>
|
||
One can not place an instance twice</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceLeft</span> <span class="pre">:</span> <span class="pre">no</span> <span class="pre">previous</span> <span class="pre">instance.</span></code>
|
||
One can use <code class="docutils literal"><span class="pre">PlaceLeft</span></code> only if a reference instance exist. Use a
|
||
<code class="docutils literal"><span class="pre">Place</span></code> call before.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceLeft</span> <span class="pre">:</span> <span class="pre">wrong</span> <span class="pre">argument</span> <span class="pre">for</span> <span class="pre">placement</span> <span class="pre">type.</span></code>
|
||
The symetry given as argument is not correct.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="setrefins">
|
||
<h3>SetRefIns<a class="headerlink" href="#setrefins" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id45">
|
||
<h4>Name<a class="headerlink" href="#id45" title="Permalink to this headline">¶</a></h4>
|
||
<p>SetRefIns – Defines the new “reference instance” for placement</p>
|
||
</div>
|
||
<div class="section" id="id46">
|
||
<h4>Synopsys<a class="headerlink" href="#id46" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">SetRefIns</span> <span class="p">(</span> <span class="n">ins</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id47">
|
||
<h4>Description<a class="headerlink" href="#id47" title="Permalink to this headline">¶</a></h4>
|
||
<p>This function defines the new “reference instance”, used as starting
|
||
point in the relative placement functions.
|
||
It’s regarding the abutmentbox of the instance <code class="docutils literal"><span class="pre">ins</span></code> that the next
|
||
instance is going to be placed, if using the appropriate functions.</p>
|
||
<p>Note that the more recently placed instance becomes automaticaly the
|
||
“reference instance”, if SetRefIns isn’t called.</p>
|
||
</div>
|
||
<div class="section" id="id48">
|
||
<h4>Parameters<a class="headerlink" href="#id48" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">ins</span></code> : defines the new “reference instance”</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id49">
|
||
<h4>Example<a class="headerlink" href="#id49" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Place</span> <span class="p">(</span> <span class="n">myInst1</span><span class="p">,</span> <span class="n">NOSYM</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span> <span class="p">)</span>
|
||
<span class="n">PlaceRight</span> <span class="p">(</span> <span class="n">myInst2</span><span class="p">,</span> <span class="n">NOSYM</span> <span class="p">)</span>
|
||
|
||
<span class="n">SetRefIns</span> <span class="p">(</span> <span class="n">myInst1</span> <span class="p">)</span>
|
||
<span class="n">PlaceTop</span> <span class="p">(</span> <span class="n">myInst3</span><span class="p">,</span> <span class="n">SYM_Y</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal"><span class="pre">myInst3</span></code> is on top of <code class="docutils literal"><span class="pre">myInst1</span></code> instead of <code class="docutils literal"><span class="pre">myInst2</span></code>.</p>
|
||
</div>
|
||
<div class="section" id="id50">
|
||
<h4>Errors<a class="headerlink" href="#id50" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">SetRefIns</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">instance</span> <span class="pre">doesn't</span> <span class="pre">exist.</span></code>
|
||
If the instance has not been instanciated, it is impossible do to
|
||
any placement from it.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">SetRefIns</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">instance</span> <span class="pre">...is</span> <span class="pre">not</span> <span class="pre">placed.</span></code>
|
||
If the instance has not been placed, it is impossible do to any
|
||
placement from it.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="defab">
|
||
<h3>DefAb<a class="headerlink" href="#defab" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id51">
|
||
<h4>Name<a class="headerlink" href="#id51" title="Permalink to this headline">¶</a></h4>
|
||
<p>DefAb – Creates the abutment box of the current cell</p>
|
||
</div>
|
||
<div class="section" id="id52">
|
||
<h4>Synopsys<a class="headerlink" href="#id52" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">DefAb</span> <span class="p">(</span> <span class="n">point1</span><span class="p">,</span> <span class="n">point2</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id53">
|
||
<h4>Description<a class="headerlink" href="#id53" title="Permalink to this headline">¶</a></h4>
|
||
<p>This function creates the abutment box of the current cell.</p>
|
||
<p>Note that one does not have to call this function before saving in order
|
||
to create the abutment box. The abutment box is created nevertheless
|
||
(given to placed instances). This function is usefull if one wants to
|
||
create an abutment before placing the instances.</p>
|
||
</div>
|
||
<div class="section" id="id54">
|
||
<h4>Parameters<a class="headerlink" href="#id54" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">point1</span></code> : coordinates of the bottom left corner of the created
|
||
abutment box.</li>
|
||
<li><code class="docutils literal"><span class="pre">point2</span></code> : coordinates of the top right corner of the created
|
||
abutment box.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id55">
|
||
<h4>Example<a class="headerlink" href="#id55" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">DefAb</span> <span class="p">(</span> <span class="n">XY</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">XY</span><span class="p">(</span><span class="mi">500</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span> <span class="p">)</span>
|
||
|
||
<span class="n">Place</span> <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">inst</span><span class="p">,</span> <span class="n">NOSYM</span><span class="p">,</span> <span class="n">XY</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id56">
|
||
<h4>Errors<a class="headerlink" href="#id56" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">DefAb</span> <span class="pre">:</span> <span class="pre">an</span> <span class="pre">abutment</span> <span class="pre">box</span> <span class="pre">already</span> <span class="pre">exists.</span></code>
|
||
`` Maybe you should use ResizeAb function.``
|
||
One has called DefAb but the current cell already has an abutment
|
||
box.
|
||
In order to modify the current abutment box, the function to call
|
||
is ResizeAb.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">DefAb</span> <span class="pre">:</span> <span class="pre">wrong</span> <span class="pre">argument,</span></code>
|
||
`` the coordinates must be put in a XY object.``
|
||
The type of one of the arguments is not correct. Coordinates must
|
||
be put in a <code class="docutils literal"><span class="pre">XY</span></code> object.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">DefAb</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">Coordinates</span> <span class="pre">of</span> <span class="pre">an</span> <span class="pre">abutment</span> <span class="pre">Box</span> <span class="pre">in</span> <span class="pre">y</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">multiple</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">slice.</span></code>
|
||
<code class="docutils literal"><span class="pre">Coordinates</span> <span class="pre">of</span> <span class="pre">an</span> <span class="pre">abutment</span> <span class="pre">Box</span> <span class="pre">in</span> <span class="pre">x</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">multiple</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">pitch.</span></code>
|
||
One has called DefAb with non authorized values.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="resizeab">
|
||
<h3>ResizeAb<a class="headerlink" href="#resizeab" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id57">
|
||
<h4>Name<a class="headerlink" href="#id57" title="Permalink to this headline">¶</a></h4>
|
||
<p>ResizeAb – Modifies the abutment box of the current cell</p>
|
||
</div>
|
||
<div class="section" id="id58">
|
||
<h4>Synopsys<a class="headerlink" href="#id58" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">ResizeAb</span> <span class="p">(</span> <span class="n">dx1</span><span class="p">,</span> <span class="n">dy1</span><span class="p">,</span> <span class="n">dx2</span><span class="p">,</span> <span class="n">dy2</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id59">
|
||
<h4>Description<a class="headerlink" href="#id59" title="Permalink to this headline">¶</a></h4>
|
||
<p>This function modifies the abutment box of the current cell.
|
||
The coordinates of the abutment box are the coordinates of the envelop
|
||
of the abutment boxes of each instance plus the delta values given as
|
||
argument.</p>
|
||
<p>Note that one can not call this function in order to create the abutment
|
||
box. This fonction only modifies the already created abutment box.</p>
|
||
</div>
|
||
<div class="section" id="id60">
|
||
<h4>Parameters<a class="headerlink" href="#id60" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">(dx1,</span> <span class="pre">dy1)</span></code> : Values to be substracted to the lower left corner of
|
||
the previous abutment box.</li>
|
||
<li><code class="docutils literal"><span class="pre">(dx2,</span> <span class="pre">dy2)</span></code> : Values to be added to the upper right corner of the
|
||
previous abutment box.</li>
|
||
</ul>
|
||
<p>The Values are used as follow :</p>
|
||
<p><img alt="resize" src="../_images/resizeAb.png" /></p>
|
||
</div>
|
||
<div class="section" id="id61">
|
||
<h4>Example<a class="headerlink" href="#id61" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">%</span> <span class="n">Expansion</span> <span class="n">of</span> <span class="n">the</span> <span class="n">abutment</span> <span class="n">box</span> <span class="n">at</span> <span class="n">the</span> <span class="n">top</span> <span class="ow">and</span> <span class="n">the</span> <span class="n">bottom</span>
|
||
<span class="n">ResizeAb</span> <span class="p">(</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">100</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id62">
|
||
<h4>Errors<a class="headerlink" href="#id62" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li>`` [Stratus ERROR] ResizeAb :``
|
||
<code class="docutils literal"><span class="pre">Coordinates</span> <span class="pre">of</span> <span class="pre">an</span> <span class="pre">abutment</span> <span class="pre">Box</span> <span class="pre">in</span> <span class="pre">y</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">multiple</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">slice.</span></code>
|
||
<code class="docutils literal"><span class="pre">Coordinates</span> <span class="pre">of</span> <span class="pre">an</span> <span class="pre">abutment</span> <span class="pre">Box</span> <span class="pre">in</span> <span class="pre">x</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">multiple</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">pitch.</span></code>
|
||
One has called ResizeAb with non authorized values</li>
|
||
<li>`` [Stratus ERROR] ResizeAb :``
|
||
<code class="docutils literal"><span class="pre">one</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">values</span> <span class="pre">of</span> <span class="pre">dx1</span> <span class="pre">or</span> <span class="pre">dx2</span> <span class="pre">(dy1</span> <span class="pre">or</span> <span class="pre">dy2)</span>  <span class="pre">is</span> <span class="pre">incompatible</span> <span class="pre">with</span></code>
|
||
<code class="docutils literal"><span class="pre">the</span> <span class="pre">size</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">abutment</span> <span class="pre">box.</span></code>
|
||
<code class="docutils literal"><span class="pre">Coordinates</span> <span class="pre">of</span> <span class="pre">an</span> <span class="pre">abutment</span> <span class="pre">Box</span> <span class="pre">in</span> <span class="pre">x</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">multiple</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">pitch.</span></code>
|
||
One has called ResizeAb with a value which deteriorates the
|
||
abtument box</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="patterns-generation-extension">
|
||
<h2>Patterns generation extension<a class="headerlink" href="#patterns-generation-extension" title="Permalink to this headline">¶</a></h2>
|
||
<div class="section" id="description-of-the-stimuli">
|
||
<h3>Description of the stimuli<a class="headerlink" href="#description-of-the-stimuli" title="Permalink to this headline">¶</a></h3>
|
||
<p>The stimuli used for the simulation are described in a <code class="docutils literal"><span class="pre">Stimuli</span></code>
|
||
method. This method is a Python function generator that is automatically
|
||
called by the <code class="docutils literal"><span class="pre">Testbench</span></code> method to generate all the stimuli. As a
|
||
Python function generator, the <code class="docutils literal"><span class="pre">yield</span></code> instruction have to be used at
|
||
the end of each stimuli computation.</p>
|
||
<div class="section" id="affect-value-to-signals">
|
||
<h4>Affect value to signals<a class="headerlink" href="#affect-value-to-signals" title="Permalink to this headline">¶</a></h4>
|
||
<p>The method <code class="docutils literal"><span class="pre">affect</span></code> permits to affect a value to a given signal as
|
||
follow</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="bp">self</span><span class="o">.</span><span class="n">_stim</span><span class="o">.</span><span class="n">affect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">Ck</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="add-stimuli">
|
||
<h4>Add stimuli<a class="headerlink" href="#add-stimuli" title="Permalink to this headline">¶</a></h4>
|
||
<p>The method <code class="docutils literal"><span class="pre">add</span></code> permits to finish a step of simulation by add all the
|
||
values to the current stimuli</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="bp">self</span><span class="o">.</span><span class="n">_stim</span><span class="o">.</span><span class="n">add</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="place-and-route">
|
||
<h2>Place and Route<a class="headerlink" href="#place-and-route" title="Permalink to this headline">¶</a></h2>
|
||
<div class="section" id="placesegment">
|
||
<h3>PlaceSegment<a class="headerlink" href="#placesegment" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id63">
|
||
<h4>Name<a class="headerlink" href="#id63" title="Permalink to this headline">¶</a></h4>
|
||
<p>PlaceSegment – Places a segment</p>
|
||
</div>
|
||
<div class="section" id="id64">
|
||
<h4>Synopsys<a class="headerlink" href="#id64" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PlaceSegment</span> <span class="p">(</span> <span class="n">net</span><span class="p">,</span> <span class="n">layer</span><span class="p">,</span> <span class="n">point1</span><span class="p">,</span> <span class="n">point2</span><span class="p">,</span> <span class="n">width</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id65">
|
||
<h4>Description<a class="headerlink" href="#id65" title="Permalink to this headline">¶</a></h4>
|
||
<p>Placement of a segment.
|
||
The segment is created between <code class="docutils literal"><span class="pre">point1</span></code> and <code class="docutils literal"><span class="pre">point2</span></code> on the layer
|
||
<code class="docutils literal"><span class="pre">layer</span></code> and with width <code class="docutils literal"><span class="pre">width</span></code>. It belongs to the net <code class="docutils literal"><span class="pre">net</span></code>.
|
||
Note that the segment must be horizontal or vertival.</p>
|
||
</div>
|
||
<div class="section" id="id66">
|
||
<h4>Parameters<a class="headerlink" href="#id66" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">net</span></code> : Net which the segment belongs to</li>
|
||
<li><code class="docutils literal"><span class="pre">layer</span></code> : Layer of the segment.
|
||
The <code class="docutils literal"><span class="pre">layer</span></code> argument is a string wich can take different values,
|
||
thanks to the technology (file described in HUR_TECHNO_NAME)<ul>
|
||
<li>NWELL, PWELL, ptie, ntie, pdif, ndif, ntrans, ptrans, poly, ALU1,
|
||
ALU2, ALU3, ALU4, ALU5, ALU6, VIA1, VIA2, VIA3, VIA4, VIA5, TEXT,
|
||
UNDEF, SPL1, TALU1, TALU2, TALU3, TALU4, TALU5, TALU6, POLY, NTIE,
|
||
PTIE, NDIF, PDIF, PTRANS, NTRANS, CALU1, CALU2, CALU3, CALU4,
|
||
CALU5, CALU6, CONT_POLY, CONT_DIF_N, CONT_DIF_P,
|
||
CONT_BODY_N, CONT_BODY_P, via12, via23, via34, via45, via56,
|
||
via24, via25, via26, via35, via36, via46, CONT_TURN1,
|
||
CONT_TURN2, CONT_TURN3, CONT_TURN4, CONT_TURN5, CONT_TURN6</li>
|
||
</ul>
|
||
</li>
|
||
<li><code class="docutils literal"><span class="pre">point1</span></code>, <code class="docutils literal"><span class="pre">point2</span></code> : The segment is created between those two
|
||
points</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id67">
|
||
<h4>Example<a class="headerlink" href="#id67" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PlaceSegment</span> <span class="p">(</span> <span class="n">myNet</span><span class="p">,</span> <span class="s2">"ALU3"</span><span class="p">,</span> <span class="n">XY</span> <span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">XY</span> <span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">100</span><span class="p">),</span> <span class="mi">2</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id68">
|
||
<h4>Errors<a class="headerlink" href="#id68" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceSegment</span> <span class="pre">:</span> <span class="pre">Argument</span> <span class="pre">layer</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">a</span> <span class="pre">string.</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceSegment</span> <span class="pre">:</span> <span class="pre">Wrong</span> <span class="pre">argument,</span></code>
|
||
<code class="docutils literal"><span class="pre">the</span> <span class="pre">coordinates</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">segment</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">put</span> <span class="pre">in</span> <span class="pre">XY</span> <span class="pre">objects.</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceSegment</span> <span class="pre">:</span> <span class="pre">Segments</span> <span class="pre">are</span> <span class="pre">vertical</span> <span class="pre">or</span> <span class="pre">horizontal.</span></code>
|
||
The two references given as argument do not describe a vertical or
|
||
horizontal segment. Wether coordinate x or y of the references must
|
||
be identical.</li>
|
||
</ul>
|
||
<p>]*CopyUpSegment*CopyUpSegmentseccopy</p>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="placecontact">
|
||
<h3>PlaceContact<a class="headerlink" href="#placecontact" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id69">
|
||
<h4>Name<a class="headerlink" href="#id69" title="Permalink to this headline">¶</a></h4>
|
||
<p>PlaceContact – Places a contact</p>
|
||
</div>
|
||
<div class="section" id="id70">
|
||
<h4>Synopsys<a class="headerlink" href="#id70" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PlaceContact</span> <span class="p">(</span> <span class="n">net</span><span class="p">,</span> <span class="n">layer</span><span class="p">,</span> <span class="n">point</span><span class="p">,</span> <span class="n">width</span><span class="p">,</span> <span class="n">height</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id71">
|
||
<h4>Description<a class="headerlink" href="#id71" title="Permalink to this headline">¶</a></h4>
|
||
<p>Placement of a contact.
|
||
The contact is located at the coodinates of <code class="docutils literal"><span class="pre">point</span></code>, on the layer
|
||
<code class="docutils literal"><span class="pre">layer</span></code> and has a size of 1 per 1. It belongs to the net <code class="docutils literal"><span class="pre">net</span></code>.
|
||
Note that the segment must be horizontal or vertival.</p>
|
||
</div>
|
||
<div class="section" id="id72">
|
||
<h4>Parameters<a class="headerlink" href="#id72" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">net</span></code> : Net which the contact belongs to</li>
|
||
<li><code class="docutils literal"><span class="pre">layer</span></code> : Layer of the segment.
|
||
The <code class="docutils literal"><span class="pre">layer</span></code> argument is a string wich can take different values,
|
||
thanks to the technology (file described in HUR_TECHNO_NAME)<ul>
|
||
<li>NWELL, PWELL, ptie, ntie, pdif, ndif, ntrans, ptrans, poly, ALU1,
|
||
ALU2, ALU3, ALU4, ALU5, ALU6, VIA1, VIA2, VIA3, VIA4, VIA5, TEXT,
|
||
UNDEF, SPL1, TALU1, TALU2, TALU3, TALU4, TALU5, TALU6, POLY, NTIE,
|
||
PTIE, NDIF, PDIF, PTRANS, NTRANS, CALU1, CALU2, CALU3, CALU4,
|
||
CALU5, CALU6, CONT_POLY, CONT_DIF_N, CONT_DIF_P,
|
||
CONT_BODY_N, CONT_BODY_P, via12, via23, via34, via45, via56,
|
||
via24, via25, via26, via35, via36, via46, CONT_TURN1,
|
||
CONT_TURN2, CONT_TURN3, CONT_TURN4, CONT_TURN5, CONT_TURN6</li>
|
||
</ul>
|
||
</li>
|
||
<li><code class="docutils literal"><span class="pre">point</span></code> : Coodinates of the contact</li>
|
||
<li><code class="docutils literal"><span class="pre">width</span></code> : Width of the contact</li>
|
||
<li><code class="docutils literal"><span class="pre">height</span></code> : Height of the contact</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id73">
|
||
<h4>Example<a class="headerlink" href="#id73" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PlaceContact</span> <span class="p">(</span> <span class="n">myNet</span><span class="p">,</span> <span class="s2">"ALU2"</span><span class="p">,</span> <span class="n">XY</span> <span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">2</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id74">
|
||
<h4>Errors<a class="headerlink" href="#id74" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceContact</span> <span class="pre">:</span> <span class="pre">Argument</span> <span class="pre">layer</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">a</span> <span class="pre">string.</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceContact</span> <span class="pre">:</span> <span class="pre">Wrong</span> <span class="pre">argument,</span></code>
|
||
<code class="docutils literal"><span class="pre">the</span> <span class="pre">coordinates</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">contact</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">put</span> <span class="pre">in</span> <span class="pre">a</span> <span class="pre">XY</span> <span class="pre">object.</span></code></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="placepin">
|
||
<h3>PlacePin<a class="headerlink" href="#placepin" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id75">
|
||
<h4>Name<a class="headerlink" href="#id75" title="Permalink to this headline">¶</a></h4>
|
||
<p>PlacePin – Places a pin</p>
|
||
</div>
|
||
<div class="section" id="id76">
|
||
<h4>Synopsys<a class="headerlink" href="#id76" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PlacePin</span> <span class="p">(</span> <span class="n">net</span><span class="p">,</span> <span class="n">layer</span><span class="p">,</span> <span class="n">direction</span><span class="p">,</span> <span class="n">point</span><span class="p">,</span> <span class="n">width</span><span class="p">,</span> <span class="n">height</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id77">
|
||
<h4>Description<a class="headerlink" href="#id77" title="Permalink to this headline">¶</a></h4>
|
||
<p>Placement of a pin.
|
||
The pin is located at the coodinates of <code class="docutils literal"><span class="pre">point</span></code>, on the layer
|
||
<code class="docutils literal"><span class="pre">layer</span></code>, has a a direction of <code class="docutils literal"><span class="pre">direction</span></code> and size of 1 per 1. It
|
||
belongs to the net <code class="docutils literal"><span class="pre">net</span></code>.</p>
|
||
</div>
|
||
<div class="section" id="id78">
|
||
<h4>Parameters<a class="headerlink" href="#id78" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">net</span></code> : Net which the pin belongs to</li>
|
||
<li><code class="docutils literal"><span class="pre">layer</span></code> : Layer of the segment.
|
||
The <code class="docutils literal"><span class="pre">layer</span></code> argument is a string wich can take different values,
|
||
thanks to the technology (file described in HUR_TECHNO_NAME)<ul>
|
||
<li>NWELL, PWELL, ptie, ntie, pdif, ndif, ntrans, ptrans, poly, ALU1,
|
||
ALU2, ALU3, ALU4, ALU5, ALU6, VIA1, VIA2, VIA3, VIA4, VIA5, TEXT,
|
||
UNDEF, SPL1, TALU1, TALU2, TALU3, TALU4, TALU5, TALU6, POLY, NTIE,
|
||
PTIE, NDIF, PDIF, PTRANS, NTRANS, CALU1, CALU2, CALU3, CALU4,
|
||
CALU5, CALU6, CONT_POLY, CONT_DIF_N, CONT_DIF_P,
|
||
CONT_BODY_N, CONT_BODY_P, via12, via23, via34, via45, via56,
|
||
via24, via25, via26, via35, via36, via46, CONT_TURN1,
|
||
CONT_TURN2, CONT_TURN3, CONT_TURN4, CONT_TURN5, CONT_TURN6</li>
|
||
</ul>
|
||
</li>
|
||
<li><code class="docutils literal"><span class="pre">direction</span></code> : Direction of the pin<ul>
|
||
<li>UNDEFINED, NORTH, SOUTH, EAST, WEST</li>
|
||
</ul>
|
||
</li>
|
||
<li><code class="docutils literal"><span class="pre">point</span></code> : Coodinates of the pin</li>
|
||
<li><code class="docutils literal"><span class="pre">width</span></code> : Width of the pin</li>
|
||
<li><code class="docutils literal"><span class="pre">height</span></code> : Height of the pin</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id79">
|
||
<h4>Example<a class="headerlink" href="#id79" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PlacePin</span> <span class="p">(</span> <span class="n">myNet</span><span class="p">,</span> <span class="s2">"ALU2"</span><span class="p">,</span> <span class="n">NORTH</span><span class="p">,</span> <span class="n">XY</span> <span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">2</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id80">
|
||
<h4>Errors<a class="headerlink" href="#id80" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlacePin</span> <span class="pre">:</span> <span class="pre">Argument</span> <span class="pre">layer</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">a</span> <span class="pre">string.</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlacePin</span> <span class="pre">:</span> <span class="pre">Illegal</span> <span class="pre">pin</span> <span class="pre">access</span> <span class="pre">direction.</span></code>
|
||
<code class="docutils literal"><span class="pre">The</span> <span class="pre">values</span> <span class="pre">are</span> <span class="pre">:</span> <span class="pre">UNDEFINED,</span> <span class="pre">NORTH,</span> <span class="pre">SOUTH,</span> <span class="pre">EAST,</span> <span class="pre">WEST.</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlacePin</span> <span class="pre">:</span> <span class="pre">Wrong</span> <span class="pre">argument,</span></code>
|
||
<code class="docutils literal"><span class="pre">the</span> <span class="pre">coordinates</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">pin</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">put</span> <span class="pre">in</span> <span class="pre">a</span> <span class="pre">XY</span> <span class="pre">object.</span></code></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="placeref">
|
||
<h3>PlaceRef<a class="headerlink" href="#placeref" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id81">
|
||
<h4>Name<a class="headerlink" href="#id81" title="Permalink to this headline">¶</a></h4>
|
||
<p>PlaceRef – Places a reference</p>
|
||
</div>
|
||
<div class="section" id="id82">
|
||
<h4>Synopsys<a class="headerlink" href="#id82" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PlaceRef</span> <span class="p">(</span> <span class="n">point</span><span class="p">,</span> <span class="n">name</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id83">
|
||
<h4>Description<a class="headerlink" href="#id83" title="Permalink to this headline">¶</a></h4>
|
||
<p>Placement of a reference.
|
||
The reference is located at the coordinates of <code class="docutils literal"><span class="pre">point</span></code>, with name
|
||
<code class="docutils literal"><span class="pre">name</span></code>.</p>
|
||
</div>
|
||
<div class="section" id="id84">
|
||
<h4>Parameters<a class="headerlink" href="#id84" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">point</span></code> : Coodinates of the reference</li>
|
||
<li><code class="docutils literal"><span class="pre">name</span></code> : Name of the reference</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id85">
|
||
<h4>Example<a class="headerlink" href="#id85" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PlaceRef</span> <span class="p">(</span> <span class="n">XY</span> <span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="s2">"myref"</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id86">
|
||
<h4>Errors<a class="headerlink" href="#id86" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceRef</span> <span class="pre">:</span> <span class="pre">Wrong</span> <span class="pre">argument,</span></code>
|
||
<code class="docutils literal"><span class="pre">the</span> <span class="pre">coordinates</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">reference</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">put</span> <span class="pre">in</span> <span class="pre">a</span> <span class="pre">XY</span> <span class="pre">object.</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceRef</span> <span class="pre">:</span> <span class="pre">Argument</span> <span class="pre">layer</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">a</span> <span class="pre">string.</span></code></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="getrefxy">
|
||
<h3>GetRefXY<a class="headerlink" href="#getrefxy" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id87">
|
||
<h4>Name<a class="headerlink" href="#id87" title="Permalink to this headline">¶</a></h4>
|
||
<p>GetRefXY – Returns the coordinates of a reference</p>
|
||
</div>
|
||
<div class="section" id="id88">
|
||
<h4>Synopsys<a class="headerlink" href="#id88" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">GetRefXY</span> <span class="p">(</span> <span class="n">pathname</span><span class="p">,</span> <span class="n">refname</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id89">
|
||
<h4>Description<a class="headerlink" href="#id89" title="Permalink to this headline">¶</a></h4>
|
||
<p>Computation of coordinates.
|
||
The point returned (object XY) represents the location of the
|
||
reference of name <code class="docutils literal"><span class="pre">refname</span></code> within the coodinates system of the top
|
||
cell. The reference <code class="docutils literal"><span class="pre">refname</span></code> is instanciated in an instance found
|
||
thanks to <code class="docutils literal"><span class="pre">pathname</span></code> which represents an ordered sequence of instances
|
||
through the hierarchy.</p>
|
||
</div>
|
||
<div class="section" id="id90">
|
||
<h4>Parameters<a class="headerlink" href="#id90" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">pathname</span></code> : The path in order to obtain, from the top cell, the
|
||
instance the reference <code class="docutils literal"><span class="pre">refname</span></code> belongs to</li>
|
||
<li><code class="docutils literal"><span class="pre">refname</span></code> : The name of the reference</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id91">
|
||
<h4>Example<a class="headerlink" href="#id91" title="Permalink to this headline">¶</a></h4>
|
||
<p>The cell which is being created (the top cell), instanciates a generator
|
||
with instance name “my_dpgen_and2”. This generator instanciates an
|
||
instance called “cell_1” which the reference “i0_20” belongs to.</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">GetRefXY</span> <span class="p">(</span> <span class="s2">"my_dpgen_and2.cell_1"</span><span class="p">,</span> <span class="s2">"i0_20"</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id92">
|
||
<h4>Errors<a class="headerlink" href="#id92" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">GetRefXY</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">The</span> <span class="pre">instance's</span> <span class="pre">path</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">put</span> <span class="pre">with</span> <span class="pre">a</span> <span class="pre">string.</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">GetRefXY</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">The</span> <span class="pre">reference</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">done</span> <span class="pre">with</span> <span class="pre">it's</span> <span class="pre">name</span> <span class="pre">:</span> <span class="pre">a</span> <span class="pre">string.</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">GetRefXY</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">No</span> <span class="pre">reference</span> <span class="pre">found</span> <span class="pre">with</span> <span class="pre">name</span> <span class="pre">...</span> <span class="pre">in</span> <span class="pre">masterCell</span> <span class="pre">...</span></code></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="copyupsegment">
|
||
<h3>CopyUpSegment<a class="headerlink" href="#copyupsegment" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id93">
|
||
<h4>Name<a class="headerlink" href="#id93" title="Permalink to this headline">¶</a></h4>
|
||
<p>CopyUpSegment – Copies the segment of an instance in the current cell</p>
|
||
</div>
|
||
<div class="section" id="id94">
|
||
<h4>Synopsys<a class="headerlink" href="#id94" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">CopyUpSegment</span> <span class="p">(</span> <span class="n">pathname</span><span class="p">,</span> <span class="n">netname</span><span class="p">,</span> <span class="n">newnet</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id95">
|
||
<h4>Description<a class="headerlink" href="#id95" title="Permalink to this headline">¶</a></h4>
|
||
<p>Duplication of a segment.
|
||
The segment is created with the same cordinates and layer as the
|
||
segment corresponding to the net <code class="docutils literal"><span class="pre">netname</span></code> in the instance found
|
||
thanks to <code class="docutils literal"><span class="pre">pathname</span></code>. It belongs to the net <code class="docutils literal"><span class="pre">newnet</span></code>.
|
||
Note that if several segments correspond to the net, they are all
|
||
going to be copied.</p>
|
||
</div>
|
||
<div class="section" id="id96">
|
||
<h4>Parameters<a class="headerlink" href="#id96" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">pathname</span></code> : The path in order to obtain, from the top cell, the
|
||
instance the net <code class="docutils literal"><span class="pre">netname</span></code> belongs to</li>
|
||
<li><code class="docutils literal"><span class="pre">netname</span></code> : The name of the net which the segment belongs to</li>
|
||
<li><code class="docutils literal"><span class="pre">net</span></code> : The net which the top cell segment os going to belong to</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id97">
|
||
<h4>Example<a class="headerlink" href="#id97" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">CopuUpSegment</span> <span class="p">(</span> <span class="s2">"my_dpgen_and2.cell_1"</span><span class="p">,</span> <span class="s2">"i0"</span><span class="p">,</span> <span class="n">myNet</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id98">
|
||
<h4>Errors<a class="headerlink" href="#id98" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">CopyUpSegment</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">The</span> <span class="pre">instance's</span> <span class="pre">path</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">put</span> <span class="pre">with</span> <span class="pre">a</span> <span class="pre">string.</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">CopyUpSegment</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">The</span> <span class="pre">segment</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">done</span> <span class="pre">with</span> <span class="pre">it's</span> <span class="pre">name</span> <span class="pre">:</span> <span class="pre">a</span> <span class="pre">string.</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">CopyUpSegment</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">No</span> <span class="pre">net</span> <span class="pre">found</span> <span class="pre">with</span> <span class="pre">name</span> <span class="pre">...</span> <span class="pre">in</span> <span class="pre">masterCell</span> <span class="pre">...</span></code>
|
||
There is no net with name <code class="docutils literal"><span class="pre">netname</span></code> in the instance found thanks
|
||
to the path <code class="docutils literal"><span class="pre">pathname</span></code>.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">CopyUpSegment</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">No</span> <span class="pre">segment</span> <span class="pre">found</span> <span class="pre">with</span> <span class="pre">net</span> <span class="pre">...</span> <span class="pre">in</span> <span class="pre">masterCell</span> <span class="pre">...</span></code>
|
||
The net with name <code class="docutils literal"><span class="pre">netname</span></code> has no segment. So the copy of
|
||
segment can not be done.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">CopyUpSegment</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">the</span> <span class="pre">segment</span> <span class="pre">of</span> <span class="pre">net</span> <span class="pre">...</span> <span class="pre">are</span> <span class="pre">not</span> <span class="pre">of</span> <span class="pre">type</span> <span class="pre">CALU.</span></code>
|
||
In other words, the net is not an external net. The copy can be
|
||
done only with external nets.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="placecentric">
|
||
<h3>PlaceCentric<a class="headerlink" href="#placecentric" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id99">
|
||
<h4>Name<a class="headerlink" href="#id99" title="Permalink to this headline">¶</a></h4>
|
||
<p>PlaceCentric – Placement of an instance in the middle of an abutment box</p>
|
||
</div>
|
||
<div class="section" id="id100">
|
||
<h4>Synopsys<a class="headerlink" href="#id100" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PlaceCentric</span> <span class="p">(</span> <span class="n">ins</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id101">
|
||
<h4>Description<a class="headerlink" href="#id101" title="Permalink to this headline">¶</a></h4>
|
||
<p>This function places an instance in the middle of and abutment box.
|
||
The instance has to be instantiated in the method <code class="docutils literal"><span class="pre">Netlist</span></code> in order
|
||
to use this function.</p>
|
||
</div>
|
||
<div class="section" id="id102">
|
||
<h4>Parameters<a class="headerlink" href="#id102" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">ins</span></code> : Instance to place</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id103">
|
||
<h4>Errors<a class="headerlink" href="#id103" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceCentric:</span> <span class="pre">the</span> <span class="pre">instance</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist.</span></code>
|
||
The instance must be instanciated in order to be placed.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PlaceCentric</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">the</span> <span class="pre">instance's</span> <span class="pre">size</span> <span class="pre">is</span> <span class="pre">greater</span> <span class="pre">than</span> <span class="pre">this</span> <span class="pre">model.</span></code>
|
||
The instance must fit in the abutment box. The abutment box may not
|
||
be big enough.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="placeglu">
|
||
<h3>PlaceGlu<a class="headerlink" href="#placeglu" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id104">
|
||
<h4>Name<a class="headerlink" href="#id104" title="Permalink to this headline">¶</a></h4>
|
||
<p>PlaceGlue – Automatic placement of non placed instances</p>
|
||
</div>
|
||
<div class="section" id="id105">
|
||
<h4>Synopsys<a class="headerlink" href="#id105" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PlaceGlue</span> <span class="p">(</span> <span class="n">cell</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id106">
|
||
<h4>Description<a class="headerlink" href="#id106" title="Permalink to this headline">¶</a></h4>
|
||
<p>This function places, thanks to the automatic placer Mistral of
|
||
Coriolis, all the non placed instances of the cell.</p>
|
||
</div>
|
||
<div class="section" id="id107">
|
||
<h4>Parameters<a class="headerlink" href="#id107" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">cell</span></code> : the cell which the fonction is applied to</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="fillcell">
|
||
<h3>FillCell<a class="headerlink" href="#fillcell" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id108">
|
||
<h4>Name<a class="headerlink" href="#id108" title="Permalink to this headline">¶</a></h4>
|
||
<p>FillCell – Automatic placement of ties.</p>
|
||
</div>
|
||
<div class="section" id="id109">
|
||
<h4>Synopsys<a class="headerlink" href="#id109" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">FillCell</span> <span class="p">(</span> <span class="n">cell</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id110">
|
||
<h4>Description<a class="headerlink" href="#id110" title="Permalink to this headline">¶</a></h4>
|
||
<p>This function places automatically ties.</p>
|
||
</div>
|
||
<div class="section" id="id111">
|
||
<h4>Parameters<a class="headerlink" href="#id111" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">cell</span></code> : the cell which the fonction is applied to</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id112">
|
||
<h4>Errors<a class="headerlink" href="#id112" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">FillCell</span> <span class="pre">:</span> <span class="pre">Given</span> <span class="pre">cell</span> <span class="pre">doesn't</span> <span class="pre">exist.</span></code>
|
||
The argument is wrong. Check if one has created the cell correctly.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="pads">
|
||
<h3>Pads<a class="headerlink" href="#pads" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id113">
|
||
<h4>Name<a class="headerlink" href="#id113" title="Permalink to this headline">¶</a></h4>
|
||
<p>PadNorth, PadSouth, PadEast, PasWest – Placement of pads at the
|
||
periphery of the cell</p>
|
||
</div>
|
||
<div class="section" id="id114">
|
||
<h4>Synopsys<a class="headerlink" href="#id114" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PadNorth</span> <span class="p">(</span> <span class="n">args</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id115">
|
||
<h4>Description<a class="headerlink" href="#id115" title="Permalink to this headline">¶</a></h4>
|
||
<p>These functions place the pads given as arguments at the given side of
|
||
the cell (PadNorth : up north, PadSouth : down south ...). Pads are
|
||
placed from bottom to top for PadNorth and PadSouth and from left to
|
||
right for PadWest and PasEast.</p>
|
||
</div>
|
||
<div class="section" id="id116">
|
||
<h4>Parameters<a class="headerlink" href="#id116" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">args</span></code> : List of pads to be placed</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id117">
|
||
<h4>Example<a class="headerlink" href="#id117" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PadSouth</span> <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">p_cin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">p_np</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">p_ng</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">p_vssick0</span>
|
||
<span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">p_vddeck0</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">p_vsseck1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">p_vddeck1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">p_cout</span>
|
||
<span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">p_y</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">p_y</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">p_y</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id118">
|
||
<h4>Errors<a class="headerlink" href="#id118" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PadNorth</span> <span class="pre">:</span> <span class="pre">not</span> <span class="pre">enough</span> <span class="pre">space</span> <span class="pre">for</span> <span class="pre">all</span> <span class="pre">pads.</span></code>
|
||
The abutment box is not big enough in order to place all the pads.
|
||
Maybe one could put pads on other faces of the cell.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PadNorth</span> <span class="pre">:</span> <span class="pre">one</span> <span class="pre">instance</span> <span class="pre">doesn't</span> <span class="pre">exist.</span></code>
|
||
One of the pads given as arguments does not exist</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PadNorth</span> <span class="pre">:</span> <span class="pre">one</span> <span class="pre">argument</span> <span class="pre">is</span> <span class="pre">not</span> <span class="pre">an</span> <span class="pre">instance.</span></code>
|
||
One of the pads is not one of the pads of the cell.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PadNorth</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">instance</span> <span class="pre">ins</span> <span class="pre">is</span> <span class="pre">already</span> <span class="pre">placed.</span></code>
|
||
One is trying to place a pad twice.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PadNorth</span> <span class="pre">:</span> <span class="pre">pad</span> <span class="pre">ins</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">closer</span> <span class="pre">to</span> <span class="pre">the</span> <span class="pre">center.</span></code>
|
||
The pad name ins must be put closer to the center in order to route
|
||
the cell</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="alimentation-rails">
|
||
<h3>Alimentation rails<a class="headerlink" href="#alimentation-rails" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id119">
|
||
<h4>Name<a class="headerlink" href="#id119" title="Permalink to this headline">¶</a></h4>
|
||
<p>AlimVerticalRail, AlimHorizontalRail – Placement of a
|
||
vertical/horizontal alimentation call back</p>
|
||
</div>
|
||
<div class="section" id="id120">
|
||
<h4>Synopsys<a class="headerlink" href="#id120" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">AlimVerticalRail</span> <span class="p">(</span> <span class="n">nb</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id121">
|
||
<h4>Description<a class="headerlink" href="#id121" title="Permalink to this headline">¶</a></h4>
|
||
<p>These functions place a vertical/horizontal alimentation call back. It’s
|
||
position is given by the parameter given.</p>
|
||
</div>
|
||
<div class="section" id="id122">
|
||
<h4>Parameters<a class="headerlink" href="#id122" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">nb</span></code> : coordinate of the rail<ul>
|
||
<li>For AlimVerticalRail, <code class="docutils literal"><span class="pre">nb</span></code> is in pitches i.e. 5 lambdas</li>
|
||
<li>For AlimHorizontalRail, <code class="docutils literal"><span class="pre">nb</span></code> is in slices i.e. 50 lambdas</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id123">
|
||
<h4>Example<a class="headerlink" href="#id123" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">AlimVerticalRail</span> <span class="p">(</span> <span class="mi">50</span> <span class="p">)</span>
|
||
<span class="n">AlimVerticalRail</span> <span class="p">(</span> <span class="mi">150</span> <span class="p">)</span>
|
||
|
||
<span class="n">AlimHorizontalRail</span> <span class="p">(</span> <span class="mi">10</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id124">
|
||
<h4>Errors<a class="headerlink" href="#id124" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">AlimHorizontalRail</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">Illegal</span> <span class="pre">argument</span> <span class="pre">y,</span> <span class="pre">y</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">between</span> <span class="pre">...</span> <span class="pre">and</span> <span class="pre">...</span></code>
|
||
The argument given is wrong : the call back would not be in the
|
||
abutment box.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Placement</span> <span class="pre">of</span> <span class="pre">cells</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">please</span> <span class="pre">check</span> <span class="pre">your</span> <span class="pre">file</span> <span class="pre">of</span> <span class="pre">layout</span> <span class="pre">with</span> <span class="pre">DRUC.</span></code>
|
||
The placement of the cell needs to be correct in order to place a
|
||
call back. Check the errors of placement.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="alimentation-connectors">
|
||
<h3>Alimentation connectors<a class="headerlink" href="#alimentation-connectors" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id125">
|
||
<h4>Name<a class="headerlink" href="#id125" title="Permalink to this headline">¶</a></h4>
|
||
<p>AlimConnectors – Creation of connectors at the periphery of the core of
|
||
a circuit</p>
|
||
</div>
|
||
<div class="section" id="id126">
|
||
<h4>Synopsys<a class="headerlink" href="#id126" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">AlimConnectors</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id127">
|
||
<h4>Description<a class="headerlink" href="#id127" title="Permalink to this headline">¶</a></h4>
|
||
<p>This function creates the connectors in Alu 1 at the periphery of the
|
||
core.</p>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="powerring">
|
||
<h3>PowerRing<a class="headerlink" href="#powerring" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id128">
|
||
<h4>Name<a class="headerlink" href="#id128" title="Permalink to this headline">¶</a></h4>
|
||
<p>PowerRing – Placement of power rings.</p>
|
||
</div>
|
||
<div class="section" id="id129">
|
||
<h4>Synopsys<a class="headerlink" href="#id129" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PowerRing</span> <span class="p">(</span> <span class="n">nb</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id130">
|
||
<h4>Description<a class="headerlink" href="#id130" title="Permalink to this headline">¶</a></h4>
|
||
<p>This function places power rings around the core and around the plots.</p>
|
||
</div>
|
||
<div class="section" id="id131">
|
||
<h4>Parameters<a class="headerlink" href="#id131" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">nb</span></code> : Number of pair of rings vdd/vss</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id132">
|
||
<h4>Example<a class="headerlink" href="#id132" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">PowerRing</span> <span class="p">(</span> <span class="mi">3</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id133">
|
||
<h4>Errors<a class="headerlink" href="#id133" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PowerRing</span> <span class="pre">:</span> <span class="pre">Pads</span> <span class="pre">in</span> <span class="pre">the</span> <span class="pre">north</span> <span class="pre">haven't</span> <span class="pre">been</span> <span class="pre">placed.</span></code>
|
||
The pads of the 4 sides of the chip must be placed before calling
|
||
function PowerRing.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">PowerRing</span> <span class="pre">:</span> <span class="pre">too</span> <span class="pre">many</span> <span class="pre">rings,</span> <span class="pre">not</span> <span class="pre">enough</span> <span class="pre">space.</span></code>
|
||
Wether The argument of PowerRing is to big, or the abutment box of
|
||
the chip is to small. There’s no space to put the rings.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="routeck">
|
||
<h3>RouteCk<a class="headerlink" href="#routeck" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id134">
|
||
<h4>Name<a class="headerlink" href="#id134" title="Permalink to this headline">¶</a></h4>
|
||
<p>RouteCk – Routing of signal Ck to standard cells</p>
|
||
</div>
|
||
<div class="section" id="id135">
|
||
<h4>Synopsys<a class="headerlink" href="#id135" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">RouteCk</span> <span class="p">(</span> <span class="n">net</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id136">
|
||
<h4>Description<a class="headerlink" href="#id136" title="Permalink to this headline">¶</a></h4>
|
||
<p>This function routes signal Ck to standard cells.</p>
|
||
</div>
|
||
<div class="section" id="id137">
|
||
<h4>Parameters<a class="headerlink" href="#id137" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">net</span></code> : the net which the fonction is applied to</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id138">
|
||
<h4>Errors<a class="headerlink" href="#id138" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">RouteCk</span> <span class="pre">:</span> <span class="pre">Pads</span> <span class="pre">in</span> <span class="pre">the</span> <span class="pre">north</span> <span class="pre">haven't</span> <span class="pre">been</span> <span class="pre">placed</span></code>
|
||
The pads must be placed before calling RoutageCk.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="instanciation-facilities">
|
||
<h2>Instanciation facilities<a class="headerlink" href="#instanciation-facilities" title="Permalink to this headline">¶</a></h2>
|
||
<div class="section" id="buffer">
|
||
<h3>Buffer<a class="headerlink" href="#buffer" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id139">
|
||
<h4>Name<a class="headerlink" href="#id139" title="Permalink to this headline">¶</a></h4>
|
||
<p>Buffer – Easy way to instantiate a buffer</p>
|
||
</div>
|
||
<div class="section" id="id140">
|
||
<h4>Synopsys<a class="headerlink" href="#id140" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">netOut</span> <span class="o"><=</span> <span class="n">netIn</span><span class="o">.</span><span class="n">Buffer</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id141">
|
||
<h4>Description<a class="headerlink" href="#id141" title="Permalink to this headline">¶</a></h4>
|
||
<p>This method is a method of net. The net which this method is applied
|
||
to is the input net of the buffer. The method returns a net : the output
|
||
net.
|
||
Note that it is possible to change the generator instanciated with the
|
||
<code class="docutils literal"><span class="pre">SetBuff</span></code> method.</p>
|
||
</div>
|
||
<div class="section" id="id142">
|
||
<h4>Example<a class="headerlink" href="#id142" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">essai</span> <span class="p">(</span> <span class="n">Model</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Interface</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">A</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"a"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"s"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Vdd</span> <span class="o">=</span> <span class="n">VddIn</span> <span class="p">(</span> <span class="s2">"vdd"</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Vss</span> <span class="o">=</span> <span class="n">VssIn</span> <span class="p">(</span> <span class="s2">"vss"</span> <span class="p">)</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Netlist</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S</span> <span class="o"><=</span> <span class="bp">self</span><span class="o">.</span><span class="n">A</span><span class="o">.</span><span class="n">Buffer</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="multiplexor">
|
||
<h3>Multiplexor<a class="headerlink" href="#multiplexor" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id143">
|
||
<h4>Name<a class="headerlink" href="#id143" title="Permalink to this headline">¶</a></h4>
|
||
<p>Mux – Easy way to instantiate a multiplexor</p>
|
||
</div>
|
||
<div class="section" id="id144">
|
||
<h4>Synopsys<a class="headerlink" href="#id144" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">netOut</span> <span class="o"><=</span> <span class="n">netCmd</span><span class="o">.</span><span class="n">Mux</span> <span class="p">(</span> <span class="n">arg</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id145">
|
||
<h4>Description<a class="headerlink" href="#id145" title="Permalink to this headline">¶</a></h4>
|
||
<p>This method is a method of net. The net which this method is applied
|
||
to is the command of the multiplexor. The nets given as parameters are
|
||
all the input nets. This method returns a net : the output net.
|
||
There are two ways to describe the multiplexor : the argument <code class="docutils literal"><span class="pre">arg</span></code>
|
||
can be a list or a dictionnary.
|
||
Note that it is possible to change the generator instanciated with the
|
||
<code class="docutils literal"><span class="pre">SetMux</span></code> method.</p>
|
||
</div>
|
||
<div class="section" id="id146">
|
||
<h4>Parameters<a class="headerlink" href="#id146" title="Permalink to this headline">¶</a></h4>
|
||
<ul>
|
||
<li><p class="first">List :
|
||
For each value of the command, the corresponding net is specified.
|
||
All values must be specified.
|
||
For example :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">out</span> <span class="o"><=</span> <span class="n">cmd</span><span class="o">.</span><span class="n">Mux</span> <span class="p">(</span> <span class="p">[</span><span class="n">in0</span><span class="p">,</span> <span class="n">in1</span><span class="p">,</span> <span class="n">in2</span><span class="p">,</span> <span class="n">in3</span><span class="p">]</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The net out is then initialised like this :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="n">cmd</span> <span class="o">==</span> <span class="mi">0</span> <span class="p">:</span> <span class="n">out</span> <span class="o"><=</span> <span class="n">in0</span>
|
||
<span class="k">if</span> <span class="n">cmd</span> <span class="o">==</span> <span class="mi">1</span> <span class="p">:</span> <span class="n">out</span> <span class="o"><=</span> <span class="n">in1</span>
|
||
<span class="k">if</span> <span class="n">cmd</span> <span class="o">==</span> <span class="mi">2</span> <span class="p">:</span> <span class="n">out</span> <span class="o"><=</span> <span class="n">in2</span>
|
||
<span class="k">if</span> <span class="n">cmd</span> <span class="o">==</span> <span class="mi">3</span> <span class="p">:</span> <span class="n">out</span> <span class="o"><=</span> <span class="n">in3</span>
|
||
</pre></div>
|
||
</div>
|
||
</li>
|
||
<li><p class="first">Dictionnary :
|
||
A dictionnary makes the correspondance between a value of the
|
||
command and the corresponding net.
|
||
For example :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">out</span> <span class="o"><=</span> <span class="n">cmd</span><span class="o">.</span><span class="n">Mux</span> <span class="p">(</span> <span class="p">{</span><span class="s2">"0"</span> <span class="p">:</span> <span class="n">in0</span><span class="p">,</span> <span class="s2">"1"</span> <span class="p">:</span> <span class="n">in1</span><span class="p">,</span> <span class="s2">"2"</span> <span class="p">:</span> <span class="n">in2</span><span class="p">,</span> <span class="s2">"3"</span> <span class="p">:</span> <span class="n">in3</span><span class="p">}</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This initialisation corresponds to the one before. Thanks to the use
|
||
of a dictionnary, the connections can be clearer :</p>
|
||
<ul>
|
||
<li><p class="first"><code class="docutils literal"><span class="pre">'default'</span></code>: This key of the dictionnary corresponds to all
|
||
the nets that are not specified
|
||
For example :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">out</span> <span class="o"><=</span> <span class="n">cmd</span><span class="o">.</span><span class="n">Mux</span> <span class="p">(</span> <span class="p">{</span><span class="s2">"0"</span> <span class="p">:</span> <span class="n">in0</span><span class="p">,</span> <span class="s2">"default"</span> <span class="p">:</span> <span class="n">in1</span><span class="p">}</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This notation corresponds to :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="n">cmd</span> <span class="o">==</span> <span class="mi">0</span> <span class="p">:</span> <span class="n">out</span> <span class="o"><=</span> <span class="n">in0</span>
|
||
<span class="k">else</span> <span class="p">:</span> <span class="n">out</span> <span class="o"><=</span> <span class="n">in1</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Note that if there is no <code class="docutils literal"><span class="pre">'default'</span></code> key specified and that not
|
||
all the nets are specified, the non specified nets are set to 0.</p>
|
||
</li>
|
||
<li><p class="first"><code class="docutils literal"><span class="pre">#</span></code> and <code class="docutils literal"><span class="pre">?</span></code> : When a key of the dictionnary begins with
|
||
<code class="docutils literal"><span class="pre">#</span></code>, the number after the <code class="docutils literal"><span class="pre">#</span></code> has to be binary and each ? in
|
||
the number means that this bit is not precised
|
||
For example :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">out</span> <span class="o"><=</span> <span class="n">cmd</span><span class="o">.</span><span class="n">Mux</span> <span class="p">(</span> <span class="p">{</span><span class="s2">"#01?"</span> <span class="p">:</span> <span class="n">in0</span><span class="p">,</span> <span class="s2">"default"</span> <span class="p">:</span> <span class="n">in1</span><span class="p">}</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This notation corresponds to :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="n">cmd</span> <span class="ow">in</span> <span class="p">(</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span> <span class="p">)</span> <span class="p">:</span> <span class="n">out</span> <span class="o"><=</span> <span class="n">in0</span>
|
||
<span class="k">else</span> <span class="p">:</span> <span class="n">out</span> <span class="o"><=</span> <span class="n">in1</span>
|
||
</pre></div>
|
||
</div>
|
||
</li>
|
||
<li><p class="first"><code class="docutils literal"><span class="pre">,</span></code> and <code class="docutils literal"><span class="pre">-</span></code> : When keys contains thoses symbols, it permits
|
||
to enumerate intervals
|
||
For example :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">out</span> <span class="o"><=</span> <span class="n">cmd</span><span class="o">.</span><span class="n">Mux</span> <span class="p">(</span> <span class="p">{</span><span class="s2">"0,4"</span> <span class="p">:</span> <span class="n">in0</span><span class="p">,</span> <span class="s2">"1-3,5"</span> <span class="p">:</span> <span class="n">in1</span><span class="p">}</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This notation corresponds to :</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="n">cmd</span> <span class="ow">in</span> <span class="p">(</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span> <span class="p">:</span> <span class="n">out</span> <span class="o"><=</span> <span class="n">in0</span>
|
||
<span class="k">elif</span> <span class="n">cmd</span> <span class="ow">in</span> <span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span> <span class="p">:</span> <span class="n">out</span> <span class="o"><=</span> <span class="n">in1</span>
|
||
<span class="k">else</span> <span class="p">:</span> <span class="n">out</span> <span class="o"><=</span> <span class="mi">0</span>
|
||
</pre></div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id147">
|
||
<h4>Example<a class="headerlink" href="#id147" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">essai</span> <span class="p">(</span> <span class="n">Model</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Interface</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">A</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"a"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">B</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"b"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">C</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"c"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">D</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"d"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Cmd1</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"cmd1"</span><span class="p">,</span> <span class="mi">2</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Cmd2</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"cmd2"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S1</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"s1"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S2</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"s2"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Vdd</span> <span class="o">=</span> <span class="n">VddIn</span> <span class="p">(</span> <span class="s2">"vdd"</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Vss</span> <span class="o">=</span> <span class="n">VssIn</span> <span class="p">(</span> <span class="s2">"vss"</span> <span class="p">)</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Netlist</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S1</span> <span class="o"><=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Cmd1</span><span class="o">.</span><span class="n">Mux</span> <span class="p">(</span> <span class="p">[</span><span class="n">sefl</span><span class="o">.</span><span class="n">A</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">B</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">C</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">D</span><span class="p">]</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S2</span> <span class="o"><=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Cmd2</span><span class="o">.</span><span class="n">Mux</span> <span class="p">(</span> <span class="p">{</span> <span class="s2">"0"</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">A</span>
|
||
<span class="p">,</span> <span class="s2">"1,5-7"</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">B</span>
|
||
<span class="p">,</span> <span class="s2">"#1?1?"</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">C</span>
|
||
<span class="p">,</span> <span class="s2">"default"</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">D</span>
|
||
<span class="p">}</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id148">
|
||
<h4>Errors<a class="headerlink" href="#id148" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Mux</span> <span class="pre">:</span> <span class="pre">all</span> <span class="pre">the</span> <span class="pre">nets</span> <span class="pre">must</span> <span class="pre">have</span> <span class="pre">the</span> <span class="pre">same</span> <span class="pre">lenght.</span></code>
|
||
All the input nets pust have the same lenght.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Mux</span> <span class="pre">:</span> <span class="pre">there</span> <span class="pre">are</span> <span class="pre">no</span> <span class="pre">input</span> <span class="pre">nets.</span></code>
|
||
The input nets seem to have been forgotten.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Mux</span> <span class="pre">:</span> <span class="pre">wrong</span> <span class="pre">argument</span> <span class="pre">type.</span></code>
|
||
The connections of the buses are not described by a list nor a
|
||
dictionnary.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Mux</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">the</span> <span class="pre">number</span> <span class="pre">of</span> <span class="pre">nets</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">match</span> <span class="pre">with</span> <span class="pre">the</span> <span class="pre">lenght</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">command.</span></code>
|
||
When using a list, the number of nets has to correspond to the
|
||
number of possible values of the command.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Mux</span> <span class="pre">:</span> <span class="pre">wrong</span> <span class="pre">key.</span></code>
|
||
One of the key of the dictionnary is not un number, neither a list
|
||
or an interval.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Mux</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">when</span> <span class="pre">an</span> <span class="pre">interval</span> <span class="pre">is</span> <span class="pre">specified,</span> <span class="pre">the</span> <span class="pre">second</span> <span class="pre">number</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">interval</span></code>
|
||
<code class="docutils literal"><span class="pre">must</span> <span class="pre">be</span> <span class="pre">greater</span> <span class="pre">than</span> <span class="pre">the</span> <span class="pre">first</span> <span class="pre">one.</span></code>
|
||
When creating an interval with “-”, the second number has to be
|
||
greater than the first one.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Mux</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">the</span> <span class="pre">binary</span> <span class="pre">number</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">match</span> <span class="pre">with</span> <span class="pre">the</span> <span class="pre">lenght</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">command.</span></code>
|
||
When using the <code class="docutils literal"><span class="pre">#</span></code> notation, each digit of the binary number
|
||
corresponds to a wire of the cmd. The leghts have to correspond.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Mux</span> <span class="pre">:</span> <span class="pre">after</span> <span class="pre">#,</span> <span class="pre">the</span> <span class="pre">number</span> <span class="pre">has</span> <span class="pre">to</span> <span class="pre">be</span> <span class="pre">binary.</span></code>
|
||
When using the <code class="docutils literal"><span class="pre">#</span></code> notation, the number has to be binary : one
|
||
can use 0, 1 or ?.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="shifter">
|
||
<h3>Shifter<a class="headerlink" href="#shifter" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id149">
|
||
<h4>Name<a class="headerlink" href="#id149" title="Permalink to this headline">¶</a></h4>
|
||
<p>Shift – Easy way to instantiate a shifter</p>
|
||
</div>
|
||
<div class="section" id="id150">
|
||
<h4>Synopsys<a class="headerlink" href="#id150" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">netOut</span> <span class="o"><=</span> <span class="n">netCmd</span><span class="o">.</span><span class="n">Shift</span> <span class="p">(</span> <span class="n">netIn</span><span class="p">,</span> <span class="n">direction</span><span class="p">,</span> <span class="nb">type</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id151">
|
||
<h4>Description<a class="headerlink" href="#id151" title="Permalink to this headline">¶</a></h4>
|
||
<p>This method is a method of net. The net which this method is applied
|
||
to is the command of the shifter, it’s the one which defines the number
|
||
of bits to shift. The net given as parameter is the input net. The other
|
||
arguments set the different patameters. The method returns a net : the
|
||
output net.
|
||
Note that it is possible to change the generator instanciated with the
|
||
<code class="docutils literal"><span class="pre">SetShift</span></code> method.</p>
|
||
</div>
|
||
<div class="section" id="id152">
|
||
<h4>Parameters<a class="headerlink" href="#id152" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">netIn</span></code> : the net which is going to be shifted</li>
|
||
<li><code class="docutils literal"><span class="pre">direction</span></code> : this string represents the direction of the shift :<ul>
|
||
<li>“left”</li>
|
||
<li>“right”</li>
|
||
</ul>
|
||
</li>
|
||
<li><code class="docutils literal"><span class="pre">type</span></code> : this string represents the type of the shift :<ul>
|
||
<li>“logical” : only “zeros” are put in the net</li>
|
||
<li>“arith” : meaningful for “right” shift, the values put in the nets
|
||
are an extension of the MSB</li>
|
||
<li>“circular” : the values put in the nets are the ones which have
|
||
just been taken off</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id153">
|
||
<h4>Example<a class="headerlink" href="#id153" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">essai</span> <span class="p">(</span> <span class="n">Model</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Interface</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">A</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"a"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Cmd</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"cmd"</span><span class="p">,</span> <span class="mi">2</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S1</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"s1"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S2</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"s2"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S3</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"s3"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Vdd</span> <span class="o">=</span> <span class="n">VddIn</span> <span class="p">(</span> <span class="s2">"vdd"</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Vss</span> <span class="o">=</span> <span class="n">VssIn</span> <span class="p">(</span> <span class="s2">"vss"</span> <span class="p">)</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Netlist</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S1</span> <span class="o"><=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Cmd</span><span class="o">.</span><span class="n">Shift</span> <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">A</span><span class="p">,</span> <span class="s2">"right"</span><span class="p">,</span> <span class="s2">"logical"</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S2</span> <span class="o"><=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Cmd</span><span class="o">.</span><span class="n">Shift</span> <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">A</span><span class="p">,</span> <span class="s2">"right"</span><span class="p">,</span> <span class="s2">"arith"</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S3</span> <span class="o"><=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Cmd</span><span class="o">.</span><span class="n">Shift</span> <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">A</span><span class="p">,</span> <span class="s2">"left"</span><span class="p">,</span> <span class="s2">"circular"</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>If the value of “a” is “0b1001” and the value of “cmd” is “0b10”, we
|
||
will have :</p>
|
||
<ul class="simple">
|
||
<li>“s1” : “0b0010”</li>
|
||
<li>“s2” : “0b1110”</li>
|
||
<li>“s3” : “0b0110”</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id154">
|
||
<h4>Errors<a class="headerlink" href="#id154" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Shift</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">The</span> <span class="pre">input</span> <span class="pre">net</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">a</span> <span class="pre">positive</span> <span class="pre">arity.</span></code>
|
||
The net which is going to be shifted must have a positive arity.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Shift</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">The</span> <span class="pre">direction</span> <span class="pre">parameter</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">"left"</span> <span class="pre">or</span> <span class="pre">"right".</span></code>
|
||
The “direction” argument is not correct.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Shift</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">The</span> <span class="pre">type</span> <span class="pre">parameter</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">"logical"</span> <span class="pre">or</span> <span class="pre">"arith"</span> <span class="pre">or</span> <span class="pre">"circular".</span></code>
|
||
The “type” argument is not correct.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="register">
|
||
<h3>Register<a class="headerlink" href="#register" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id155">
|
||
<h4>Name<a class="headerlink" href="#id155" title="Permalink to this headline">¶</a></h4>
|
||
<p>Reg – Easy way to instantiate a register</p>
|
||
</div>
|
||
<div class="section" id="id156">
|
||
<h4>Synopsys<a class="headerlink" href="#id156" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">netOut</span> <span class="o"><=</span> <span class="n">netCk</span><span class="o">.</span><span class="n">Reg</span> <span class="p">(</span> <span class="n">netIn</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id157">
|
||
<h4>Description<a class="headerlink" href="#id157" title="Permalink to this headline">¶</a></h4>
|
||
<p>This method is a method of net. The net which this method is applied
|
||
to is the clock of the register. The net given as parameter is the input
|
||
net. The method returns a net : the output net.
|
||
Note that it is possible to change the generator instanciated with the
|
||
<code class="docutils literal"><span class="pre">SetReg</span></code> method.</p>
|
||
</div>
|
||
<div class="section" id="id158">
|
||
<h4>Example<a class="headerlink" href="#id158" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">essai</span> <span class="p">(</span> <span class="n">Model</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Interface</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">A</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"a"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"s"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Ck</span> <span class="o">=</span> <span class="n">CkIn</span> <span class="p">(</span> <span class="s2">"ck"</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Vdd</span> <span class="o">=</span> <span class="n">VddIn</span> <span class="p">(</span> <span class="s2">"vdd"</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Vss</span> <span class="o">=</span> <span class="n">VssIn</span> <span class="p">(</span> <span class="s2">"vss"</span> <span class="p">)</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Netlist</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S</span> <span class="o"><=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Ck</span><span class="o">.</span><span class="n">Reg</span> <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">A</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id159">
|
||
<h4>Errors<a class="headerlink" href="#id159" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Reg</span> <span class="pre">:</span> <span class="pre">The</span> <span class="pre">input</span> <span class="pre">net</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">a</span> <span class="pre">positive</span> <span class="pre">arity.</span></code>
|
||
The input net must have a positive arity.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Reg</span> <span class="pre">:</span> <span class="pre">The</span> <span class="pre">clock</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">a</span> <span class="pre">positive</span> <span class="pre">arity.</span></code>
|
||
The clock must have a positive arity.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="constants">
|
||
<h3>Constants<a class="headerlink" href="#constants" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id160">
|
||
<h4>Name<a class="headerlink" href="#id160" title="Permalink to this headline">¶</a></h4>
|
||
<p>Constant – Easy way to instantiate constants</p>
|
||
</div>
|
||
<div class="section" id="id161">
|
||
<h4>Synopsys<a class="headerlink" href="#id161" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">netOne</span> <span class="o"><=</span> <span class="n">One</span> <span class="p">(</span> <span class="mi">2</span> <span class="p">)</span>
|
||
|
||
<span class="n">net8</span> <span class="o"><=</span> <span class="s2">"8"</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id162">
|
||
<h4>Description<a class="headerlink" href="#id162" title="Permalink to this headline">¶</a></h4>
|
||
<p>These functions simplify the way to instanciate constants.</p>
|
||
<ul class="simple">
|
||
<li>The functions <code class="docutils literal"><span class="pre">One</span></code> and<code class="docutils literal"><span class="pre">Zero</span></code> permits to initialise all the
|
||
bits of a net to ’one’ or ’zero’.</li>
|
||
<li>The instanciation of a constant thanks to a string can be done in
|
||
decimal, hecadecimal or binary.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id163">
|
||
<h4>Parameters<a class="headerlink" href="#id163" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li>For <code class="docutils literal"><span class="pre">One</span></code> and <code class="docutils literal"><span class="pre">Zero</span></code> :<ul>
|
||
<li><code class="docutils literal"><span class="pre">n</span></code> : the arity of the net</li>
|
||
</ul>
|
||
</li>
|
||
<li>For the instanciation of a constant :<ul>
|
||
<li>the constant given must be a string representing :<ul>
|
||
<li>A decimal number</li>
|
||
<li>A binary number : the string must begin with “0b”</li>
|
||
<li>An hexadecimal number : the string must begin with “0x”</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id164">
|
||
<h4>Example<a class="headerlink" href="#id164" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">essai</span> <span class="p">(</span> <span class="n">Model</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Interface</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Ones</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"ones"</span><span class="p">,</span> <span class="mi">2</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Zeros</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"zeros"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Eight</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"eight"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Twentu</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"twenty"</span><span class="p">,</span> <span class="mi">5</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Two</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"two"</span><span class="p">,</span> <span class="mi">5</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Vdd</span> <span class="o">=</span> <span class="n">VddIn</span> <span class="p">(</span> <span class="s2">"vdd"</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Vss</span> <span class="o">=</span> <span class="n">VssIn</span> <span class="p">(</span> <span class="s2">"vss"</span> <span class="p">)</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Netlist</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Ones</span> <span class="o"><=</span> <span class="n">One</span> <span class="p">(</span> <span class="mi">2</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Zero</span> <span class="o"><=</span> <span class="n">Zero</span> <span class="p">(</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Eight</span> <span class="o"><=</span> <span class="s2">"8"</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Twenty</span> <span class="o"><=</span> <span class="s2">"0x14"</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Two</span> <span class="o"><=</span> <span class="s2">"0b10"</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id165">
|
||
<h4>Errors<a class="headerlink" href="#id165" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Const</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">the</span> <span class="pre">argument</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">a</span> <span class="pre">string</span> <span class="pre">representing</span> <span class="pre">a</span> <span class="pre">number</span> <span class="pre">in</span> <span class="pre">decimal,</span></code>
|
||
<code class="docutils literal"><span class="pre">binary</span> <span class="pre">(0b)</span> <span class="pre">or</span> <span class="pre">hexa</span> <span class="pre">(0x).</span></code>
|
||
The string given as argument does not have the right form.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="boolean-operations">
|
||
<h3>Boolean operations<a class="headerlink" href="#boolean-operations" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id166">
|
||
<h4>Description<a class="headerlink" href="#id166" title="Permalink to this headline">¶</a></h4>
|
||
<p>Most common boolean operators can be instantiated without the <code class="docutils literal"><span class="pre">Inst</span></code>
|
||
constructor.</p>
|
||
</div>
|
||
<div class="section" id="list">
|
||
<h4>List<a class="headerlink" href="#list" title="Permalink to this headline">¶</a></h4>
|
||
<p>Boolean operators are listed below :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">And2</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i0</span> <span class="pre">&</span> <span class="pre">i1</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">Or2</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i0</span> <span class="pre">|</span> <span class="pre">i1</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">Xor2</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i0</span> <span class="pre">^</span> <span class="pre">i1</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">Inv</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">~i0</span></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="generators-to-instantiate">
|
||
<h4>Generators to instantiate<a class="headerlink" href="#generators-to-instantiate" title="Permalink to this headline">¶</a></h4>
|
||
<p>One can choose the generator to be used. Some methods are applied to
|
||
the cell and set the generator used when using <code class="docutils literal"><span class="pre">&</span></code>, <code class="docutils literal"><span class="pre">|</span></code>, <code class="docutils literal"><span class="pre">^</span></code> and
|
||
<code class="docutils literal"><span class="pre">~</span></code>. The generators used by default are the ones from the virtual
|
||
library.</p>
|
||
<p>Methods are :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">SetAnd</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">SetOr</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">SetXor</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">SetNot</span></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id167">
|
||
<h4>Example<a class="headerlink" href="#id167" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">essai</span> <span class="p">(</span> <span class="n">Model</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Interface</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">A</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"a"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">B</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"b"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">B</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"c"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"s"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">vdd</span> <span class="o">=</span> <span class="n">VddIn</span> <span class="p">(</span> <span class="s2">"vdd"</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">vss</span> <span class="o">=</span> <span class="n">VssIn</span> <span class="p">(</span> <span class="s2">"vss"</span> <span class="p">)</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Netlist</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S</span> <span class="o"><=</span> <span class="p">(</span> <span class="o">~</span><span class="bp">self</span><span class="o">.</span><span class="n">A</span> <span class="o">&</span> <span class="bp">self</span><span class="o">.</span><span class="n">B</span> <span class="p">)</span> <span class="o">|</span> <span class="bp">self</span><span class="o">.</span><span class="n">C</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id168">
|
||
<h4>Errors<a class="headerlink" href="#id168" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">&</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">nets</span> <span class="pre">must</span> <span class="pre">have</span> <span class="pre">the</span> <span class="pre">same</span> <span class="pre">lenght.</span></code>
|
||
When one uses boolean expressions, one has to check that the sizes
|
||
of both nets are equivalent.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">:</span> <span class="pre">there</span> <span class="pre">is</span> <span class="pre">no</span> <span class="pre">alim.</span></code>
|
||
The cell being created does not have the alimentation nets. The
|
||
instanciation is impossible.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="arithmetical-operations">
|
||
<h3>Arithmetical operations<a class="headerlink" href="#arithmetical-operations" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id169">
|
||
<h4>Description<a class="headerlink" href="#id169" title="Permalink to this headline">¶</a></h4>
|
||
<p>Most common arithmetic operators can be instantiated without the
|
||
<code class="docutils literal"><span class="pre">Inst</span></code> constructor.</p>
|
||
</div>
|
||
<div class="section" id="id170">
|
||
<h4>List<a class="headerlink" href="#id170" title="Permalink to this headline">¶</a></h4>
|
||
<p>Arithmetical operators are listed below :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">Addition</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i0</span> <span class="pre">+</span> <span class="pre">i1</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">Substraction</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i0</span></code> - <code class="docutils literal"><span class="pre">i1</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">Multiplication</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i0</span> <span class="pre">*</span> <span class="pre">i1</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">Division</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i0</span> <span class="pre">/</span> <span class="pre">i1</span></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id171">
|
||
<h4>Generators to instantiate<a class="headerlink" href="#id171" title="Permalink to this headline">¶</a></h4>
|
||
<p>One can choose the generator to be used. Some methods are applied to the
|
||
cell and set the generator used when using overloard. Methods are :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">SetAdd</span></code> (for addition and substraction)</li>
|
||
<li><code class="docutils literal"><span class="pre">SetMult</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">SetDiv</span></code></li>
|
||
</ul>
|
||
<p>The generators used by default are :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">Addition</span></code> : Slansky adder</li>
|
||
<li><code class="docutils literal"><span class="pre">Substraction</span></code> : Slansky adder + inversor + cin = ’1’</li>
|
||
<li><code class="docutils literal"><span class="pre">Multiplication</span></code> : CA2 multiplier (signed, modified booth/Wallace
|
||
tree)</li>
|
||
<li><code class="docutils literal"><span class="pre">Division</span></code> : not available yet</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id172">
|
||
<h4>Example<a class="headerlink" href="#id172" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">essai</span> <span class="p">(</span> <span class="n">Model</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Interface</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">A</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"a"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">B</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"b"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"s"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">T</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"t"</span><span class="p">,</span> <span class="mi">8</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">vdd</span> <span class="o">=</span> <span class="n">VddIn</span> <span class="p">(</span> <span class="s2">"vdd"</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">vss</span> <span class="o">=</span> <span class="n">VssIn</span> <span class="p">(</span> <span class="s2">"vss"</span> <span class="p">)</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Netlist</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S</span> <span class="o"><=</span> <span class="bp">self</span><span class="o">.</span><span class="n">A</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">B</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">T</span> <span class="o"><=</span> <span class="bp">self</span><span class="o">.</span><span class="n">A</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">B</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id173">
|
||
<h4>Errors<a class="headerlink" href="#id173" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">+</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">nets</span> <span class="pre">must</span> <span class="pre">have</span> <span class="pre">the</span> <span class="pre">same</span> <span class="pre">lenght.</span></code>
|
||
When one uses arithmetic expressions, one has to check that the
|
||
sizes of both nets are equivalent.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">:</span> <span class="pre">there</span> <span class="pre">is</span> <span class="pre">no</span> <span class="pre">alim.</span></code>
|
||
The cell being created does not have the alimentation nets. The
|
||
instanciation is impossible.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="comparison-operations">
|
||
<h3>Comparison operations<a class="headerlink" href="#comparison-operations" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id174">
|
||
<h4>Name<a class="headerlink" href="#id174" title="Permalink to this headline">¶</a></h4>
|
||
<p>Eq/Ne : Easy way to test the value of the nets</p>
|
||
</div>
|
||
<div class="section" id="id175">
|
||
<h4>Synopsys<a class="headerlink" href="#id175" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">netOut</span> <span class="o"><=</span> <span class="n">net</span><span class="o">.</span><span class="n">Eq</span> <span class="p">(</span> <span class="s2">"n"</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id176">
|
||
<h4>Description<a class="headerlink" href="#id176" title="Permalink to this headline">¶</a></h4>
|
||
<p>Comparaison functions are listed below :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">Eq</span></code> : returns <code class="docutils literal"><span class="pre">true</span></code> if the value of the net is equal to <code class="docutils literal"><span class="pre">n</span></code>.</li>
|
||
<li><code class="docutils literal"><span class="pre">Ne</span></code> : returns <code class="docutils literal"><span class="pre">true</span></code> if the value of the net is different from
|
||
<code class="docutils literal"><span class="pre">n</span></code>.</li>
|
||
</ul>
|
||
<p>Note that it is possible to change the generator instanciated with the
|
||
<code class="docutils literal"><span class="pre">SetComp</span></code> method.</p>
|
||
</div>
|
||
<div class="section" id="id177">
|
||
<h4>Parameters<a class="headerlink" href="#id177" title="Permalink to this headline">¶</a></h4>
|
||
<p>The constant given as argument must be a string representing :</p>
|
||
<ul class="simple">
|
||
<li>A decimal number</li>
|
||
<li>A binary number : the string must begin with “0b”</li>
|
||
<li>An hexadecimal number : the string must begin with “0x”</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id178">
|
||
<h4>Example<a class="headerlink" href="#id178" title="Permalink to this headline">¶</a></h4>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">essai</span> <span class="p">(</span> <span class="n">Model</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Interface</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">A</span> <span class="o">=</span> <span class="n">SignalIn</span> <span class="p">(</span> <span class="s2">"a"</span><span class="p">,</span> <span class="mi">4</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"s"</span><span class="p">,</span> <span class="mi">1</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">T</span> <span class="o">=</span> <span class="n">SignalOut</span> <span class="p">(</span> <span class="s2">"t"</span><span class="p">,</span> <span class="mi">1</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">vdd</span> <span class="o">=</span> <span class="n">VddIn</span> <span class="p">(</span> <span class="s2">"vdd"</span> <span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">vss</span> <span class="o">=</span> <span class="n">VssIn</span> <span class="p">(</span> <span class="s2">"vss"</span> <span class="p">)</span>
|
||
|
||
<span class="k">def</span> <span class="nf">Netlist</span> <span class="p">(</span> <span class="bp">self</span> <span class="p">)</span> <span class="p">:</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S</span> <span class="o"><=</span> <span class="bp">self</span><span class="o">.</span><span class="n">A</span><span class="o">.</span><span class="n">Eq</span> <span class="p">(</span> <span class="s2">"4"</span> <span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">T</span> <span class="o"><=</span> <span class="bp">self</span><span class="o">.</span><span class="n">A</span><span class="o">.</span><span class="n">Ne</span> <span class="p">(</span> <span class="s2">"1"</span> <span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id179">
|
||
<h4>Errors<a class="headerlink" href="#id179" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Eq</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">the</span> <span class="pre">number</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">match</span> <span class="pre">with</span> <span class="pre">the</span> <span class="pre">net's</span> <span class="pre">lenght.</span></code>
|
||
When one uses comparaison functions on one net, one has to check
|
||
that the number corresponds to the size of the net.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Eq</span> <span class="pre">:</span></code>
|
||
<code class="docutils literal"><span class="pre">the</span> <span class="pre">argument</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">a</span> <span class="pre">string</span> <span class="pre">representing</span> <span class="pre">a</span> <span class="pre">number</span> <span class="pre">in</span> <span class="pre">decimal,</span></code>
|
||
<code class="docutils literal"><span class="pre">binary</span> <span class="pre">(0b)</span> <span class="pre">or</span> <span class="pre">hexa</span> <span class="pre">(0x).</span></code>
|
||
The string given as argument does not have the right form.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="virtual-library">
|
||
<h3>Virtual library<a class="headerlink" href="#virtual-library" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="id180">
|
||
<h4>Description<a class="headerlink" href="#id180" title="Permalink to this headline">¶</a></h4>
|
||
<p>The virtual library permits to create a cell and map it to different
|
||
libraries without having to change it.</p>
|
||
</div>
|
||
<div class="section" id="list-of-the-generators-provided">
|
||
<h4>List of the generators provided<a class="headerlink" href="#list-of-the-generators-provided" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">a2</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i0</span> <span class="pre">&</span> <span class="pre">i1</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">a3</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i0</span> <span class="pre">&</span> <span class="pre">i1</span> <span class="pre">&</span> <span class="pre">i2</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">a4</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i0</span> <span class="pre">&</span> <span class="pre">i1</span> <span class="pre">&</span> <span class="pre">i2</span> <span class="pre">&</span> <span class="pre">i3</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">na2</span></code> : <code class="docutils literal"><span class="pre">nq</span> <span class="pre"><=</span> <span class="pre">~</span> <span class="pre">(</span> <span class="pre">i0</span> <span class="pre">&</span> <span class="pre">i1</span> <span class="pre">)</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">na3</span></code> : <code class="docutils literal"><span class="pre">nq</span> <span class="pre"><=</span> <span class="pre">~</span> <span class="pre">(</span> <span class="pre">i0</span> <span class="pre">&</span> <span class="pre">i1</span> <span class="pre">&</span> <span class="pre">i2</span> <span class="pre">)</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">na4</span></code> : <code class="docutils literal"><span class="pre">nq</span> <span class="pre"><=</span> <span class="pre">~</span> <span class="pre">(</span> <span class="pre">i0</span> <span class="pre">&</span> <span class="pre">i1</span> <span class="pre">&</span> <span class="pre">i2</span> <span class="pre">&</span> <span class="pre">i3</span> <span class="pre">)</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">o2</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i0</span> <span class="pre">&</span> <span class="pre">i1</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">o3</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i0</span> <span class="pre">&</span> <span class="pre">i1</span> <span class="pre">&</span> <span class="pre">i2</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">o4</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i0</span> <span class="pre">&</span> <span class="pre">i1</span> <span class="pre">&</span> <span class="pre">i2</span> <span class="pre">&</span> <span class="pre">i3</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">no2</span></code> : <code class="docutils literal"><span class="pre">nq</span> <span class="pre"><=</span> <span class="pre">~</span> <span class="pre">(</span> <span class="pre">i0</span> <span class="pre">&</span> <span class="pre">i1</span> <span class="pre">)</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">no3</span></code> : <code class="docutils literal"><span class="pre">nq</span> <span class="pre"><=</span> <span class="pre">~</span> <span class="pre">(</span> <span class="pre">i0</span> <span class="pre">&</span> <span class="pre">i1</span> <span class="pre">&</span> <span class="pre">i2</span> <span class="pre">)</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">no4</span></code> : <code class="docutils literal"><span class="pre">nq</span> <span class="pre"><=</span> <span class="pre">~</span> <span class="pre">(</span> <span class="pre">i0</span> <span class="pre">&</span> <span class="pre">i1</span> <span class="pre">&</span> <span class="pre">i2</span> <span class="pre">&</span> <span class="pre">i3</span> <span class="pre">)</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">inv</span></code> : <code class="docutils literal"><span class="pre">nq</span> <span class="pre"><=</span> <span class="pre">~</span> <span class="pre">i</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">buf</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">xr2</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i0</span> <span class="pre">^</span> <span class="pre">i1</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">nxr2</span></code> : <code class="docutils literal"><span class="pre">nq</span> <span class="pre"><=</span> <span class="pre">~</span> <span class="pre">(</span> <span class="pre">i0</span> <span class="pre">^</span> <span class="pre">i1</span> <span class="pre">)</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">zero</span></code> : <code class="docutils literal"><span class="pre">nq</span> <span class="pre"><=</span> <span class="pre">'0'</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">one</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">'1'</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">halfadder</span></code> : <code class="docutils literal"><span class="pre">sout</span> <span class="pre"><=</span> <span class="pre">a</span> <span class="pre">^</span> <span class="pre">b</span></code> and <code class="docutils literal"><span class="pre">cout</span> <span class="pre"><=</span> <span class="pre">a</span> <span class="pre">&</span> <span class="pre">b</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">fulladder</span></code> : <code class="docutils literal"><span class="pre">sout</span> <span class="pre"><=</span> <span class="pre">a</span> <span class="pre">^</span> <span class="pre">b</span> <span class="pre">^</span> <span class="pre">cin</span></code>
|
||
and <code class="docutils literal"><span class="pre">cout</span> <span class="pre"><=</span> <span class="pre">(</span> <span class="pre">a</span> <span class="pre">&</span> <span class="pre">b</span> <span class="pre">)</span> <span class="pre">|</span> <span class="pre">(</span> <span class="pre">a</span> <span class="pre">&</span> <span class="pre">cin</span> <span class="pre">)</span> <span class="pre">|</span> <span class="pre">(</span> <span class="pre">b</span> <span class="pre">&</span> <span class="pre">cin</span> <span class="pre">)</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">mx2</span></code> : <code class="docutils literal"><span class="pre">q</span> <span class="pre"><=</span> <span class="pre">(i0</span> <span class="pre">&</span> <span class="pre">~cmd)</span> <span class="pre">|</span> <span class="pre">(i1</span> <span class="pre">&</span> <span class="pre">cmd)</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">nmx2</span></code> : <code class="docutils literal"><span class="pre">nq</span> <span class="pre"><=</span> <span class="pre">~(</span> <span class="pre">(i0</span> <span class="pre">&</span> <span class="pre">~cmd)</span> <span class="pre">|</span> <span class="pre">(i1</span> <span class="pre">&</span> <span class="pre">cmd)</span> <span class="pre">)</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">sff</span></code> : <code class="docutils literal"><span class="pre">if</span> <span class="pre">RISE</span> <span class="pre">(</span> <span class="pre">ck</span> <span class="pre">)</span> <span class="pre">:</span> <span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">sff2</span></code> : <code class="docutils literal"><span class="pre">if</span> <span class="pre">RISE</span> <span class="pre">(</span> <span class="pre">ck</span> <span class="pre">)</span> <span class="pre">:</span> <span class="pre">q</span> <span class="pre"><=</span> <span class="pre">(i0</span> <span class="pre">&</span> <span class="pre">~cmd)</span> <span class="pre">|</span> <span class="pre">(i1</span> <span class="pre">&</span> <span class="pre">cmd)</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">sff3</span></code> : <code class="docutils literal"><span class="pre">if</span> <span class="pre">RISE</span> <span class="pre">(</span> <span class="pre">ck</span> <span class="pre">)</span> <span class="pre">:</span></code>
|
||
`` q <= (i0 & ~cmd0) | (((i1 & cmd1)|(i2&~cmd1)) & cmd0)``</li>
|
||
<li><code class="docutils literal"><span class="pre">ts</span></code> : <code class="docutils literal"><span class="pre">if</span> <span class="pre">cmd</span> <span class="pre">:</span> <span class="pre">q</span> <span class="pre"><=</span> <span class="pre">i</span></code></li>
|
||
<li><code class="docutils literal"><span class="pre">nts</span></code> : <code class="docutils literal"><span class="pre">if</span> <span class="pre">cmd</span> <span class="pre">:</span> <span class="pre">nq</span> <span class="pre"><=</span> <span class="pre">~i</span></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="mapping-file">
|
||
<h4>Mapping file<a class="headerlink" href="#mapping-file" title="Permalink to this headline">¶</a></h4>
|
||
<p>The virtual library is mapped to the sxlib library. A piece of the
|
||
corresponding mapping file is shown below.
|
||
In order to map the virtual library to another library, on has to
|
||
write a .xml file which makes correspond models and interfaces.
|
||
Note that the interfaces of the cells must be the same (except for the
|
||
names of the ports). Otherwise, one has to create .vst file in order to
|
||
make the interfaces match.</p>
|
||
<p>The environment variable used to point the right file is
|
||
<code class="docutils literal"><span class="pre">STRATUS_MAPPING_NAME</span></code>.</p>
|
||
<p><img alt="xml" src="../_images/xml.png" /></p>
|
||
</div>
|
||
<div class="section" id="id181">
|
||
<h4>Generators<a class="headerlink" href="#id181" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some generators are also provided in order to use the cells of the
|
||
library with nets of more than 1 bit. One has to upper the first letter
|
||
of the model name in order to user those generators. What is simply done
|
||
is a for loop with the bits of the nets. The parameter <code class="docutils literal"><span class="pre">'nbit'</span></code> gives
|
||
the size of the generator.</p>
|
||
</div>
|
||
<div class="section" id="id182">
|
||
<h4>Example<a class="headerlink" href="#id182" title="Permalink to this headline">¶</a></h4>
|
||
<ul class="simple">
|
||
<li>Direct instanciation of a cell</li>
|
||
</ul>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span> <span class="p">(</span> <span class="mi">4</span> <span class="p">)</span> <span class="p">:</span>
|
||
<span class="n">Inst</span> <span class="p">(</span> <span class="s1">'a2'</span>
|
||
<span class="p">,</span> <span class="nb">map</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">'i0'</span> <span class="p">:</span> <span class="n">neti0</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
||
<span class="p">,</span> <span class="s1">'i1'</span> <span class="p">:</span> <span class="n">neti1</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
||
<span class="p">,</span> <span class="s1">'q'</span> <span class="p">:</span> <span class="n">netq</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
||
<span class="p">,</span> <span class="s1">'vdd'</span> <span class="p">:</span> <span class="n">netvdd</span>
|
||
<span class="p">,</span> <span class="s1">'vss'</span> <span class="p">:</span> <span class="n">netvss</span>
|
||
<span class="p">}</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<ul class="simple">
|
||
<li>Instanciation of a generator</li>
|
||
</ul>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Generate</span> <span class="p">(</span> <span class="s1">'A2'</span><span class="p">,</span> <span class="s2">"my_and2_4bits"</span><span class="p">,</span> <span class="n">param</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">'nbit'</span> <span class="p">:</span> <span class="mi">4</span> <span class="p">}</span> <span class="p">)</span>
|
||
<span class="n">Inst</span> <span class="p">(</span> <span class="s1">'my_and2_4bits'</span>
|
||
<span class="p">,</span> <span class="nb">map</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">'i0'</span> <span class="p">:</span> <span class="n">neti0</span>
|
||
<span class="p">,</span> <span class="s1">'i1'</span> <span class="p">:</span> <span class="n">neti1</span>
|
||
<span class="p">,</span> <span class="s1">'q'</span> <span class="p">:</span> <span class="n">netq</span>
|
||
<span class="p">,</span> <span class="s1">'vdd'</span> <span class="p">:</span> <span class="n">vdd</span>
|
||
<span class="p">,</span> <span class="s1">'vss'</span> <span class="p">:</span> <span class="n">vss</span>
|
||
<span class="p">}</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="id183">
|
||
<h4>Errors<a class="headerlink" href="#id183" title="Permalink to this headline">¶</a></h4>
|
||
<p>Some errors may occur :</p>
|
||
<ul class="simple">
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Inst</span> <span class="pre">:</span> <span class="pre">the</span> <span class="pre">model</span> <span class="pre">...</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist.</span></code>
|
||
<code class="docutils literal"><span class="pre">Check</span> <span class="pre">CRL_CATA_LIB.</span></code>
|
||
The model of the cell has not been found. One has to check the
|
||
environment variable.</li>
|
||
<li><code class="docutils literal"><span class="pre">[Stratus</span> <span class="pre">ERROR]</span> <span class="pre">Virtual</span> <span class="pre">library</span> <span class="pre">:</span> <span class="pre">No</span> <span class="pre">file</span> <span class="pre">found</span> <span class="pre">in</span> <span class="pre">order</span> <span class="pre">to</span> <span class="pre">parse.</span></code>
|
||
<code class="docutils literal"><span class="pre">Check</span> <span class="pre">STRATUS_MAPPING_NAME.</span></code>
|
||
The mapping file is not given in the environment variable.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="useful-links">
|
||
<h2>Useful links<a class="headerlink" href="#useful-links" title="Permalink to this headline">¶</a></h2>
|
||
<div class="section" id="dpgen-generators">
|
||
<h3>DpGen generators<a class="headerlink" href="#dpgen-generators" title="Permalink to this headline">¶</a></h3>
|
||
<p>You can find the documentation of the DPGEN library at :
|
||
<a class="reference external" href="file:./DpGen.html">file:./DpGen.html</a></p>
|
||
</div>
|
||
<div class="section" id="arithmetic-package-of-stratus">
|
||
<h3>Arithmetic package of stratus<a class="headerlink" href="#arithmetic-package-of-stratus" title="Permalink to this headline">¶</a></h3>
|
||
<p>You can find the documentation of the arithmetic stratus’s package at:
|
||
<a class="reference external" href="file:////users/outil/arith/latest/modules_stratus/arithmetic/doc/arith/index.html">file:////users/outil/arith/latest/modules_stratus/arithmetic/doc/arith/index.html</a></p>
|
||
</div>
|
||
<div class="section" id="arithmetic-generators-and-some-stratus-packages">
|
||
<h3>Arithmetic generators and some stratus packages<a class="headerlink" href="#arithmetic-generators-and-some-stratus-packages" title="Permalink to this headline">¶</a></h3>
|
||
<p>You can find the documentation of the arithmetic library at :
|
||
<a class="reference external" href="file:////users/outil/arith/latest/doc/index.html">file:////users/outil/arith/latest/doc/index.html</a></p>
|
||
</div>
|
||
<div class="section" id="patterns-module">
|
||
<h3>Patterns module<a class="headerlink" href="#patterns-module" title="Permalink to this headline">¶</a></h3>
|
||
<p>You can find the documentation of the patterns module :
|
||
<a class="reference external" href="file:../patterns/index.html">file:../patterns/index.html</a></p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
<footer>
|
||
|
||
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||
|
||
<a href="Developper.html" class="btn btn-neutral float-right" title="Stratus Developper’s Guide" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||
|
||
|
||
<a href="index.html" class="btn btn-neutral" title="Stratus : Netlist Capture Language" 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>
|
||
© 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> |