An Introduction to Openaccess Scripting

Total Page:16

File Type:pdf, Size:1020Kb

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 oaPoint/list oaPoint oaBox oaBox/array oaBox/array OaBox/Array oaBox/list oaBox oaTransform oaTransform/ oaTransform/ OaTransform/ oaTransform/ oaTransform array array Array list 4 Input string / scalarName values • All oaScript languages allow a native string to be used in place of an oaScalarName C++ oaNativeNS nns(); oaString str("mylib"); oaScalarName sname(nns, str); oaLib *lib = oaLib::find(sname); Perl $lib = oaLib::find("mylib"); Python lib = oaLib.find("mylib") Ruby lib = OaLib.find("mylib") Tcl set lib [oaLib_find mylib] C# oaLib lib = oaLib.find("mylib"); 5 Mapping to OA API documentation • Similar syntax to the C++ API Static Public Methods oaLib * oaLib::create (const oaScalarName &name, const oaString &libPath, oaLibMode mode=oacSharedLibMode, const oaString &dmSystem="oaDMSystem", const oaDMAttrArray *dmAttrList=NULL) Perl oa::oaLib::create(oaScalarName|string, string, oaLibMode, string, array|undef) Python oa.oaLib.create(oaScalarName|string, oaString, oaLibMode, oaString, array|None) Ruby Oa::OaLib.create(oaScalarName|String, String, oaLibMode|symbol, String, Array|nil) Tcl oa::oaLib_create oaScalarName|string string|oaLibMode string list|"NULL" C# OpenAccess_4.oaLib.create(oaScalarName|string, string, oaLibMode, string, oaDMAttrArray) 6 Mapping to OA API documentation • Sample documentation map to target language Public Methods oaBoolean getAccess (oaLibAccess accessType, oaUInt4 timeout=0) Perl $lib->getAccess(new oa::oaLibAccess('read')); $lib->getAccess($oa::oacReadLibAccess); Python lib.getAccess(oa.oaLibAccess('read')) lib.getAccess(oa.oaLibAccess(oa.oacReadLibAccess)) Ruby lib.getAccess(Oa::OaLibAccess.new('read')) lib.getAccess(Oa::OaLibAccess.new(Oa::OacReadLibAccess)) lib.getAccess(:read) Tcl $lib getAccess [oa::oaLibAccess "read"] $lib getAccess [oa::oaLibAccess $oa::oacReadLibAccess] $lib getAccess $oa::oacReadLibAccess C# lib.getAccess(oaLibAccess.oacReadLibAccess); 7 Enumerated wrappers • Enumerated wrappers (e.g. oaLibMode) are mapped differently in each language Perl Input: Integer Output: Integer Python Input: Wrapped object, integer, or string Output: Wrapped object (can cast to integer value with “__int__”) Ruby Input: Wrapped object, integer, or string Output: Wrapped object (can cast to integer value with “to_i” or string with “to_s”) Tcl Input: Wrapped object or integer Output: Wrapped object (can cast to integer value with “$enumWrapper typeEnum”) C# Input: Native C# enum Output: Native C# enum Note: all languages have the enum constants available (e.g. oacReadLibAccess) 8 Collections / Iterators • Map collections/iterators natively in target language; allow native loops when possible Perl $iter = new oa::oaIter::oaNet($block->getNets()); while ($net = $iter->getNext()) { ... } Python for net in block.getNets(): ... Ruby block.getNets.each do |net| ... end Tcl oa::foreach net [$block getNets] { ... } C# foreach(oaNet net in block.getNets()) { ... } 9 Unique behaviors • For safety, all languages except C# check for validity of an OA object first using oaObject::isValid() • Return strings, oaPoint, oaBox, and oaArray instead of requiring pre-allocation (example in Tcl): puts [$net getName] set boxlist [$fig getBBox] • Override default name space used in oaName type of conversions (example in Ruby): Oa::OaNameSpace.push(Oa::OaCdbaNS.new) # ... Default NS is OaCdbaNS in this section Oa::OaNameSpace.pop 10 C++: Dump Nets #include <iostream> #include "oaDesignDB.h" int main( int argc, char *argv[] ) { oa::oaDesignInit(); oa::oaLibDefList::openLibs(); oa::oaNativeNS nns; oa::oaScalarName slib(nns, argv[1]), scell(nns, argv[2]), sview(nns, argv[3]); oa::oaDesign *design = oa::oaDesign::open( slib, scell, sview, 'r' ); oa::oaBlock *block = design->getTopBlock(); oa::oaIter<oaNet> iter(block->getNets()); while (oa::oaNet *net = iter.getNext()) { oa::oaString str; std::cout << (net->getName(nns,str),str) << std::endl; } } 11 Perl: Dump Nets use oa::design; oa::oaLibDefList::openLibs(); $design = oa::oaDesign::open($ARGV[0], $ARGV[1], $ARGV[2], "r"); $block = $design->getTopBlock(); $iter = new oa::oaIter::oaNet($block->getNets()); while ($net = $iter->getNext()) { print($net->getName()."\n"); } 12 Python: Dump Nets import sys import oa.design oa.oaLibDefList.openLibs() design = oa.oaDesign.open(sys.argv[1], sys.argv[2], sys.argv[3], 'r') block = design.getTopBlock() for net in block.getNets(): print net.getName() 13 Ruby: Dump Nets require 'oa' Oa::OaLibDefList.openLibs design = Oa::OaDesign.open(ARGV[0], ARGV[1], ARGV[2], 'r') block = design.getTopBlock block.getNets.each {|net| puts net.getName } 14 Tcl: Dump Nets package require oa oa::oaLibDefList_openLibs set design [oa::oaDesign_open [lindex $argv 0] [lindex $argv 1] [lindex $argv 2] "r"] set block [$design getTopBlock] oa::foreach net [$block getNets] { puts [$net getName] } 15 C#: Dump Nets using System; using OpenAccess_4; namespace DumpNets { class NetDumper { static void Main(string[] args) { oaLibDefList.openLibs(); oaNameSpace.push(new oaNativeNS()); oaDesign design = oaDesign.open(args[0], args[1], args[2], 'r'); oaBlock block = design.getTopBlock(); foreach(oaNet net in block.getNets()) { Console.WriteLine("{0}", net.getName()); } } } } 16 Comparison of oasPython to pyoa • Existing Python wrappers (LSI Python; “pyoa”) http://www.si2.org/openeda.si2.org/projects/python4oa • Performance problems previously seen are now resolved and oasPython is 2~4X faster than pyoa (SWIG 2.0.4) • Slight syntax differences (a fix-it module is provided to allow most pyoa code to be compatible with OAS Python) – Drop “_static” on static methods: oaDesign.static_find => oaDesign.find – Drop “Iter” methods (collections can become an iterator): oaBlock.getInstsIter => oaBlock.getInsts 17 Comparison of oasTcl to oaTcl • Existing Tcl wrappers (Cadence Tcl; “oaTcl”) • Name differences – Slight differences in static method names: DesignOpen oaDesign_open – Differences in OOP structure for method calls: [getTopBlock $design] [$design getTopBlock] • Other: – oaTcl uses “user units” (float); oasTcl uses “DB units” (integer) – the use of user units as a float is currently being enabled in oasTcl – oaTcl lists of floats for oaPoint, oaBox; oasTcl returns the wrapped class which allows method calls: $box1 contains $box2 set point3 [$point1 + $point2] puts [$point toStr] 18 Future usability ideas • Philosophical Question: – How closely should we tie ourselves with C++ API? – How should we differentiate convenience methods from the pure C++ API? Use a separate module? – Note: some convenience functions are already built-in (e.g. string and user unit conversions) • Prototype: quickly get/set oaObject properties (Ruby): shape.props[:foo] = 'bar' shape.props[:number] = 99 shape.props[:foo] shape.props[:number] • Idea: pull lib.def entries into a hash array 19 Future goals • 2011 goals – 8/11 – oaAppDef support for Perl and C# (already in Tcl, Python, Ruby) – 10/11 – Finalize on special oaScript features (UUDBU conversion) – 12/11 – Production release (v1.0) • Future goals – oaObserver support – Region query support – Enable plugins in scripting languages – Add convenience functions, extensions. – Additional languages? 20 Usage to date • Current usage – Hierarchy traverser – Simple schematic/layout GUI interface – Library utilities (e.g. create library, attach to techlib) – Create DM properties on lib, cell, view, and/or cellview from YAML – Design statistics reporting – Interacting with design with embedded OA scripting in EDA tools – OA-based design migration software • Future usage – Real-time web reporting? – Simple open-source design editor? 21 Usage within OpenPDK • Used in Si2 OpenPDK working group to extract symbol information and export to SVG and YAML 22.
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]
  • 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]
  • 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]
  • Broadband for Remote and Rural Communities
    Broadband for Remote and Rural Communities A project in innovative network technologies and their commercialisation potential by Duncan Ewan Cameron A thesis submitted in fulfilment of the requirements for the degree of Master of Innovation and Commercialisation Wellington School of Business and Government Victoria University of Wellington 2021 Abstract Wireless Internet Service Provider (WISP) networks are an essential part of providing Internet connectivity in remote and rural areas. Typically operating where large commercial Internet service providers deem it financially unviable to do so, WISPs frequently deal with sparse population densities and financial constraints that inhibit reliable network performance. Venture Networks, a research partner, and a WISP that serves the rural Horowhenua Region, has observed that many WISPs fail to become sustainable businesses, and pondered what could be done to improve outcomes for those providing Internet access where limited other options exist. This research proposes to investigate what commercial opportunities may exist for assisting WISP operators to run their networks in an easier, sustainable manner. To encourage the ubiquitous deployment of high-performance WISP networks, it was recognised that first the unique challenges faced by WISP operators on a wide scale must be understood. A Grounded Theory research methodology was adopted, and a study was conducted to develop an objective understanding of issues commonly encountered by WISP network operators. Interviews were conducted with WISP network operators, digital advocacy organisations, and network engineering consultants. Interview participants came primarily from New Zealand and North America. Of the New Zealand participants, nearly every WISP known to operate within the country was interviewed. Results of the Grounded Theory study helped to isolate a potential Minimum Viable Product (MVP) and formed the basis for product development and commercialisation.
    [Show full text]
  • Openaccess: the Team, the Technology and Value Proposition
    UT VLSI Seminar: OpenAccess: The Team, The Technology and Value Proposition Sumit DasGupta Vice President, Technology Silicon Integration Initiative (Si2) Austin, TX 78727 email: [email protected] Technologies for Open Architectures Outline • Si2 / OpenAccess Organization and Goals • OpenAccess Technology • OpenAccess Proliferation and Progress • OpenAccess Value Proposition • Call for Action Technologies for Open Architectures –1– First, Some Simple Q&A • Who / what is Si2? ¡ Silicon Integration Initiative is an EDA/electronics industry consortium focused on infrastructure standards based on community contributions to enhance chip design flows • What is OpenAccess? ¡ An open, industry-standard API, and a reference implementation, to enable plug-and-play connectivity of best-in-class EDA tools to create customized design flows ¡ Based on technology contribution from Cadence Design Systems • Who drives OpenAccess? ¡ Si2’s OpenAccess Coalition, which consists of members from leading EDA and end-user companies Technologies for Open Architectures –2– Si2 Organization Primary Charter: • Develop user-driven, infrastructure standards / solutions based on contributed technology to enhance silicon-centric design flows Si2 • Drive adoption of above solutions / standards Primary Charter: • Within Si2’s charter, identify industry-wide infrastructure problems suitable for solution and industry-wide adoption Si2 Councils (e.g., DTC) • Define specific goals of PTAB’s Primary Charter: • Create coalition of member companies • Drive specific problem identified
    [Show full text]
  • Openaccess Scripting Language Interfaces Architecture: Oascript
    OpenAccess Scripting Language Interfaces Architecture: oaScript John McGehee Voom, Inc. June 6, 2011 Copyright © 2011 John McGehee, Voom, Inc. This work is licensed under the Creative Commons Attribution 3.0 Unported License. http://oascript.si2.org Scripting Language Pioneers ● oaTcl, included with OpenAccess – Documented, widely available – Manually created wrappers ● LSI Logic Pyoa, download from Si2.org – Good performance – Wrapper code generated from OpenAccess API Doxygen documentation – 11,000 lines of C++ and 4000 lines of Python – Has become unmaintainable http://oascript.si2.org Design Objectives ● No modification of OpenAccess ● Fidelity to OpenAccess C++ API ● Use standard software development tools ● Unified architecture for every language ● OpenAccess version independent ● Industry-wide development and adoption ● Apache license http://oascript.si2.org The oaScript Approach ● Standard software tools – SWIG – GCC – Perl script – GNU Make, CMake ● Partitioned for expansion – Language agnostic code – Separate directories for language dependent code ● Perl, Python, Ruby, Tcl, and now C# http://oascript.si2.org Build Flow ExtractExtract OpenAccess OpenAccess API API ParseParse Tree Tree with with GCC GCC ProcessProcess Parse Parse Tree Tree into into SWIGSWIG Interface Interface with with Perl Perl GenerateGenerate Wrapper Wrapper CodeCode with with SWIG SWIG CompileCompile Generated Generated C++ C++ Code Code (C#(C# Only) Only) Compile Compile Generated Generated C# C# withwith GCC GCC or or Visual Visual Studio Studio withwith
    [Show full text]
  • Openaccess Coalition
    OpenAccess:OpenAccess: TheThe EDAEDA InfrastructureInfrastructure CreatedCreated byby thethe User,User, ForFor thethe UserUser April,April, 20092009 Sumit DasGupta Senior Vice President, Engineering Silicon Integration Initiative (Si2) 9111 Jollyville Road, Suite 250 Austin, TX 78759 Silicon Integration Initiative Innovation Through Collaboration 1 Introduction Silicon Integration Initiative Innovation Through Collaboration 2 WhoWho WeWe AreAre • Si2 Mission Improve interoperability and integration across silicon design flows ¾ Advantages in cost, time to market, and IC performance ¾ Includes integration with manufacturing • Membership (as of 04/01/2009) 89 corporate members See updated list on Si2 Member List (http://www.si2.org/?page=28) • Philosophy Business focus on collaborative solutions to shared problems Customer-centric, but leveraging strong supplier partnerships • Approach Dedicated technical staff and infrastructure for complex needs Holistic approach to market-oriented adoption success Silicon Integration Initiative Innovation Through Collaboration ValueValue Proposition:Proposition: EconomicsEconomics ofof CollaborationCollaboration • Cost sharing offers “1/N” leverage • Standards can enable new growth • No one has monopoly on good ideas • Partner with leaders in supply chain Confidence by being a co-owner Shared control of industry destiny Silicon Integration Initiative Innovation Through Collaboration 4 Si2Si2 Coalitions:Coalitions: IndependentIndependent butbut SynergisticSynergistic OpenAccess Coalition OA Change
    [Show full text]