Ciranova PyCell Studio Tutorial
18 pages
English

Ciranova PyCell Studio Tutorial

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
18 pages
English
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description







Ciranova PyCell Studio Tutorial



Copyright © 2006-2007 Ciranova, Inc.
http://www.ciranova.com

Doc name: PyCell Studio Tutorial 4.2
Doc rev: 7
Software rev: 4.2
Doc date: Dec 8, 2007
Introduction

This tutorial explains the basics of the Ciranova PyCell Studio product, and how it can be
used to develop parameterized cell layout generators. The first section of this tutorial
introduces Ciranova and the technology which Ciranova has developed for building
parameterized cell generators. The next section of this tutorial describes the Integrated
Development Environment which Ciranova has built using the Wing IDE environment
used for developing and debugging Python programs. This IDE has been customized by
Ciranova to work with Python-based parameterized cells.





































Ciranova, PyCell, PyCell Studio, PCell Xtreme, Ciranova Helix, Pyros and Pyros LE are trademarks of Ciranova, Inc.
PyCell Studio Tutorial p. ii Introduction
Ciranova™ provides a Python Application Programming Interface (API) that is used to
create Python Parameterized Cells (PyCells) at any level of complexity that operate in the
Open Access environment.

The PyCell Studio™ is a group of tools, built around the Ciranova API that can be used
to form a complete PyCell™ development environment.

The groups of tools contained in the PyCell Studio are:

Pyros™ – An Open Access layout viewer that has ...

Sujets

Informations

Publié par
Nombre de lectures 550
Langue English

Extrait

Ciranova PyCell Studio Tutorial Copyright © 2006-2007 Ciranova, Inc. http://www.ciranova.com Doc name: PyCell Studio Tutorial 4.2 Doc rev: 7 Software rev: 4.2 Doc date: Dec 8, 2007 Introduction This tutorial explains the basics of the Ciranova PyCell Studio product, and how it can be used to develop parameterized cell layout generators. The first section of this tutorial introduces Ciranova and the technology which Ciranova has developed for building parameterized cell generators. The next section of this tutorial describes the Integrated Development Environment which Ciranova has built using the Wing IDE environment used for developing and debugging Python programs. This IDE has been customized by Ciranova to work with Python-based parameterized cells. Ciranova, PyCell, PyCell Studio, PCell Xtreme, Ciranova Helix, Pyros and Pyros LE are trademarks of Ciranova, Inc. PyCell Studio Tutorial p. ii Introduction Ciranova™ provides a Python Application Programming Interface (API) that is used to create Python Parameterized Cells (PyCells) at any level of complexity that operate in the Open Access environment. The PyCell Studio™ is a group of tools, built around the Ciranova API that can be used to form a complete PyCell™ development environment. The groups of tools contained in the PyCell Studio are: Pyros™ – An Open Access layout viewer that has many additional built-in capabilities, including interactive DRC. Cnpy – A Python shell programming environment that can be used to interactively issue commands to the Python engine. Cnpy can be used in conjunction with the pyros layout viewer to create a text based, development environment with graphic capability. CnExp – A pre-configured version of the cnpy programming environment which has been tailored for learning the Python API. Wing IDE – A fully functional Integrated Development Environment (IDE) with debugging capabilities. The Wing IDE brings several benefits to the user both in the code development phase and in the debugging phase of a project and can also be used in conjunction with the pyros layout viewer to create a sophisticated PyCell development environment. Ciranova OA plug-in – The plug-in enables Open Access tools to execute the Python PyCell code and generate the geometries described in the code. The complexity of the code being developed might dictate the environment used to create the code. For example, a novice user exploring the capabilities of the system or creating simple PyCells might use the shell environment, cnpy and the pyros layout viewer as a basic “high function, low frills” environment. A user that is creating a more complex PyCell might use the Wing Integrated Development Environment (IDE) with the pyros layout viewer for it's code management and graphic debugging capabilities. PyCell Studio Tutorial p. 1 Python Shell Wing IDE Environment Environment Open Access DB Python API Python API Both environments offer complete access to the API. This tutorial will focus on the use of the Wing IDE with the layout viewer for developing Python code. For more information on using the shell programming environment, please refer to the Ciranova Python API Tutorial. • Python API The Ciranova Python API provides a large number of base and derived classes which are used to define the objects used to create Python Parameterized Cells. The API is organized into functional groupings as illustrated in the diagram below. Shape & Instance Design Technology Classes Classes Classes Ciranova Python API Geometric Utility Connectivity Classes Classes Classes PyCell Studio Tutorial p. 2 The Python programming language provides a highly productive object oriented programming environment which can be easily extended. The Ciranova system extends these capabilities by providing class definitions for objects that closely correspond to the objects used in physical layout design. For example, layers, shapes on layers and other geometric objects are easily represented and acted on in this extended programming environment. Additionally, class definitions for higher level functions are provided that help the designer in more complex scenarios. These definitions include classes for contacts, connection bars, paths, routes and contact rings. For a complete description of the Python API, please refer to the following documents available for download from the Ciranova website (http://www.ciranova.com) Ciranova Python API Tutorial Ciranova Python API Concise Reference Manual Ciranova Python API Reference Manual Ciranova Python API Summary • Anatomy of a Python Parameterized Cell A PyCell, regardless of complexity, will have a minimum of three steps involved. They are: 1) Defining the parameters for the PyCell that can be used to customize each instance. 2) Reading and processing the parameters for the PyCell. 3) Generating the layout that is based on the defined and processed parameters. Additional functions and steps that add different capabilities to the PyCell are normally included. Examples of these types of capabilities might include: functions to size the devices based on some user supplied algorithm, functions to create different device topologies based on input parameters and functions to place geometries based on complex, conditional design rules. • PyCell Development Process There are four distinct steps that should be followed during the development of a PyCell: 1) Use the Ciranova Python extensions to develop the source code for the PyCell. The code can be created using a text editor such as vi, or emacs, or the Integrated Development Environment. The code can either be created from scratch or by using code snippets from previously created PyCells or from the sample code provided. 2) Compile the Python code into an Open Access database. Ciranova supplies a utility, cngenlib that is used for this purpose. 3) View the generated layout. This can be done using the Ciranova Open Access PyCell Studio Tutorial p. 3 Viewer (pyros) or any OA compliant tool. The Ciranova OA plug-in is required by the viewing tool. 4) Based on the results of viewing the generated layouts, make any necessary changes to the Python code, re-compile and view the subsequent layout. • Ciranova/Wing IDE The Integrated Development Environment offers the user many extended capabilities that can be utilized during both the code development phase and the code debugging phase. A customizable User Interface lets users pick from the many tools available within Wing including: • Auto-completion and Source Assistant -- Wing's editor and the Source Assistant tool provide context-appropriate completion options and documentation as you edit your code. • Goto-definition -- Available from the toolbar, Source menu, and by right-clicking on symbols in the editor. • Source Index -- Quick access to other parts of a source file from the menus at the top of the source editor. • Mini-search -- Wing's powerful keyboard-driven search and replace facility is available from the Edit menu. Using the keyboard equivalents given in the menu, bring up the search entry area at the bottom of the screen, type in a search string, then repeat the key bindings for repeated search forward/backward. • Search Manager -- Provides multi-file, wild card, and regular expression search and replace. Available as Search/Replace in the tools area. • Source Browser -- Module or class oriented display of the structure of your source code. Show both the Source Browser and Source Assistant for detailed information about selected symbols. • Basic Debugging -- Set a breakpoint and start debugging. You can use the Stack Data, Modules tools to inspect or change program data. Wing distinguishes between fatal and non-fatal exceptions at the time they are raised, allowing you to inspect live program state more often. Conditional breakpoints are a powerful tool in isolating complex bugs by stopping before they occur. Debug process I/O is shown in the integrated I/O tool (or optionally in an external console). • Debug Probe -- This tool provides an interactive Python prompt that executes code in the current stack frame of a paused debug process. The Debug Probe is particularly useful in isolating and understanding complex bugs, and designing code that fixes the problem. • Watching Values -- Enter expressions to watch in the Watch tool, or right-click on any of the data views to track value over time by symbolic name or object reference. • Python Shell -- This Python command prompt lets you try out code in a “sandbox” process kept isolated from Wing IDE and your debug process. PyCell Studio Tutorial p. 4 This tutorial will walk the user through the creation of a project, the creation of a simple rectangle PyCell and then a transistor PyCell using pre-existing blocks of code for specific functions. Ciranova supplies a library of elements that can be used as a starting point for development. Once the code has been completed, testing and debugging a PyCell will be demonstrated. Please Note This tutorial assumes that you are running in the Linux environment and have downloaded and installed the appropriate Linux PyCell Studio Kit and the Ciranova Wing IDE and that the appropriate path information has been added to the user's environment. This tutorial also assumes that you have copied the MyTutorialPyCells directory from the tutorial folder located in the Ciranova installation hierarchy to your home directory. After copying this directory into your home directory, make sure that the files in this directory are writable; this is done with the Linux
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents