Python API Reference Manual L-2016.06

Total Page:16

File Type:pdf, Size:1020Kb

Python API Reference Manual L-2016.06 Python API Reference Manual L-2016.06 Copyright and Proprietary Information Notice © 2016 Synopsys, Inc. All rights reserved. This software and documentation contain confidential and proprietary information that is the property of Synopsys, Inc. The software and documentation are furnished under a license agreement and may be used or copied only in accordance with the terms of the license agreement. No part of the software and documentation may be reproduced, transmitted, or translated, in any form or by any means, electronic, mechanical, manual, optical, or otherwise, without prior written permission of Synopsys, Inc., or as expressly provided by the license agreement. Destination Control Statement All technical data contained in this publication is subject to the export control laws of the United States of America. Disclosure to nationals of other countries contrary to United States law is prohibited. It is the reader’s responsibility to determine the applicable regulations and to comply with them. Disclaimer SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Trademarks Synopsys and certain Synopsys product names are trademarks of Synopsys, as set forth at http://www.synopsys.com/Company/Pages/Trademarks.aspx. All other product or company names may be trademarks of their respective owners. Third-Party Links Any links to third-party websites included in this document are for your convenience only. Synopsys does not endorse and is not responsible for such websites and their practices, including privacy practices, availability, and content. Synopsys, Inc. 690 E. Middlefield Road Mountain View, CA 94043 www.synopsys.com Python API Reference Manual L-2016.06 2 CONTENTS INTRODUCTION .............................................................................................................. 6 Summary Description ..................................................................................................... 7 Basic Structure .............................................................................................................. 11 Units .............................................................................................................................. 13 Python Interpreter ......................................................................................................... 13 Python Documentation Conventions ............................................................................ 13 BASIC GEOMETRIC CLASSES .................................................................................... 14 Point .............................................................................................................................. 14 Range ............................................................................................................................ 19 Segment......................................................................................................................... 25 Box ................................................................................................................................ 29 Direction ....................................................................................................................... 39 Location ........................................................................................................................ 43 Orientation .................................................................................................................... 44 Transform ...................................................................................................................... 45 Font ............................................................................................................................... 48 PathStyle ....................................................................................................................... 49 GapStyle ........................................................................................................................ 49 PHYSICAL COMPONENT CLASSES ........................................................................... 51 Shape Classes ................................................................................................................ 66 Shape ......................................................................................................................... 66 Arc............................................................................................................................. 67 Donut......................................................................................................................... 69 Dot............................................................................................................................. 70 Ellipse ....................................................................................................................... 72 Line ........................................................................................................................... 74 Path ........................................................................................................................... 76 PathSeg ..................................................................................................................... 79 Polygon ..................................................................................................................... 81 Rect ........................................................................................................................... 83 Text ........................................................................................................................... 87 TextDisplay ............................................................................................................... 90 AttrDisplay ................................................................................................................ 91 PHYSICAL COMPONENT RELATED CLASSES ........................................................ 95 Instance Classes ............................................................................................................ 95 Instance ..................................................................................................................... 95 InstanceArray .......................................................................................................... 101 Contact .................................................................................................................... 104 AbutContact ............................................................................................................ 108 ArrayInstContact ..................................................................................................... 110 Grouping Classes ........................................................................................................ 112 Grouping ................................................................................................................. 112 CompoundComponent ............................................................................................ 117 Derived CompoundComponent Classes ..................................................................... 122 Python API Reference Manual L-2016.06 3 Bar ........................................................................................................................... 122 ContactRing ............................................................................................................ 125 DeviceContact ......................................................................................................... 129 MultiPath................................................................................................................. 133 RoutePath ................................................................................................................ 139 Boundary Classes ........................................................................................................ 146 Boundary ................................................................................................................. 146 PRBoundary ............................................................................................................ 147 Via Classes .................................................................................................................. 149 Via ........................................................................................................................... 149 StdVia ..................................................................................................................... 151 CustomVia .............................................................................................................. 153 PHYSICAL COMPONENT REFERENCE CLASSES ................................................. 155 PhysicalCompRef ....................................................................................................... 156 GroupingRef ............................................................................................................... 162 InstanceRef ................................................................................................................. 162 InstanceArrayRef .......................................................................................................
Recommended publications
  • Learning Openaccess Problem Areas Programmers Need to Understand Kevin Nesmith Chief Architect
    Learning OpenAccess Problem Areas Programmers Need to Understand Kevin Nesmith Chief Architect June 25, 2014 Innova&on Through Collabora&ve R&D Overview • Why teach “Learning OpenAccess?” • Why OpenAccess? • Documentaon and training • ProBlems geng started • Uli?es • lib.defs (cds.lib) • Domains • Observers • Namespaces • Translators • Hierarchy • Some helpful tools – oaScript – oaDeBugging Suite • Who’s involved in this OpenAccess effort Innova&on Through Collabora&ve R&D 2 Why teach “Learning OpenAccess” at IEEE? Innova&on Through Collabora&ve R&D “ipsa sciena potestas est” • “Knowledge itself is power” (Sir Francis Bacon) • Knowing more about the inner workings of OpenAccess will make you more – Producve – Valuable • Improve your joB related proBlem solving skills • Reviewing what you already know keeps the informaon fresh in your Brain • Even if you only rememBer 1% from today, its more than what you knew yesterday Innova&on Through Collabora&ve R&D 4 Background of OpenAccess • mid 1990’s, SEMATECH created Chip Hierarchical Design System: Technical Data (CHDStd) • 1999 SEMATECH asked Si2 to take ownership of the CHDStd program to find a way to make is successful • This eventually lead to a new project called OpenAccess • To address concerns of CHDStd, a replacement for the CHDStd API was needed • Si2 put out a call for a technology contriBu?on • Cadence answered the call Innova&on Through Collabora&ve R&D 5 WHY OPENACCESS? Innova&on Through Collabora&ve R&D OpenAccess as a Concept • Eliminate translaon steps in the EDA flow • Prevent
    [Show full text]
  • Electronic Design Automation Tools Part 2 by Christopher Henderson This Article Provides an Overview of the Electronic Design Automation (EDA) Design Tools
    Issue 126 December 2019 Electronic Design Automation Tools Part 2 By Christopher Henderson This article provides an overview of the Electronic Design Automation (EDA) design tools. The EDA industry is an interesting ecosystem and bears discussing, so that the design engineer can Page 1 Electronic Design understand the environment. Automation Tools In last month’s feature article we discussed the three major EDA Part 2 tool suppliers: Cadence Design Systems, Synopsys, and Mentor Graphics, which is now owned by Siemens. Here in Part II we will Page 5 Technical Tidbit briefly discuss interoperability issues between the three major platforms. We’ll also discuss other suppliers developing tools in this area. Finally, we’ll discuss the use case and the strengths and Page 8 Ask the Experts weaknesses of the tool suites. Each of the three major EDA firms creates products that work well within their own portfolio, but what about across the three major Page 10 Spotlight providers? What if you want to create designs using tools from across two or more of the providers? This is a major challenge because it requires that one work with different formats for different files, which Page 13 Upcoming Courses requires translators, scripts and additional programs. What would be most useful is a good interoperability standard, and the good news is that there is one. It is called OpenAccess and is supported and promoted by the Silicon Integration Initiative. OpenAccess actually had its start as the result of a lawsuit against Cadence. Users sued Cadence, claiming that their internal format gave them a controlling monopoly in the design area, and a judge agreed with them.
    [Show full text]
  • An Introduction to Openaccess Scripting
    An Introduction to OpenAccess Scripting James D. Masters Intel Corp Design Automation Conference June 6, 2011 1 What is it? • Standalone direct interface to OpenAccess (OA) – No dependencies beyond OA and no licensing fees – Performance and memory usage is good for a scripting language • Matches C++ API with some melding to native language features – Existing C++ API documentation can be referenced – Auto conversions to/from native types (e.g. strings, integers, floats) • Includes convenience functions to reduce code and improve productivity – More natural interface; e.g. native array of (1.234, 9.876) instead of oaPoint(1234, 9876) 2 How does it work? Perl API Python API Ruby API Tcl API C# API Language-Specific Bindings Type Mapping Type Mapping Type Mapping Type Mapping Type Mapping Common Wrapper Architecture Interface Common SWIG Framework OA API C++ Programming Interface • Common interface through SWIG ensures cross-language consistency and reuse • All languages interface OA through the official OA API 3 Basic type mapping • Some basic OA types are mapped to native types in the target language Perl Python Ruby Tcl C# oaBoolean integer bool Boolean integer bool oa*Int integer int Fixnum integer int, uint, long,ulong oaFloat/Double Float float Float float float/double oaString string string String string string oaArray array array Array list IList<T> oaTime oaTime oaTime Time oaTime DateTime oaTimestamp integer int Fixnum integer uint oaComplex oaComplex complex OaComplex oaComplex oaComplex oaPoint oaPoint/array oaPoint/array OaPoint/Array
    [Show full text]
  • ASIC Design Flow Steps [Makefile Targets] Synthesis Tool Descriptions
    Identity development Research centre identities Institute for Communicating & Collaborative Systems Institute for Computing Systems Architecture Processor Automated Synthesis by iTerative Analysis Project Centre for Intelligent Systems http://groups.inf.ed.ac.uk/pasta/ & their Applications Laboratory for Foundations of Computer Science Institute of Perception, EnCore Processor Design Flow Action and Behaviour Institute for Adaptive & Neural Computation e-Science Institute RTL to Gates Synthesis Informatics Life-Sciences Institute Synthesis Tools ASIC Design Flow Steps [Makefile targets] Synthesis Tool Descriptions Floorplanning Configuration Start RTL-Description RTL Synthesis RTL Description Design Compiler rtl_config config Pre-processing/Compiling of micro-code definitions and of Verilog files. [dc_shell-t] RTL synthesis solution that performs advanced arithmetic optimisation, critical path synthesis, register retiming etc. It enables a developer to optimise a design for timing, IP Libraries area, power and test. RTL-to-Gates synthesis flow takes a RTL HW description and a standard cell Design Rule library as input, and produces a gate-level netlist as output. The resulting gate-level Checking netlist is a completely structural description with only standard cells at the leaves of RTL Vendor Logic Synthesis the design. This step also creates a SAIF (Switching Activity Interchange Format) Database Libraries Design forward-annotation file starting from the top level of the design. RTL to Placed rtl2gates synth GDS II OUT Compiler Power Optimisation & Analysis Gates Synthesis Layout [dc_shell-t] Power vs. Creates floorplan information including core size, placement sites, port locations, Compiler Power Compiler performs both RTL and gate-level power floorplan floorplan Schematic RAM locations, as well as routing and placement obstructions.
    [Show full text]
  • EDA Scripting Unleashed: Real-Life Examples Using Oascript and Oaxpop
    EDA Scripting Unleashed: Real-Life Examples Using oaScript and oaxPop James D. Masters Intel Corp Si2CON October 6, 2015 1 Agenda • oaScript overview • oaxPop overview • Intel’s experience with oaScript and oaxPop – Framework bundle of required packages – Performance observations – Density Calculator application – Methodology Checker application • oaScript/oaxPop Roadmap • Summary 2 oaScript overview • Standalone direct interface to OpenAccess (OA) using Perl, Python, Ruby, or Tcl – Enables rapid development of powerful OA-based software – Performance and memory usage is mostly comparable to that of a C++ application (a few exceptions will be mentioned later) • Matches OA C++ API very closely – Existing C++ API documentation can be referenced – Auto conversion of types between C++ and scripting language • Includes convenience functions to reduce code and improve productivity • Initiated in 2009, and refined over the past 6 years in Si2’s oaScript working group (code base is stable) 3 oaScript interaction with OA API (via SWIG) Language-Specific Perl API Python API Ruby API Tcl API Bindings Type Mapping Type Mapping Type Mapping Type Mapping Common Wrapper Architecture Interface Common SWIG Framework C++ Programming OA API Interface • Uses the Simplified Wrapper and Interface Generator (SWIG) tool to expose C++ APIs to scripting languages – Common interface through SWIG ensures cross-language consistency and reuse – All languages interface OA through the official OA API 4 oaxPop overview • Provides high-speed polygon manipulation capabilities
    [Show full text]
  • Pycells for an Open Semiconductor Industry
    PROC. OF THE 8th EUR. CONF. ON PYTHON IN SCIENCE (EUROSCIPY 2015) 3 PyCells for an Open Semiconductor Industry Sepideh Alassi∗†, Bertram Winter‡ F Abstract—In the modern semiconductor industry, automatic generation of pa- 2 DEVELOPMENT rameterized and recurring layout structures plays an important role and should be present as a feature in Electronic Design Automation (EDA)-tools. Currently these layout generators are developed with a proprietary programming language OpenAccess [OpenAccess] has been established as standard and can be used with a specific EDA-tool. Therefore, the semiconductor com- for storing design data in the semiconductor industry and panies find the development of the layout generators that can be used in all builds the foundation for interoperability of EDA-tools. Ope- state of the art EDA-tools which support OpenAccess database appealing. The nAccess is a file based database and manages logical design goal of this project is to develop computationally efficient layout generators with Python (PyCells), for ams AG technologies, that possess all the features of data (schematics) as well as artwork data (layout) for manu- comprehensive layout generators. facturing. The reference implementation for accessing design data within the database is written in C++. The company Index Terms—PyCells, Semiconductor, OpenAccess Ciranova (now acquired by Synopsys) developed a Python wrapper [PythonAPI] for the OpenAccess C++ class library with the goal to access and modify design data through 1 INTRODUCTION Python. Additionally, they provide an integrated development The number of companies active in modern semiconductor environment [SynopsysPyCellStudio] that enables interactive business is increasing every day which raises the demand for development and debugging of Python code, while the effects cheaper EDA-tools.
    [Show full text]
  • Platform Strategies in the Electronic Design Automation Industry
    Platform Strategies in the Electronic Design Automation Industry by Arthur Low A thesis submitted to the Faculty of Graduate and Postdoctoral Affairs in partial fulfillment of the requirements for the degree of Master of Applied Science in Technology Innovation Management Carleton University Ottawa Ontario © 2013 Arthur Low The undersigned hereby recommend to The Faculty of Graduate and Postdoctoral Affairs Acceptance of the thesis Platform strategies in the electronic design automation industry by Arthur Low in partial fulfillment of the requirements for the degree of Master of Applied Science in Technology Innovation Management ________________________________________________________________ Antonio J. Bailetti, Director Institute of Technology Entrepreneurship and Commercialization ________________________________________________________________ Steven Muegge, Thesis Supervisor Carleton University September 2013 ii Abstract Platforms – architectures of related standards that allow modular substitution of complementary assets – feature prominently in technology-intensive industries. The motivations for firms to adopt a particular platform strategy and the ways in which platform strategies change over time are not fully understood. This thesis examines the platform strategies of three leading vendors in the Electronic Design Automation (EDA) industry from 1987 to 2002. It employs a two-part research design: (i) pattern-matching to operationalize and test a three-stage explanation previously developed by West (2003) to account for the evolution of platform strategies by firms in the computer industry, followed by (ii) explanation-building to account for differences between observations and the expected pattern. The pioneering EDA firm matches the expected pattern, but two other EDA firms bypass stage one to enter at stage two with open standards. All three firms later move to stage three simultaneously by adopting hybrid open source strategies.
    [Show full text]
  • Examining the Constructs and Component Dimensions
    EXAMINING THE CONSTRUCTS AND COMPONENT DIMENSIONS OF THE OPENACCESS PROJECT by Yijun Xu A thesis submitted to the Faculty of Graduate Studies and Research in partial fulfillment of the requirements for the degree of Master of Engineering in Telecommunications Technology Management Department of Systems and Computer Engineering, Carleton University Ottawa, Canada, K1S 5B6 August 2007 ©Copyright 2007 Yijun Xu Reproduced with permission of the copyright owner. Further reproduction prohibited without permission. Library and Bibliotheque et Archives Canada Archives Canada Published Heritage Direction du Branch Patrimoine de I'edition 395 Wellington Street 395, rue Wellington Ottawa ON K1A 0N4 Ottawa ON K1A 0N4 Canada Canada Your file Votre reference ISBN: 978-0-494-33679-3 Our file Notre reference ISBN: 978-0-494-33679-3 NOTICE: AVIS: The author has granted a non­ L'auteur a accorde une licence non exclusive exclusive license allowing Library permettant a la Bibliotheque et Archives and Archives Canada to reproduce,Canada de reproduire, publier, archiver, publish, archive, preserve, conserve,sauvegarder, conserver, transmettre au public communicate to the public by par telecommunication ou par I'lnternet, preter, telecommunication or on the Internet,distribuer et vendre des theses partout dans loan, distribute and sell theses le monde, a des fins commerciales ou autres, worldwide, for commercial or non­ sur support microforme, papier, electronique commercial purposes, in microform,et/ou autres formats. paper, electronic and/or any other formats. The author retains copyright L'auteur conserve la propriete du droit d'auteur ownership and moral rights in et des droits moraux qui protege cette these. this thesis. Neither the thesis Ni la these ni des extraits substantiels de nor substantial extracts from it celle-ci ne doivent etre imprimes ou autrement may be printed or otherwise reproduits sans son autorisation.
    [Show full text]
  • Cadence Design Systems, Inc
    CADENCE ANNUAL REPORT 2003 FROM BEGINNING TO END, MAKING IT POSSIBLE >> CORPORATE REGIONAL CADENCE DESIGN SYSTEMS, INC. HEADQUARTERS HEADQUARTERS >> CADENCE DESIGN SYSTEMS, INC. ASIA/PACIFIC EUROPE JAPAN 2655 Seely Avenue The Gateway, Tower II Bagshot Road 3-17-6 Shin-Yokohama, San Jose, California 95134 25 Canton Road Bracknell, Berkshire RG12 0PH Kouhoku-ku, Yokohama 408.943.1234 Suites 03–07, 23A United Kingdom Kanagawa 222-0033 www.cadence.com Tsimshatsui, Kowloon Phone: +44.1344.360333 Japan Hong Kong Fax: +44.1344.302837 Phone: +81.45.475.6330 Phone: +852.2377.7111 Fax: +81.45.475.6331 Fax: +852.2377.2802 2003 ANNUAL REPORT AND FORM 10 -K Cadence is the largest supplier of electronic design technologies, methodology services, and design services. Cadence solutions are used to accelerate and manage the design of semiconductors, computer systems, networking and telecommunications equipment, consumer electronics, and a variety of other electronics-based products. With approximately 4,800 employees and 2003 revenues of approximately $1.1 billion, Cadence has sales offices, design centers, and research facilities around the world. The company is headquartered in San Jose, Calif., and traded on the New York Stock Exchange under the symbol CDN. More information about the company, its products, and services is available at www.cadence.com. STOCKHOLDER INFORMATION INDEPENDENT PUBLIC ACCOUNTANTS FORM 10-K INVESTOR RELATIONS KPMG LLP Restated Restated A copy of the Company’s Form 10-K, as filed with For further information on our Company, please SELECTED FINANCIAL DATA 2003 2002 2001 500 East Middlefield Road the Securities and Exchange Commission for the contact Cadence Investor Relations in writing at: Mountain View, CA 94043 year ended January 3, 2004, is available without (In thousands except per share amounts) Cadence Design Systems, Inc.
    [Show full text]
  • The Tides of EDA
    The Tides of EDA Alberto Sangiovanni-Vincentelli University of California at Berkeley Alberto bases this article on remarks from his invited keynote speech at the 40th Design Automation Conference. In that speech, he proposed a bold initiative in electronic design automation, EDATech, of EDA 40 Years which would drive the industry much like SEMATECH propelled semiconductor manufacturing. —Rajesh Gupta, Editor in Chief IT WAS A GREAT HONOR to celebrate the 40th ized by reason—rational analysis that dissects events, anniversary of the Design Automation Conference with a during which people fear novelty and creativity as keynote lecture intended to place in perspective the most jumps into the dark because no analysis can guarantee relevant research results presented at DAC in all these any initiative’s success. Vico identified the age of men years and to identify trends and challenges for the future as the beginning of decay in society. Yet he found that of electronic design automation (EDA). Going through after the decadence of this period, mankind would the DAC proceedings, hunting for relevant papers, was again loop through the three stages, returning to the indeed a formidable task. While doing so, I wanted to find next age of gods. regular patterns that those of us in EDA could use to understand the history of our field and its destiny. Ages of EDA Fishing into my background as a former student of Quite surprisingly, I found that I could identify simi- an Italian classical Lyceum, I found unexpected help lar patterns in the history of EDA. To determine the time from a fellow countryman: Giovan Battista Vico, the first span of the ages of EDA, I used attendance data from philosopher who analyzed history and its patterns from DAC, shown in Figure 1.
    [Show full text]
  • First IEEE Programming Challenge at IWLS Sponsored by CEDA
    JULY 2006 mation about OA Gear visit the OA Gear project page at First IEEE Programming Challenge at http://openedatools.si2.org/oagear/. IWLS sponsored by CEDA With the help of the funds from CEDA six participating Contributed by Christoph Albrecht, Cadence Berkeley Labs, students received a travel grant and could travel to the [email protected] IWLS workshop held June 7 – 9, 2006 in Vail, Colorado. In addition to the travel grants the committee of the pro- IEEE CEDA sponsored together with Synplicity and gramming challenge awarded two entries of the challenge Cadence Design Systems the first programming challenge with a “Best Contribution Award”. Each of the two of the International Workshop on Logic and Synthesis awards came with a cash prize of $250. (IWLS). The challenge was to implement logic optimiza- tion algorithms on the industrial EDA database The students Kai-hui Chang and David A. Papa from OpenAccess. The programming challenge was organized the University of Michigan received the award for their and co-chaired by Florian Krohm (IBM) and Christoph contribution “Simulation and Equivalence Checking”. Albrecht (Cadence Berkeley Labs). A committee con- They developed a logic simulation engine which is 100 sisting of Robert Brayton (UC Berkeley), Valavan times faster than the simulator released previously with Manohararajah (Altera) and the co-chairs judged the the OA Gear package. They use their simulator in com- entries by how good the implementations make use of bination with MiniSAT for combinational equivalence the OpenAccess database and the OA Gear infrastruc- checking, and developed a new metric of circuit similarity ture, how well the functionality is architected to allow that can be used in incremental verification and debug- maximum versatility, how the algorithms scale for large ging.
    [Show full text]
  • Si2 Member Report 2010
    Si2Si2 MemberMember ReportReport 20102010 InnovationInnovation ThroughThrough CollaborationCollaboration BoardBoard ofof DirectorsDirectors 20102010 -- 20112011 TermTerm Apache Design Systems ARM AMD Vic Kulkarni John Goodenough Jim Miller Sr VP/General Manager of VP, Design Vice President, RTL Business Unit Technology & Automation Design Engineering Cadence Design Systems IBM Intel Charlie Huang Dr Leon Stok Rahul Goyal Senior Vice President VP, EDA Director, EDA Business and Chief Strategy Officer National GLOBALFOUNDRIES LSI Semiconductor Mojy Chian Prabhakaran Krishnamurthy James Lin Senior VP, Design Senior Director, Design VP Technology Enablment Implementation Infrastructure Group Synopsys Si2 John Chilton Steve Schulz Sr. VP & General Manager President & CEO LetterLetter fromfrom thethe ChairmanChairman Prabhu Krishnamurthy - LSI Senior Director, Design Implementation Si2 Board of Directors Chair As we turn the leaf on another successful year of collaboration at Si2, it is time to reflect on our collective accomplishments for 2010. Si2 started off the year approving the formation of a new coalition, "OpenPDK", with the goal of improving efficiency and interoperability for the creation of process design kits (PDKs), which are used universally across our industry. We are extremely pleased with the excitement that this new coalition has created, and we now have 15 member companies who are actively contributing to support the broad technical scope of OpenPDK. This scope includes an open process specification with reference implementation and plug-ins; enhanced, standardized symbols and parameters; CDF parameter and callback standards; PDK targeting support added to the OpenDFM standard; standard Pcell parameters; OpenAccess technology file enhancements; and a standardized SPICE socket. 2010 was also a strong year of progress for Si2's other coalitions.
    [Show full text]