Pycells for an Open Semiconductor Industry

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. However, one of the main steps of design- on the design data are shown directly in a separate window of ing an integrated circuit is drawing the physical structure, the the GUI. layout. Thus the EDA-tools should have a feature for automatic In our development, we have used Python API library to generation of parametrized, recurring structures as pre-defined write Python codes which generate recurring layout structures layouts in a library. The layout generators which are presently based on a given set of parameters. Typical recurring structures in use, are developed using a proprietary language, SKILL, and are primitive devices that are used in integrated circuit design are only usable as a feature of a specific EDA-tool. On the such as resistors, capacitors and transistors. The electrical other hand, the second major drawback of using the proprietary properties of the mentioned devices are simplified to geometric layout generators is the lack of interoperability characteristic. dimensions (e. g. width and length) which serve as parameters Consequently, the semiconductor manufacturers are not able to for the Python scripts. The object oriented nature of Python support their customers in an optimal way. Hence, the use of an matches very well with this task as shown in the following open standard for an EDA database also allows chip designers example: to work on the same chip-design using tools, which often have more affordable prices, from different EDA vendors. A typical CMOS semiconductor process offers n-channel The aim of this project is developing interoperable layout and p-channel transistors. Each of these transistor types can arXiv:1607.00859v1 [cs.OH] 1 Jul 2016 generators with Python (PyCells), for H35, C35, and S35 have multiple voltage ratings (e. g. 5V, 20V, 50V 120V), technologies of ams AG, that can be used by any EDA-tool accordingly resulting in different layout structures. In general, supporting OpenAccess database. The OpenAccess database transistors have similar gate, source and drain structures, yet will be further explained in the next section. For a certain they have different doping concentrations for the implant set of parameters, PyCells should generate layouts identical to regions of the semiconductor material and different protection those generated by SKILL codes (PCells). Furthermore, extra structures, which need to be reflected in the layout. Therefore, interactive features such as stretching and auto-abutment are we have created a set of base classes in Python from which added to PyCells which are verified to be accurate and are the more specific transistors inherit common structures, while optimized with respect to performance. adding only structures dedicated to the type of transistor. This approach reduces duplicate code and makes maintaining the * Corresponding author: [email protected] scripts more intuitive when the number of devices increases. y Fraunhofer IIS Finally the Python scripts are compiled to byte-code and stored z ams AG inside the OpenAccess library. A plugin of the OpenAccess Copyright ○c 2015 Sepideh Alassi et al. This is an open-access arti- database ascertains loading the correct script when a parameter cle distributed under the terms of the Creative Commons Attribution of the corresponding device is modified. In the next section, License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited. the development of PyCells is explained using a sample high http://creativecommons.org/licenses/by/3.0/ voltage transistor. Substrate Polysilicon .moveTo() Diffusion Contact Metal 1 deviceBox 4 PROC. OF THE 8th EUR. CONF. ON PYTHON IN SCIENCE (EUROSCIPY 2015) DloGen MosHvBase SplitDevice + defineParamSpecs + splitSetup + addLabel + splitDevice Substrate + checkLengthWidth + connectPins .mirrorY() + setupParams Polysilicon + setupTechdata + setupOxideThickness Diffusion + genLayout + getDevices Contact + genDeviceLayout Metal 1 MosHvBaseIso NMOS20S Deep P-Well + defineAdditionalParamSpecs + setupAdditionalParams + setupAdditionalParams Shallow P-Well + genDeviceLayout + setupGuardType deviceBox + drawGuardRing + addLabel Shallow N-Well NMOS20 + setupAdditionalParams + genDeviceLayout NMOSI20 PMOS20 PMOS20S + basicSetup Creation of the source and drain contacts. + drawSourceBulk + setupAdditionalParams + defineAdditionalParamSpecs + setupAdditionalParams Fig. 3: + genDeviceLayout + setupAdditionalParams + genDeviceLayout + basicSetup + genDeviceLayout + toggleContact SpitDevice + drawSourceBulk + basicSetup + drawSourceBulk NMOSD20 + setupAdditionalParams SpitDevice SpitDevice + basicSetup + drawSourceBulk NMOSDI20 PMOSD20 + setupAdditionalParams + defineAdditionalParamSpecs + basicSetup + setupAdditionalParams + drawSourceBulk + basicSetup + drawSourceBulk Fig. 1: Class diagram for PyCells of 20V MOS transistors . Fig. 4: Deep and shallow p-well under the drain. regions with different doping concentrations have to be created Parameter PyCell Layout at the drain terminal of the transistor. (see Figure4) Definition Evaluation Similarly an n-well should be added to define the device body, followed by a p-implant layer on source and drain. Fig. 2: Evaluation flow of the parameters . Furthermore, the bulk connection of the pmos20t device is accomplished by a contact ring around the device which has to make the connection to the n-type isolation well, for which 2.1 Sample PyCell Development n-type implant and a shallow n-well are required. (see Figure The process of developing a PyCell is described in this section 5) step by step using the sample 20V MOS transistor, pmos20t. Lastly, the overall device structures, such as definition layer In order to simplify the development of new layout generators, for the thickness of the gate oxide, should be added to PyCell. the architecture shown in Figure1 has been established. The resulting layout for pmos20t is shown in Figure6. For developing the PyCells, first step is setting the parame- Figure7 shows the layout generated for a transistor with Substrate ters of the transistor, such as length, width, number of fingers, 50V guard ring and multiplication factor of 2. Polysilicon type of guardring, etc. As shown in Figure2 Diffusion The technology data (td) provided by foundry is read to Contact 2.2 Optimization have access to the layers and values to initialize some of Metal 1 Deep P-Well the variables such as gate oxide thickness, etc. After the The computation timedeviceBox plays a crucial role in designing in- tegrated circuits. The complexity of the designs and the Shallow P-Well parameters are set and evaluated with respect to the acceptable Shallow N-Well amount of operationsoverall necessary to generate layouts of high thresholds defined by the foundry, the dimensions of layers as guardBox PPLUS well as spaces between them are calculated. voltage devices or the large devices increase the computation NPLUS After completing the setup step, the first structure to be Deep N-Well generated is the polysilicon gate which has an octagonal shape drawn with a polysilicon layer (poly1) with a gap inside for drain contact. Later the gate structure is appended to the list of shapes which are connected to the gate pin. p1Gate= OctagonWithHole(layers.poly1, gateOuterBox, gateInnerBox, td[’p1_corn’],0) self.pins[’G’].append(p1Gate) Other structures of the transistor, such as diffusion layer, drain and source pins and the contacts of them, are generated serially in a predefined order. (see Figure3) In order to increase the breakdown voltage of the device, Fig. 5: Bulk contact as a ring with an n-implant and an n-well. PYCELLS FOR AN OPEN SEMICONDUCTOR INDUSTRY 5 Substrate

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    6 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us