2017-07-15 10:35:02 -05:00
<!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 > Symbolic Layout — Coriolis 2 documentation< / title >
< link rel = "stylesheet" href = "../_static/SoC.css" type = "text/css" / >
2017-10-30 09:33:37 -05:00
< link rel = "index" title = "Index"
href="../genindex.html"/>
< link rel = "search" title = "Search" href = "../search.html" / >
2017-07-15 10:35:02 -05:00
< link rel = "top" title = "Coriolis 2 documentation" href = "../index.html" / >
< link rel = "up" title = "Symbolic to Real Conversion in Alliance" href = "index.html" / >
2017-10-30 09:33:37 -05:00
< link rel = "next" title = "LEF API Reference" href = "../lefapi/lefapi.html" / >
2017-07-15 10:35:02 -05:00
< link rel = "prev" title = "Symbolic to Real Conversion in Alliance" 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" > < strong > Release v2.2< / strong > < / a > < / li >
< / ul >
< / 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#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#building-the-devel-branch" > Building the Devel Branch< / 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 >
2017-11-17 05:04:33 -06:00
< li class = "toctree-l3" > < a class = "reference internal" href = "../UsersGuide/Configuration.html#first-stage-technology-selection" > First Stage: Technology Selection< / a > < / li >
2017-07-15 10:35:02 -05:00
< li class = "toctree-l3" > < a class = "reference internal" href = "../UsersGuide/Configuration.html#second-stage-technology-configuration-loading" > Second Stage: Technology Configuration Loading< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "../UsersGuide/Configuration.html#configuration-helpers" > Configuration Helpers< / a > < ul >
< li class = "toctree-l4" > < a class = "reference internal" href = "../UsersGuide/Configuration.html#alliance-helper" > < span class = "sc" > Alliance< / span > Helper< / a > < / li >
< li class = "toctree-l4" > < a class = "reference internal" href = "../UsersGuide/Configuration.html#tools-configuration-helpers" > Tools Configuration Helpers< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "../UsersGuide/Configuration.html#hacking-the-configuration-files" > Hacking the Configuration Files< / 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#knik-global-router" > Knik – Global Router< / a > < / li >
< li class = "toctree-l4" > < a class = "reference internal" href = "../UsersGuide/ViewerTools.html#kite-detailed-router" > Kite – 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 = "../Stratus/Stratus.html" > Stratus Reference< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../DpGen/DpGen.html" > DpGen Reference< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../Patterns/Patterns.html" > Patterns Reference< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../Hurricane/Hurricane.html" > Hurricane Reference< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../Viewer/Viewer.html" > Viewer Reference< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../CrlCore/CrlCore.html" > CRL Core Reference< / a > < / li >
2017-07-17 12:12:18 -05:00
< 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 >
2017-07-15 10:35:02 -05:00
< 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 current" > < a class = "reference internal" href = "index.html" > Symbolic to Real Conversion in Alliance< / a > < ul class = "current" >
2017-10-30 09:33:37 -05:00
< li class = "toctree-l2 current" > < a class = "current reference internal" href = "#" > Symbolic Layout< / a > < ul >
2017-07-15 10:35:02 -05:00
< li class = "toctree-l3" > < a class = "reference internal" href = "#symbolic-components" > Symbolic Components< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#symbolic-segments" > Symbolic Segments< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#the-rds-file" > The RDS File< / a > < ul >
< li class = "toctree-l3" > < a class = "reference internal" href = "#physical-grid-lambda-value" > Physical Grid & Lambda Value< / a > < / li >
2017-10-30 09:33:37 -05:00
< li class = "toctree-l3" > < a class = "reference internal" href = "#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 = "#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 = "#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 = "#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 = "#the-mbk-wiresetting-table" > The < code class = "docutils literal" > < span class = "pre" > MBK_WIRESETTING< / span > < / code > table< / a > < / li >
2017-07-15 10:35:02 -05:00
< / ul >
< / li >
< / ul >
< / li >
2017-11-17 05:04:33 -06:00
< 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 >
2017-10-30 09:33:37 -05:00
< 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 >
2017-07-15 10:35:02 -05:00
< / 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" > Symbolic to Real Conversion in Alliance< / a > » < / li >
< li > Symbolic Layout< / li >
< li class = "wy-breadcrumbs-aside" >
< / li >
< / ul >
< hr / >
< / div >
< div role = "main" class = "document" >
< p > < / p >
< div class = "section" id = "symbolic-layout" >
< h1 > Symbolic Layout< a class = "headerlink" href = "#symbolic-layout" title = "Permalink to this headline" > ¶< / a > < / h1 >
< div class = "section" id = "symbolic-components" >
< h2 > Symbolic Components< a class = "headerlink" href = "#symbolic-components" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > A symbolic layout is, in practice, made of only of three objects:< / p >
< table border = "1" class = "docutils" >
< colgroup >
< col width = "30%" / >
< col width = "13%" / >
< col width = "57%" / >
< / colgroup >
< thead valign = "bottom" >
< tr class = "row-odd" > < th class = "head" > Object< / th >
< th class = "head" > < span class = "sc" > mbk< / span > < / th >
< th class = "head" > Explanation< / th >
< / tr >
< / thead >
< tbody valign = "top" >
< tr class = "row-even" > < td > Segments< / td >
2017-10-30 09:33:37 -05:00
< td > < code class = "docutils literal" > < span class = "pre" > phseg< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > Oriented segments with a width and an orientation.< / td >
< / tr >
< tr class = "row-odd" > < td > VIAs & contacts< / td >
2017-10-30 09:33:37 -05:00
< td > < code class = "docutils literal" > < span class = "pre" > phvia< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > Boils down to just a point.< / td >
< / tr >
< tr class = "row-even" > < td > Big VIAs & Big Contacts< / td >
2017-10-30 09:33:37 -05:00
< td > < code class = "docutils literal" > < span class = "pre" > phvia< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > Point with a width and a height
That is a rectangle of width by height centered
on the VIA coordinates.< / td >
< / tr >
< / tbody >
< / table >
< p > Each of thoses objects is associated to a < em > symbolic layer< / em > which will
control how the object is translated in many < em > real rectangles< / em > .< / p >
< table border = "1" class = "docutils" >
< colgroup >
< col width = "11%" / >
< col width = "19%" / >
< col width = "16%" / >
< col width = "54%" / >
< / colgroup >
< thead valign = "bottom" >
< tr class = "row-odd" > < th class = "head" > < span class = "sc" > mbk< / span > < / th >
< th class = "head" > Layer Name< / th >
< th class = "head" > Usable By< / th >
< th class = "head" > Usage< / th >
< / tr >
< / thead >
< tbody valign = "top" >
2017-10-30 09:33:37 -05:00
< tr class = "row-even" > < td rowspan = "12" > < code class = "docutils literal" > < span class = "pre" > phseg< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > < span class = "sc" > nwell< / span > < / td >
< td > Segment< / td >
< td > N Well< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-odd" > < td > < code class = "docutils literal" > < span class = "pre" > PWELL< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > Segment< / td >
< td > P Well< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-even" > < td > < code class = "docutils literal" > < span class = "pre" > NDIF< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > Segment< / td >
< td > N Diffusion< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-odd" > < td > < code class = "docutils literal" > < span class = "pre" > PDIF< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > Segment< / td >
< td > P Diffusion< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-even" > < td > < code class = "docutils literal" > < span class = "pre" > NTIE< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > Segment< / td >
< td > N Tie< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-odd" > < td > < code class = "docutils literal" > < span class = "pre" > PTIE< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > Segment< / td >
< td > P Tie< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-even" > < td > < code class = "docutils literal" > < span class = "pre" > NTRANS< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > Segment< / td >
< td > N transistor, in < span class = "sc" > Alliance< / span > , a transistor
is represented as a segment (it’ s grid).< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-odd" > < td > < code class = "docutils literal" > < span class = "pre" > PTRANS< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > Segment< / td >
< td > P transistor< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-even" > < td > < code class = "docutils literal" > < span class = "pre" > POLY< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > Segment< / td >
< td > Polysilicium< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-odd" > < td > < code class = "docutils literal" > < span class = "pre" > ALUx< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > Segment< / td >
< td > Metal level < em > x< / em > < / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-even" > < td > < code class = "docutils literal" > < span class = "pre" > CALUx< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > Segment< / td >
< td > Metal level < em > x< / em > , that can be used by the
upper hierarchical level as a connector.
From the layout point of view it is the
2017-10-30 09:33:37 -05:00
same as < code class = "docutils literal" > < span class = "pre" > ALUx< / span > < / code > .< / td >
2017-07-15 10:35:02 -05:00
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-odd" > < td > < code class = "docutils literal" > < span class = "pre" > TALUx< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > Segment< / td >
< td > Blockage for metal level < em > x< / em > . Will
diseappear in the real layout as it is an
information for the P& R tools only.< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-even" > < td rowspan = "9" > < code class = "docutils literal" > < span class = "pre" > phvia< / span > < / code > < / td >
< td > < code class = "docutils literal" > < span class = "pre" > CONT_BODY_N< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > VIA, BIGVIA< / td >
< td > Contact to N Well< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-odd" > < td > < code class = "docutils literal" > < span class = "pre" > CONT_BODY_P< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > VIA, BIGVIA< / td >
< td > Contact to P Well< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-even" > < td > < code class = "docutils literal" > < span class = "pre" > CONT_DIF_N< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > VIA, BIGVIA< / td >
< td > Contact to N Diffusion< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-odd" > < td > < code class = "docutils literal" > < span class = "pre" > CONT_DIF_P< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > VIA, BIGVIA< / td >
< td > Contact to P Diffusion< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-even" > < td > < code class = "docutils literal" > < span class = "pre" > CONT_POLY< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > VIA, BIGVIA< / td >
< td > Contact to polysilicium< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-odd" > < td > < code class = "docutils literal" > < span class = "pre" > CONT_VIA< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > VIA, BIGVIA< / td >
< td > Contact between metal1 and metal2< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-even" > < td > < code class = "docutils literal" > < span class = "pre" > CONT_VIAx< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > VIA, BIGVIA< / td >
< td > Contact between metal < em > x< / em > and metal < em > x+1< / em > .
The index is the the one of the bottom
metal of the VIA.< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-odd" > < td > < code class = "docutils literal" > < span class = "pre" > C_X_N< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > VIA< / td >
< td > N transistor corner, to build transistor
bend. Not used anymore in recent technos< / td >
< / tr >
2017-10-30 09:33:37 -05:00
< tr class = "row-even" > < td > < code class = "docutils literal" > < span class = "pre" > C_X_P< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< td > VIA< / td >
< td > P transistor corner, to build transistor
bend. Not used anymore in recent technos< / td >
< / tr >
< / tbody >
< / table >
< div class = "admonition note" >
< p class = "first admonition-title" > Note< / p >
< p class = "last" > Not all association of object and symbolic layers are meaningful.
2017-10-30 09:33:37 -05:00
For instance you cannot associate a contact to a < code class = "docutils literal" > < span class = "pre" > NTRANS< / span > < / code > layer.< / p >
2017-07-15 10:35:02 -05:00
< / div >
< div class = "admonition note" >
< p class = "first admonition-title" > Note< / p >
2017-10-30 09:33:37 -05:00
< p class = "last" > The symbolic layer associated with blockages is prefixed by a < code class = "docutils literal" > < span class = "pre" > T< / span > < / code > ,
2017-07-15 10:35:02 -05:00
for < em > transparency< / em > , which may seems silly. It is for historical reasons,
it started as a true transparency, but at some point we had to invert
the meaning (blockage) with the rise of over-the-cell routing, but the
name stuck...< / p >
< / div >
< / div >
< div class = "section" id = "symbolic-segments" >
< h2 > Symbolic Segments< a class = "headerlink" href = "#symbolic-segments" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > In < span class = "sc" > Alliance< / span > , segments are oriented (up, down, left, right). This disambiguate
2017-10-30 09:33:37 -05:00
the left or right side when using the < code class = "docutils literal" > < span class = "pre" > LCW< / span > < / code > and < code class = "docutils literal" > < span class = "pre" > RCW< / span > < / code > rules in the < span class = "sc" > rds< / span > file.
2017-07-15 10:35:02 -05:00
It allows to generate, if needed, asymetric object in the real layout file.< / p >
2017-10-30 09:33:37 -05:00
< p > < a class = "reference internal" href = "../_images/SegmentOrientation.png" > < img alt = "Symbolic Segment Orientations" class = "align-middle" src = "../_images/SegmentOrientation.png" style = "width: 50%;" / > < / a > < / p >
2017-07-15 10:35:02 -05:00
< p > < / p >
< / div >
< / div >
< div class = "section" id = "the-rds-file" >
< h1 > The RDS File< a class = "headerlink" href = "#the-rds-file" title = "Permalink to this headline" > ¶< / a > < / h1 >
< p > The RDS file control how a symbolic layout is transformed into it’ s real
conterpart.< / p >
< div class = "admonition note" >
< p class = "first admonition-title" > Note< / p >
< p class = "last" > < strong > Unit used inside the RDS file:< / strong > all units are expressed in micrometers.< / p >
< / div >
< p > Alliance tools relying on the RDS file, and what layers are active for them:< / p >
< table border = "1" class = "docutils" >
< colgroup >
< col width = "47%" / >
< col width = "16%" / >
< col width = "37%" / >
< / colgroup >
< thead valign = "bottom" >
< tr class = "row-odd" > < th class = "head" > Tool< / th >
< th class = "head" > Name< / th >
< th class = "head" > RDS Flags< / th >
< / tr >
< / thead >
< tbody valign = "top" >
< tr class = "row-even" > < td > Layout editor< / td >
2017-10-30 09:33:37 -05:00
< td > < code class = "docutils literal" > < span class = "pre" > graal< / span > < / code > < / td >
< td > < code class = "docutils literal" > < span class = "pre" > ALL< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< / tr >
< tr class = "row-odd" > < td > Design Rule Checker< / td >
2017-10-30 09:33:37 -05:00
< td > < code class = "docutils literal" > < span class = "pre" > druc< / span > < / code > < / td >
< td > < code class = "docutils literal" > < span class = "pre" > ALL< / span > < / code > , < code class = "docutils literal" > < span class = "pre" > DRC< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< / tr >
< tr class = "row-even" > < td > Electrical extractor< / td >
2017-10-30 09:33:37 -05:00
< td > < code class = "docutils literal" > < span class = "pre" > cougar< / span > < / code > < / td >
< td > < code class = "docutils literal" > < span class = "pre" > ALL< / span > < / code > , < code class = "docutils literal" > < span class = "pre" > EXT< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< / tr >
< tr class = "row-odd" > < td > The symbolic to real layout translator< / td >
2017-10-30 09:33:37 -05:00
< td > < code class = "docutils literal" > < span class = "pre" > s2r< / span > < / code > < / td >
< td > < code class = "docutils literal" > < span class = "pre" > ALL< / span > < / code > < / td >
2017-07-15 10:35:02 -05:00
< / tr >
< / tbody >
< / table >
< div class = "section" id = "physical-grid-lambda-value" >
< h2 > Physical Grid & Lambda Value< a class = "headerlink" href = "#physical-grid-lambda-value" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > RDS file:< / p >
2017-10-30 09:33:37 -05:00
< div class = "highlight-default" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > DEFINE< / span > < span class = "n" > PHYSICAL_GRID< / span > < span class = "mf" > 0.005< / span >
< span class = "n" > DEFINE< / span > < span class = "n" > LAMBDA< / span > < span class = "mf" > 0.09< / span >
< / pre > < / div >
2017-07-15 10:35:02 -05:00
< / div >
< p > Tells that the physical grid (founder grid) step is 0.005µm and the lambda has
a value of 0.09µm. That is, one lambda is 18 grid steps.< / p >
< p > We can distinguish two kind of < span class = "sc" > rds< / span > files:< / p >
< ul class = "simple" >
2017-10-30 09:33:37 -05:00
< li > The < em > 1µm< / em > kind, odd segment widths and coordinates are allowed, but the < code class = "docutils literal" > < span class = "pre" > LAMBDA< / span > < / code >
2017-07-15 10:35:02 -05:00
value < strong > must< / strong > represent an < em > even< / em > number of foundry grid step.< / li >
< li > The < em > 2µm< / em > kind, segments widths and coordinates must all be even. And in that case
2017-10-30 09:33:37 -05:00
the < code class = "docutils literal" > < span class = "pre" > LAMBDA< / span > < / code > value can be any multiple of the foundry grid.< / li >
2017-07-15 10:35:02 -05:00
< / ul >
< / div >
< div class = "section" id = "the-mbk-to-rds-segment-table" >
2017-10-30 09:33:37 -05:00
< h2 > The < code class = "docutils literal" > < span class = "pre" > MBK_TO_RDS_SEGMENT< / span > < / code > table< a class = "headerlink" href = "#the-mbk-to-rds-segment-table" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > The < code class = "docutils literal" > < span class = "pre" > MBK_TO_RDS_SEGMENT< / span > < / code > table control the way segments are translated into
2017-07-15 10:35:02 -05:00
real rectangles. Be aware that we are translating < em > segments< / em > and not < em > rectangles< / em > .
Segments are defined by their axis (source & target points) and their width.
The geometrical transformations are described according to that model.
Obviously, they are either horizontal or vertical.< / p >
< p > The translation method of a symbolic segment is as follow:< / p >
< ol class = "arabic" >
< li > < p class = "first" > The segment is translated into one or more physical rectangles.
The generated rectangles depends on the tool which is actually
using < span class = "sc" > rds< / span > and the flag for the considered real layer.
2017-10-30 09:33:37 -05:00
For instance, real layers flagged with < code class = "docutils literal" > < span class = "pre" > DRC< / span > < / code > will be generated
for < code class = "docutils literal" > < span class = "pre" > s2r< / span > < / code > (for the < code class = "docutils literal" > < span class = "pre" > cif< / span > < / code > or < code class = "docutils literal" > < span class = "pre" > gds< / span > < / code > ) and < code class = "docutils literal" > < span class = "pre" > druc< / span > < / code > , but will not
be shown under < code class = "docutils literal" > < span class = "pre" > graal< / span > < / code > .< / p >
2017-07-15 10:35:02 -05:00
< / li >
< li > < p class = "first" > Translation into one real layer. < em > First< / em > the source & target coordinates and width
2017-10-30 09:33:37 -05:00
of the symbolic segment are multiplied by the < code class = "docutils literal" > < span class = "pre" > LAMBDA< / span > < / code > value to obtain a real
segment. < em > Then< / em > one of the < code class = "docutils literal" > < span class = "pre" > VW< / span > < / code > , < code class = "docutils literal" > < span class = "pre" > LCW< / span > < / code > or < code class = "docutils literal" > < span class = "pre" > RCW< / span > < / code > transformation is applied to
2017-07-15 10:35:02 -05:00
that segment to get the final real rectangle.< / p >
< ul >
2017-10-30 09:33:37 -05:00
< li > < p class = "first" > < code class = "docutils literal" > < span class = "pre" > VW< / span > < / code > for Variable Width, expand the real layer staying centered from the
2017-07-15 10:35:02 -05:00
original one. In those rules, the third number is not used, it is only here
to make the life easier for the parser...< / p >
2017-10-30 09:33:37 -05:00
< p > < a class = "reference internal" href = "../_images/RDS_VW.png" > < img alt = "RDS Variable Width Rule" class = "align-middle" src = "../_images/RDS_VW.png" style = "width: 60%;" / > < / a > < / p >
2017-07-15 10:35:02 -05:00
< / li >
2017-10-30 09:33:37 -05:00
< li > < p class = "first" > < code class = "docutils literal" > < span class = "pre" > LCW< / span > < / code > or < code class = "docutils literal" > < span class = "pre" > RCW< / span > < / code > for Left/Right Constant Width, create an off-center rectangle
of fixed width relatively to the real segment. Note that the < code class = "docutils literal" > < span class = "pre" > SP< / span > < / code > number
2017-07-15 10:35:02 -05:00
is the distance < em > between the edge< / em > of the real segment and the edge of the
generated real rectangle (< em > not< / em > from the axis). It is often zero.< / p >
2017-10-30 09:33:37 -05:00
< p > < a class = "reference internal" href = "../_images/RDS_LCW.png" > < img alt = "RDS Left Constant Width Rule" class = "align-middle" src = "../_images/RDS_LCW.png" style = "width: 40%;" / > < / a > < / p >
2017-07-15 10:35:02 -05:00
< / li >
< / ul >
< / li >
< / ol >
< p > < / p >
< p > Examples:< / p >
2017-10-30 09:33:37 -05:00
< div class = "highlight-default" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > TABLE< / span > < span class = "n" > MBK_TO_RDS_SEGMENT< / span >
< span class = "c1" > # (Case 1)< / span >
< span class = "n" > ALU1< / span > < span class = "n" > RDS_ALU1< / span > < span class = "n" > VW< / span > < span class = "mf" > 0.18< / span > < span class = "mf" > 0.09< / span > < span class = "mf" > 0.0< / span > < span class = "n" > ALL< / span >
< span class = "c1" > # (Case 2)< / span >
< span class = "n" > NDIF< / span > < span class = "n" > RDS_NDIF< / span > < span class = "n" > VW< / span > < span class = "mf" > 0.18< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.0< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_ACTIV< / span > < span class = "n" > VW< / span > < span class = "mf" > 0.18< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.0< / span > < span class = "n" > DRC< / span > \
< span class = "n" > RDS_NIMP< / span > < span class = "n" > VW< / span > < span class = "mf" > 0.36< / span > < span class = "mf" > 0.36< / span > < span class = "mf" > 0.0< / span > < span class = "n" > DRC< / span >
< span class = "c1" > # (Case 3)< / span >
< span class = "n" > NTRANS< / span > < span class = "n" > RDS_POLY< / span > < span class = "n" > VW< / span > < span class = "mf" > 0.27< / span > < span class = "mf" > 0.00< / span > < span class = "mf" > 0.0< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_GATE< / span > < span class = "n" > VW< / span > < span class = "mf" > 0.27< / span > < span class = "mf" > 0.00< / span > < span class = "mf" > 0.0< / span > < span class = "n" > DRC< / span > \
< span class = "n" > RDS_NDIF< / span > < span class = "n" > LCW< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.27< / span > < span class = "mf" > 0.0< / span > < span class = "n" > EXT< / span > \
< span class = "n" > RDS_NDIF< / span > < span class = "n" > RCW< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.27< / span > < span class = "mf" > 0.0< / span > < span class = "n" > EXT< / span > \
< span class = "n" > RDS_NDIF< / span > < span class = "n" > VW< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.72< / span > < span class = "mf" > 0.0< / span > < span class = "n" > DRC< / span > \
< span class = "n" > RDS_ACTIV< / span > < span class = "n" > VW< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.72< / span > < span class = "mf" > 0.0< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_NIMP< / span > < span class = "n" > VW< / span > < span class = "mf" > 0.18< / span > < span class = "mf" > 1.26< / span > < span class = "mf" > 0.0< / span > < span class = "n" > DRC< / span >
< span class = "n" > END< / span >
< / pre > < / div >
2017-07-15 10:35:02 -05:00
< / div >
2017-10-30 09:33:37 -05:00
< p > < span class = "fboxtt" > Case 1< / span > the < code class = "docutils literal" > < span class = "pre" > ALU1< / span > < / code > is translated in exacltly one real rectangle of
< code class = "docutils literal" > < span class = "pre" > RDS_ALU1< / span > < / code > , both ends are extended by 0.18µm and it’ s width is increased
2017-07-15 10:35:02 -05:00
by 0.09µm.< / p >
2017-10-30 09:33:37 -05:00
< p > < span class = "fboxtt" > Case 2< / span > the < code class = "docutils literal" > < span class = "pre" > NDIF< / span > < / code > will be translated into only one segment
under < code class = "docutils literal" > < span class = "pre" > graal< / span > < / code > , for symbolic visualization. And into three real rectangles
for < code class = "docutils literal" > < span class = "pre" > s2r< / span > < / code > and < code class = "docutils literal" > < span class = "pre" > druc< / span > < / code > .< / p >
< p > < span class = "fboxtt" > Case 3< / span > the < code class = "docutils literal" > < span class = "pre" > NTRANS< / span > < / code > , associated to a transistor is a little bit
more complex, the generated shapes are different for the extractor < code class = "docutils literal" > < span class = "pre" > cougar< / span > < / code >
in one hand, and for both < code class = "docutils literal" > < span class = "pre" > druc< / span > < / code > & < code class = "docutils literal" > < span class = "pre" > s2r< / span > < / code > in the other hand.< / p >
2017-07-15 10:35:02 -05:00
< ul >
2017-10-30 09:33:37 -05:00
< li > < p class = "first" > For the extractor (< code class = "docutils literal" > < span class = "pre" > EXT< / span > < / code > & < code class = "docutils literal" > < span class = "pre" > ALL< / span > < / code > flags) there will be four rectangles
2017-07-15 10:35:02 -05:00
generateds:< / p >
< ol class = "arabic simple" >
2017-10-30 09:33:37 -05:00
< li > The gate (< code class = "docutils literal" > < span class = "pre" > RDS_GATE< / span > < / code > )< / li >
< li > The left diffusion of the transistor (source or drain) (< code class = "docutils literal" > < span class = "pre" > RDS_NDIF< / span > < / code > ).< / li >
< li > The right diffusion of the transistor (drain or source) (< code class = "docutils literal" > < span class = "pre" > RDS_NDIF< / span > < / code > ).< / li >
< li > The active area (< code class = "docutils literal" > < span class = "pre" > RDS_ACTIV< / span > < / code > ).< / li >
2017-07-15 10:35:02 -05:00
< / ol >
< p > As the extractor must kept separate the source and the drain of the transistor,
2017-10-30 09:33:37 -05:00
they are generated as two offset rectangles, using the < code class = "docutils literal" > < span class = "pre" > LCW< / span > < / code > and < code class = "docutils literal" > < span class = "pre" > RCW< / span > < / code > directives.< / p >
2017-07-15 10:35:02 -05:00
< / li >
2017-10-30 09:33:37 -05:00
< li > < p class = "first" > For < code class = "docutils literal" > < span class = "pre" > s2r< / span > < / code > and < code class = "docutils literal" > < span class = "pre" > druc< / span > < / code > (< code class = "docutils literal" > < span class = "pre" > DRC< / span > < / code > and < code class = "docutils literal" > < span class = "pre" > ALL< / span > < / code > ), five rectangles are generateds:< / p >
2017-07-15 10:35:02 -05:00
< ol class = "arabic simple" >
2017-10-30 09:33:37 -05:00
< li > The poly (< code class = "docutils literal" > < span class = "pre" > RDS_POLY< / span > < / code > ).< / li >
< li > The gate (< code class = "docutils literal" > < span class = "pre" > RDS_GATE< / span > < / code > ).< / li >
< li > The diffusion, as one rectangle that covers both the < code class = "docutils literal" > < span class = "pre" > LCW< / span > < / code > and the < code class = "docutils literal" > < span class = "pre" > RCW< / span > < / code > (< code class = "docutils literal" > < span class = "pre" > RDS_NDIF< / span > < / code > ).< / li >
< li > The active area (< code class = "docutils literal" > < span class = "pre" > RDS_ACTIV< / span > < / code > ).< / li >
< li > The N implantation (< code class = "docutils literal" > < span class = "pre" > RDS_NIMP< / span > < / code > ).< / li >
2017-07-15 10:35:02 -05:00
< / ol >
< p > In the layout send to the foundry, the source & drain are draw as one rectangle
across the gate area (the transistor being defined by the intersection of both
rectangles).< / p >
< / li >
< / ul >
< p > < / p >
< / div >
< div class = "section" id = "the-mbk-to-rds-via-table" >
2017-10-30 09:33:37 -05:00
< h2 > The < code class = "docutils literal" > < span class = "pre" > MBK_TO_RDS_VIA< / span > < / code > table< a class = "headerlink" href = "#the-mbk-to-rds-via-table" title = "Permalink to this headline" > ¶< / a > < / h2 >
2017-07-15 10:35:02 -05:00
< p > This table is to translate < em > default< / em > VIAs into real via. In the symbolic layout
the default VIA is simply a point and a set of layers. All layers are converted
in squares shapes centered on the VIA coordinate. The one dimension given is the
size of the side of that square.< / p >
< p > Note that although we are refering to VIAs, which for the purists are between two
metal layers, this table also describe < em > contacts< / em > .< / p >
< p > Example:< / p >
2017-10-30 09:33:37 -05:00
< div class = "highlight-default" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > TABLE< / span > < span class = "n" > MBK_TO_RDS_VIA< / span >
2017-07-15 10:35:02 -05:00
2017-10-30 09:33:37 -05:00
< span class = "n" > CONT_DIF_P< / span > < span class = "n" > RDS_PDIF< / span > < span class = "mf" > 0.54< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_CONT< / span > < span class = "mf" > 0.18< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_ALU1< / span > < span class = "mf" > 0.36< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_ACTIV< / span > < span class = "mf" > 0.54< / span > < span class = "n" > DRC< / span > \
< span class = "n" > RDS_PIMP< / span > < span class = "mf" > 0.90< / span > < span class = "n" > DRC< / span >
2017-07-15 10:35:02 -05:00
2017-10-30 09:33:37 -05:00
< span class = "n" > CONT_POLY< / span > < span class = "n" > RDS_POLY< / span > < span class = "mf" > 0.54< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_CONT< / span > < span class = "mf" > 0.18< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_ALU1< / span > < span class = "mf" > 0.36< / span > < span class = "n" > ALL< / span >
2017-07-15 10:35:02 -05:00
2017-10-30 09:33:37 -05:00
< span class = "n" > CONT_VIA< / span > < span class = "n" > RDS_ALU1< / span > < span class = "mf" > 0.45< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_VIA1< / span > < span class = "mf" > 0.27< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_ALU2< / span > < span class = "mf" > 0.45< / span > < span class = "n" > ALL< / span >
2017-07-15 10:35:02 -05:00
2017-10-30 09:33:37 -05:00
< span class = "n" > END< / span >
< / pre > < / div >
2017-07-15 10:35:02 -05:00
< / div >
< div class = "admonition note" >
< p class = "first admonition-title" > Note< / p >
< p class = "last" > < strong > In CONT_DIF_P< / strong > you may see that only three layers will be shown under
2017-10-30 09:33:37 -05:00
< code class = "docutils literal" > < span class = "pre" > graal< / span > < / code > , but five will be generated in the < code class = "docutils literal" > < span class = "pre" > gds< / span > < / code > layout.< / p >
2017-07-15 10:35:02 -05:00
< / div >
< / div >
< div class = "section" id = "the-mbk-to-rds-bigvia-hole-table" >
2017-10-30 09:33:37 -05:00
< h2 > The < code class = "docutils literal" > < span class = "pre" > MBK_TO_RDS_BIGVIA_HOLE< / span > < / code > table< a class = "headerlink" href = "#the-mbk-to-rds-bigvia-hole-table" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > In < code class = "docutils literal" > < span class = "pre" > s2r< / span > < / code > , when generating BIGVIAs, the matrix of holes they contains is
2017-07-15 10:35:02 -05:00
not draw relative to the position of the BIGVIA itself, but on a grid which
is common througout all the design real layout. This is to allow overlap
between two BIGVIA without risking the holes matrix to be not exactly overlapping.
2017-10-30 09:33:37 -05:00
As a consequence, when visualizing the < code class = "docutils literal" > < span class = "pre" > gds< / span > < / code > file, the holes may not be centerend
2017-07-15 10:35:02 -05:00
inside one individual BIGVIA.< / p >
2017-10-30 09:33:37 -05:00
< p > The < code class = "docutils literal" > < span class = "pre" > MBK_TO_RDS_BIGVIA_HOLE< / span > < / code > table define the global hole matrix for the whole
2017-07-15 10:35:02 -05:00
design. The first number is the individual hole side and the second the grid step
(edge to edge). The figure below show the hole generation.< / p >
2017-10-30 09:33:37 -05:00
< p > < a class = "reference internal" href = "../_images/bigvia-1.png" > < img alt = "BIGVIA holes" class = "align-middle" src = "../_images/bigvia-1.png" style = "width: 40%;" / > < / a > < / p >
2017-07-15 10:35:02 -05:00
< p > Example of BIGVIA overlap:< / p >
2017-10-30 09:33:37 -05:00
< p > < a class = "reference internal" href = "../_images/bigvia-2.png" > < img alt = "BIGVIA holes overlap" class = "align-middle" src = "../_images/bigvia-2.png" style = "width: 40%;" / > < / a > < / p >
2017-07-15 10:35:02 -05:00
< p > Example:< / p >
2017-10-30 09:33:37 -05:00
< div class = "highlight-default" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > TABLE< / span > < span class = "n" > MBK_TO_RDS_BIGVIA_HOLE< / span >
2017-07-15 10:35:02 -05:00
2017-10-30 09:33:37 -05:00
< span class = "n" > CONT_VIA< / span > < span class = "n" > RDS_VIA1< / span > < span class = "mf" > 0.27< / span > < span class = "mf" > 0.27< / span > < span class = "n" > ALL< / span >
< span class = "n" > CONT_VIA2< / span > < span class = "n" > RDS_VIA2< / span > < span class = "mf" > 0.27< / span > < span class = "mf" > 0.27< / span > < span class = "n" > ALL< / span >
< span class = "n" > CONT_VIA3< / span > < span class = "n" > RDS_VIA3< / span > < span class = "mf" > 0.27< / span > < span class = "mf" > 0.27< / span > < span class = "n" > ALL< / span >
< span class = "n" > CONT_VIA4< / span > < span class = "n" > RDS_VIA4< / span > < span class = "mf" > 0.27< / span > < span class = "mf" > 0.27< / span > < span class = "n" > ALL< / span >
< span class = "n" > CONT_VIA5< / span > < span class = "n" > RDS_VIA5< / span > < span class = "mf" > 0.36< / span > < span class = "mf" > 0.36< / span > < span class = "n" > ALL< / span >
2017-07-15 10:35:02 -05:00
2017-10-30 09:33:37 -05:00
< span class = "n" > END< / span >
< / pre > < / div >
2017-07-15 10:35:02 -05:00
< / div >
< div class = "admonition note" >
< p class = "first admonition-title" > Note< / p >
< p class = "last" > < strong > BIGVIA demotion.< / strong > If the size of the bigvia is too small, there is
a possibility that no hole from the global matrix will be under it.
To avoid that case, if the either side of the BIGVIA is less than
2017-10-30 09:33:37 -05:00
< code class = "docutils literal" > < span class = "pre" > 1.5< / span > < span class = "pre" > *< / span > < span class = "pre" > step< / span > < / code > , the BIGVIA is demoted to a simple VIA.< / p >
2017-07-15 10:35:02 -05:00
< / div >
< / div >
< div class = "section" id = "the-mbk-to-rds-bigvia-metal-table" >
2017-10-30 09:33:37 -05:00
< h2 > The < code class = "docutils literal" > < span class = "pre" > MBK_TO_RDS_BIGVIA_METAL< / span > < / code > table< a class = "headerlink" href = "#the-mbk-to-rds-bigvia-metal-table" title = "Permalink to this headline" > ¶< / a > < / h2 >
2017-07-15 10:35:02 -05:00
< p > This table describe how the metal part of a BIGVIA is expanded (for the hole
2017-10-30 09:33:37 -05:00
part, see the previous table < code class = "docutils literal" > < span class = "pre" > MBK_TO_RDS_BIGVIA_HOLE< / span > < / code > ). The rule give for each
2017-07-15 10:35:02 -05:00
metal:< / p >
< ol class = "arabic simple" >
< li > The < em > delta-with< / em > (have to ask Franck).< / li >
< li > The < em > overhang< / em > , the length the real rectangle is expanded on each side from
the symbolic rectange.< / li >
< / ol >
< p > Example:< / p >
2017-10-30 09:33:37 -05:00
< div class = "highlight-default" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > TABLE< / span > < span class = "n" > MBK_TO_RDS_BIGVIA_METAL< / span >
2017-07-15 10:35:02 -05:00
2017-10-30 09:33:37 -05:00
< span class = "n" > CONT_VIA< / span > < span class = "n" > RDS_ALU1< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.09< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_ALU2< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.09< / span > < span class = "n" > ALL< / span >
2017-07-15 10:35:02 -05:00
2017-10-30 09:33:37 -05:00
< span class = "n" > CONT_VIA2< / span > < span class = "n" > RDS_ALU2< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.09< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_ALU3< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.09< / span > < span class = "n" > ALL< / span >
2017-07-15 10:35:02 -05:00
2017-10-30 09:33:37 -05:00
< span class = "n" > CONT_VIA3< / span > < span class = "n" > RDS_ALU3< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.09< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_ALU4< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.09< / span > < span class = "n" > ALL< / span >
2017-07-15 10:35:02 -05:00
2017-10-30 09:33:37 -05:00
< span class = "n" > CONT_VIA4< / span > < span class = "n" > RDS_ALU4< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.09< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_ALU5< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.09< / span > < span class = "n" > ALL< / span >
2017-07-15 10:35:02 -05:00
2017-10-30 09:33:37 -05:00
< span class = "n" > CONT_VIA5< / span > < span class = "n" > RDS_ALU5< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.09< / span > < span class = "n" > ALL< / span > \
< span class = "n" > RDS_ALU6< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 0.18< / span > < span class = "n" > ALL< / span >
< span class = "n" > END< / span >
< / pre > < / div >
2017-07-15 10:35:02 -05:00
< / div >
< / div >
< div class = "section" id = "the-mbk-wiresetting-table" >
2017-10-30 09:33:37 -05:00
< h2 > The < code class = "docutils literal" > < span class = "pre" > MBK_WIRESETTING< / span > < / code > table< a class = "headerlink" href = "#the-mbk-wiresetting-table" title = "Permalink to this headline" > ¶< / a > < / h2 >
2017-07-15 10:35:02 -05:00
< p > From a strict standpoint this table shouldn’ t be here but put in a separate
configuration file, because it contains informations only used by the symbolic
2017-10-30 09:33:37 -05:00
layout tools (< code class = "docutils literal" > < span class = "pre" > ocp< / span > < / code > , < code class = "docutils literal" > < span class = "pre" > nero< / span > < / code > , < code class = "docutils literal" > < span class = "pre" > ring< / span > < / code > ).< / p >
2017-07-15 10:35:02 -05:00
< p > This table defines the cell gauge the routing pitch and minimal (symbolic)
wire width and minimal spacing for the routers. They are patly redundant.< / p >
< p > Example:< / p >
2017-10-30 09:33:37 -05:00
< div class = "highlight-default" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > TABLE< / span > < span class = "n" > MBK_WIRESETTING< / span >
< span class = "n" > X_GRID< / span > < span class = "mi" > 10< / span >
< span class = "n" > Y_GRID< / span > < span class = "mi" > 10< / span >
< span class = "n" > Y_SLICE< / span > < span class = "mi" > 100< / span >
< span class = "n" > WIDTH_VDD< / span > < span class = "mi" > 12< / span >
< span class = "n" > WIDTH_VSS< / span > < span class = "mi" > 12< / span >
< span class = "n" > TRACK_WIDTH_ALU8< / span > < span class = "mi" > 0< / span >
< span class = "n" > TRACK_WIDTH_ALU7< / span > < span class = "mi" > 4< / span >
< span class = "n" > TRACK_WIDTH_ALU6< / span > < span class = "mi" > 4< / span >
< span class = "n" > TRACK_WIDTH_ALU5< / span > < span class = "mi" > 4< / span >
< span class = "n" > TRACK_WIDTH_ALU4< / span > < span class = "mi" > 3< / span >
< span class = "n" > TRACK_WIDTH_ALU3< / span > < span class = "mi" > 3< / span >
< span class = "n" > TRACK_WIDTH_ALU2< / span > < span class = "mi" > 3< / span >
< span class = "n" > TRACK_WIDTH_ALU1< / span > < span class = "mi" > 3< / span >
< span class = "n" > TRACK_SPACING_ALU8< / span > < span class = "mi" > 0< / span >
< span class = "n" > TRACK_SPACING_ALU7< / span > < span class = "mi" > 4< / span >
< span class = "n" > TRACK_SPACING_ALU6< / span > < span class = "mi" > 4< / span >
< span class = "n" > TRACK_SPACING_ALU5< / span > < span class = "mi" > 4< / span >
< span class = "n" > TRACK_SPACING_ALU4< / span > < span class = "mi" > 4< / span >
< span class = "n" > TRACK_SPACING_ALU3< / span > < span class = "mi" > 4< / span >
< span class = "n" > TRACK_SPACING_ALU2< / span > < span class = "mi" > 4< / span >
< span class = "n" > TRACK_SPACING_ALU1< / span > < span class = "mi" > 3< / span >
< span class = "n" > END< / span >
< / pre > < / div >
2017-07-15 10:35:02 -05:00
< / div >
< / div >
< / div >
< / div >
< footer >
< div class = "rst-footer-buttons" role = "navigation" aria-label = "footer navigation" >
2017-10-30 09:33:37 -05:00
< a href = "../lefapi/lefapi.html" class = "btn btn-neutral float-right" title = "LEF API Reference" accesskey = "n" > Next < span class = "fa fa-arrow-circle-right" > < / span > < / a >
2017-07-15 10:35:02 -05:00
< a href = "index.html" class = "btn btn-neutral" title = "Symbolic to Real Conversion in Alliance" 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 >
2017-12-02 08:51:21 -06:00
using a < a href = "https://readthedocs.org" > RTD< / a > theme on Dec 02, 2017.
2017-07-15 10:35:02 -05:00
< / small > < / td >
< td class = "RFooter" > < / td >
< / tr >
< / table >
< table class = "footer2" >
< tr >
< td class = "LFooter" > Coriolis 2 Documentation< / td >
< td class = "RFooter" > < small >
© Copyright 2000-2017, UPMC.
< / small > < / td >
< / tr >
< / table >
< / div >
< / footer >
< / div >
< / div >
< / section >
< / div >
< script type = "text/javascript" >
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'../',
VERSION:'2',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
< / script >
< script type = "text/javascript" src = "../_static/jquery.js" > < / script >
< script type = "text/javascript" src = "../_static/underscore.js" > < / script >
< script type = "text/javascript" src = "../_static/doctools.js" > < / script >
< script type = "text/javascript" src = "../_static/js/theme.js" > < / script >
< script type = "text/javascript" >
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
< / script >
< / body >
< / html >