Formal Equivalence Checking and Design Debugging Frontiers in Electronic Testing

Total Page:16

File Type:pdf, Size:1020Kb

Formal Equivalence Checking and Design Debugging Frontiers in Electronic Testing FORMAL EQUIVALENCE CHECKING AND DESIGN DEBUGGING FRONTIERS IN ELECTRONIC TESTING Consulting Editor Vishwani D. Agrawal Books in the series: On-Line Testing for VLSI M. Nicolaidis, Y. Zorian ISBN: 0-7923-8132-7 Defect Oriented Testing for CMOS Analog and Digital Circuits M. Sachdev ISBN: 0-7923-8083-5 Reasoning in Boolean Networks: Logic Synthesis and Verification Using Testing Techniques W. Kunz, D. Stoffel ISBN: 0-7923-9921-8 Introduction to IDDQ Testing S. Chakravarty, P.J. Thadikaran ISBN: 0-7923-9945-5 Multi-Chip Module Test Strategies ¥. Zorian ISBN: 0-7923-9920-X Testing and Testable Design of High-Density Random-Access Memories P. Mazumder, K. Chakraborty ISBN: 0-7923-9782-7 From Contamination to Defects, Faults and Yield Loss J.B. Khare, W. Maly ISBN: 0-7923-9714-2 Efficient Branch and Bound Search with Applications to Computer-Aided Design X.Chen, M.L. Bushnell ISBN: 0-7923-9673-1 Testability Concepts for Digital ICs: The Macro Test Approach F.P.M. Beenker, R.G. Bennetts, A.P. Thijssen ISBN: 0-7923-9658-8 Economics of Electronic Design, Manufacture and Test M. Abadir, A.P. Ambler ISBN: 0-7923-9471-2 IDDQ Testing of VLSI Circuits R. Gulati, C. Hawkins ISBN: 0-7923-9315-5 FORMAL EQUIVALENCE CHECKING AND DESIGN DEBUGGING by Shi-Yu Huang National Semiconductor Corporation and Kwang-Ting (Tim) Cheng University 0/ California, Santa Barbara ~. SPRINGER SCIENCE+BUSINESS" MEDIA, LLC Library of Congress Cataloging-in-Publication Huang, Shi-Yu, 1965- Formal equivalence checking and design debugging / by Shi-Yu Huang and Kwang-Ting (Tim) Cheng p. cm. Includes bibliographical references and index. ISBN 978-1-4613-7606-4 ISBN 978-1-4615-5693-0 (eBook) DOI 10.1007/978-1-4615-5693-0 1. Integrated circuits-- Verification. 2. Electronic circuit design--Data processing. 3. Application specific integrated circuits--Design and construction. I. Cheng, Kwang-Ting, 1961- 11. Title. TK7874.H82 1998 621.3815--dc21 98-23993 CIP Copyright <0 1998 Springer Science+Business Media New York. Second Printing 2002. Originally published by Kluwer Academic Publishers, New York in 1998 Softcover reprint of the hardcover 1st edition 1998 This printing is a digital duplication of the original edition. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, mechanical, photo-copying, recording, or otherwise, without the prior written permission of the publisher, Springer Science+Business Media, LLC Printed on acid-free paper. FORMAL EQUIVALENCE CHECKING AND DESIGN DEBUGGING CONTENTS Foreword xi Preface xvii Chapter 1 Introduction 1 1.1 Problems of Interest ......................................................................................... 1 1.1.1 Equivalence Checking ........................................................................ 3 1.1.2 Design Error Diagnosis and Correction .............................................. 8 1.2 Organization ................................................................................................... 10 PART I EQUIVALENCE CHECKING Chapter 2 Symbolic Verification 17 2.1 Symbolic Verification by FSM TraversaL .................................................... 17 2.2 Implicit State Enumeration by BDD .............................................................. 19 2.2.1 Set Representation ............................................................................ 20 2.2.2 Input/Output Relation ....................................................................... 21 2.2.3 Transition Relation ........................................................................... 23 2.2.4 Next-State Computation ................................................................... 25 2.2.5 Complete Flow ......................................................................... , ........ 26 2.2.6 Error Trace Generation ..................................................................... 28 2.3 Speed-up Techniques ..................................................................................... 30 2.3.1 An Efficient Method for Constructing Transition Relation ;............. 30 2.3.2 Reduction on Image Computation .................................................... 33 2.3.3 Reduction on Reachable State Computation .................... , ............... 36 2.4 Summary ........................................................................................................ 37 Chapter 3 Incremental Verification for Combinational Circuits 39 3.1 Substitution-Based Algorithms ...................................................................... 39 3.1.1 Brand's Algorithm Using ATPG ....................................................... 39 Pairing up candidate pairs ................................................................ 41 Pruning the miter incrementally ....................................................... 42 Checking the equivalence of primary outputs .................................. 44 3.1.2 Enhancement by Local BDD ....................................................... , .... 44 Constructing BDDs using a dynamic support .................................. 46 Experimental results ......................................................................... 48 3.2 Learning-Based Algorithms ...................................................................... :.... 50 3.2.1 Recursive Learning ....................................... , ............................. :..... 50 Vlll 3.2.2 Verification Flow Using Recursive Learning .................................... 51 3.3 Transformation-Based Algorithm .................................................................. 53 3.3.1 Identifying Dissimilar Region .......................................................... 53 3.3.2 Similarity Enhancing Transformation (SET) .................................... 55 3.4 Summary ........................................................................................................ 57 Chapter 4 Incremental Verification for Sequential Circuits 61 4.1 Definition of Equivalence .............................................................................. 62 :4.1.1 Equivalence of Circuits With A Reset State ..................................... 62 "4.1.2 Equivalence of Circuits Without A Reset State ................................ 62 Sequential Hardware Equivalence .................................................... 63 Safe Replaceability ........................................................................... 65 Three-Valued Safe Replaceability .................................................... 66 Three-Valued Equivalence ................................................................ 67 4.1.3 Comparison of Definitions ................................................................ 67 4.2 Methodology .................................................................................................. 72 4.2.1 Checking Three-Valued Safe Replaceability .................................... 73 4.2.2 Checking Reset Equivalence ............................................................. 74 4.2.3 Checking Three-Valued Equivalence ................................................ 76 4.3 The Speed-Up Techniques ............................................................................. 76 4.3.1 Test Generation with Breadth-First-Search ...................................... 77 4.3.2 Exploring the Structural Similarity ................................................... 79 4.3.3 Identifying Equivalent Flip-Flop Pairs ............................................. 80 4.4 Experimental Results ..................................................................................... 84 4.5 Summary ........................................................................................................ 86 4.6 Appendix ........................................................................................................ 87 Chapter-S AQUILA: A Local BDD-based Equivalence Verifier 91 5.1 Overall Flow .................................................................................................. 91 5.2 Two-Level Inductive Algorithm ..................................................................... 93 5.2.1 .Second-Level Assume-And-Then-Verify ......................................... 95 5.3 Symbolic Backward Justification ................................................................... 97 5.3.1 Partial Justification .......................................................................... 100 5.3.2 An Example .................................................................................... 102 5.4 Experimental Results ................................................................................... 105 5.5 Summary ...................................................................................................... 107 Chapter 6 Algorithm for Verifying Retimed Circuits 111 6.1 Introduction .................................................................................................. 111 6.2 Pre-Processing Algorithm ............................................................................ 113 6.2.1 Signature Computation ................................................................... 115 ix 6.2.2 Deriving Candidate Delayed-Equivalent Pairs ............................... 115 6.2.3 Delay Compensation ....................................................................... 117 6.3 Experimental Results ................................................................................... 118 6.4 Summary .....................................................................................................
Recommended publications
  • Synthesis and Verification of Digital Circuits Using Functional Simulation and Boolean Satisfiability
    Synthesis and Verification of Digital Circuits using Functional Simulation and Boolean Satisfiability by Stephen M. Plaza A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy (Computer Science and Engineering) in The University of Michigan 2008 Doctoral Committee: Associate Professor Igor L. Markov, Co-Chair Assistant Professor Valeria M. Bertacco, Co-Chair Professor John P. Hayes Professor Karem A. Sakallah Associate Professor Dennis M. Sylvester Stephen M. Plaza 2008 c All Rights Reserved To my family, friends, and country ii ACKNOWLEDGEMENTS I would like to thank my advisers, Professor Igor Markov and Professor Valeria Bertacco, for inspiring me to consider various fields of research and providing feedback on my projects and papers. I also want to thank my defense committee for their comments and in- sights: Professor John Hayes, Professor Karem Sakallah, and Professor Dennis Sylvester. I would like to thank Professor David Kieras for enhancing my knowledge and apprecia- tion for computer programming and providing invaluable advice. Over the years, I have been fortunate to know and work with several wonderful stu- dents. I have collaborated extensively with Kai-hui Chang and Smita Krishnaswamy and have enjoyed numerous research discussions with them and have benefited from their in- sights. I would like to thank Ian Kountanis and Zaher Andraus for our many fun discus- sions on parallel SAT. I also appreciate the time spent collaborating with Kypros Constan- tinides and Jason Blome. Although I have not formally collaborated with Ilya Wagner, I have enjoyed numerous discussions with him during my doctoral studies. I also thank my office mates Jarrod Roy, Jin Hu, and Hector Garcia.
    [Show full text]
  • A Logic Synthesis Toolbox for Reducing the Multiplicative Complexity in Logic Networks
    A Logic Synthesis Toolbox for Reducing the Multiplicative Complexity in Logic Networks Eleonora Testa∗, Mathias Soekeny, Heinz Riener∗, Luca Amaruz and Giovanni De Micheli∗ ∗Integrated Systems Laboratory, EPFL, Lausanne, Switzerland yMicrosoft, Switzerland zSynopsys Inc., Design Group, Sunnyvale, California, USA Abstract—Logic synthesis is a fundamental step in the real- correlates to the resistance of the function against algebraic ization of modern integrated circuits. It has traditionally been attacks [10], while the multiplicative complexity of a logic employed for the optimization of CMOS-based designs, as well network implementing that function only provides an upper as for emerging technologies and quantum computing. Recently, bound. Consequently, minimizing the multiplicative complexity it found application in minimizing the number of AND gates in of a network is important to assess the real multiplicative cryptography benchmarks represented as xor-and graphs (XAGs). complexity of the function, and therefore its vulnerability. The number of AND gates in an XAG, which is called the logic net- work’s multiplicative complexity, plays a critical role in various Second, the number of AND gates plays an important role cryptography and security protocols such as fully homomorphic in high-level cryptography protocols such as zero-knowledge encryption (FHE) and secure multi-party computation (MPC). protocols, fully homomorphic encryption (FHE), and secure Further, the number of AND gates is also important to assess multi-party computation (MPC) [11], [12], [6]. For example, the the degree of vulnerability of a Boolean function, and influences size of the signature in post-quantum zero-knowledge signatures the cost of techniques to protect against side-channel attacks.
    [Show full text]
  • Logic Optimization and Synthesis: Trends and Directions in Industry
    Logic Optimization and Synthesis: Trends and Directions in Industry Luca Amaru´∗, Patrick Vuillod†, Jiong Luo∗, Janet Olson∗ ∗ Synopsys Inc., Design Group, Sunnyvale, California, USA † Synopsys Inc., Design Group, Grenoble, France Abstract—Logic synthesis is a key design step which optimizes of specific logic styles and cell layouts. Embedding as much abstract circuit representations and links them to technology. technology information as possible early in the logic optimiza- With CMOS technology moving into the deep nanometer regime, tion engine is key to make advantageous logic restructuring logic synthesis needs to be aware of physical informations early in the flow. With the rise of enhanced functionality nanodevices, opportunities carry over at the end of the design flow. research on technology needs the help of logic synthesis to capture In this paper, we examine the synergy between logic synthe- advantageous design opportunities. This paper deals with the syn- sis and technology, from an industrial perspective. We present ergy between logic synthesis and technology, from an industrial technology aware synthesis methods incorporating advanced perspective. First, we present new synthesis techniques which physical information at the core optimization engine. Internal embed detailed physical informations at the core optimization engine. Experiments show improved Quality of Results (QoR) and results evidence faster timing closure and better correlation better correlation between RTL synthesis and physical implemen- between RTL synthesis and physical implementation. We elab- tation. Second, we discuss the application of these new synthesis orate on synthesis aware technology development, where logic techniques in the early assessment of emerging nanodevices with synthesis enables a fair system-level assessment on emerging enhanced functionality.
    [Show full text]
  • Placement and Routing in Computer Aided Design of Standard Cell Arrays by Exploiting the Structure of the Interconnection Graph
    325 Computer-Aided Design and Applications © 2008 CAD Solutions, LLC http://www.cadanda.com Placement and Routing in Computer Aided Design of Standard Cell Arrays by Exploiting the Structure of the Interconnection Graph Ioannis Fudos1, Xrysovalantis Kavousianos 1, Dimitrios Markouzis 1 and Yiorgos Tsiatouhas1 1University of Ioannina, {fudos,kabousia,dimmark,tsiatouhas}@cs.uoi.gr ABSTRACT Standard cell placement and routing is an important open problem in current CAD VLSI research. We present a novel approach to placement and routing in standard cell arrays inspired by geometric constraint usage in traditional CAD systems. Placement is performed by an algorithm that places the standard cells in a spiral topology around the center of the cell array driven by a DFS on the interconnection graph. We provide an improvement of this technique by first detecting dense graphs in the interconnection graph and then placing cells that belong to denser graphs closer to the center of the spiral. By doing so we reduce the wirelength required for routing. Routing is performed by a variation of the maze algorithm enhanced by a set of heuristics that have been tuned to maximize performance. Finally we present a visualization tool and an experimental performance evaluation of our approach. Keywords: CAD VLSI design, geometric constraints, graph algorithms. DOI: 10.3722/cadaps.2008.325-337 1. INTRODUCTION VLSI circuits become more and more complex increasingly fast. This denotes that the physical layout problem is becoming more and more cumbersome. From the early years of VLSI design, engineers have sought techniques for automated design targeted to a) decreasing the time to market and b) increasing the robustness of the final product.
    [Show full text]
  • Designing a RISC CPU in Reversible Logic
    Designing a RISC CPU in Reversible Logic Robert Wille Mathias Soeken Daniel Große Eleonora Schonborn¨ Rolf Drechsler Institute of Computer Science, University of Bremen, 28359 Bremen, Germany frwille,msoeken,grosse,eleonora,[email protected] Abstract—Driven by its promising applications, reversible logic In this paper, the recent progress in the field of reversible cir- received significant attention. As a result, an impressive progress cuit design is employed in order to design a complex system, has been made in the development of synthesis approaches, i.e. a RISC CPU composed of reversible gates. Starting from implementation of sequential elements, and hardware description languages. In this paper, these recent achievements are employed a textual specification, first the core components of the CPU in order to design a RISC CPU in reversible logic that can are identified. Previously introduced approaches are applied execute software programs written in an assembler language. The next to realize the respective combinational and sequential respective combinational and sequential components are designed elements. More precisely, the combinational components are using state-of-the-art design techniques. designed using the reversible hardware description language SyReC [17], whereas for the realization of the sequential I. INTRODUCTION elements an external controller (as suggested in [16]) is utilized. With increasing miniaturization of integrated circuits, the Plugging the respective components together, a CPU design reduction of power dissipation has become a crucial issue in results which can process software programs written in an today’s hardware design process. While due to high integration assembler language. This is demonstrated in a case study, density and new fabrication processes, energy loss has sig- where the execution of a program determining Fibonacci nificantly been reduced over the last decades, physical limits numbers is simulated.
    [Show full text]
  • HSPICE Tutorial
    UNIVERSITY OF CALIFORNIA AT BERKELEY College of Engineering Department of Electrical Engineering and Computer Sciences EE105 Lab Experiments HSPICE Tutorial Contents 1 Introduction 1 2 Windows vs. UNIX 1 2.1 Windows ......................................... ...... 1 2.1.1 ConnectingFromHome .. .. .. .. .. .. .. .. .. .. .. .. ....... 2 2.1.2 RunningHSPICE ................................. ..... 2 2.2 UNIX ............................................ ..... 3 2.2.1 Software...................................... ...... 3 2.2.2 RunningSSH.................................... ..... 4 2.2.3 RunningHSPICE ................................. ..... 4 3 Simulating Circuits in HSPICE and Awaves 5 3.1 HSPICENetlistSyntax ............................. .......... 5 3.2 Examples ........................................ ....... 6 3.2.1 Transient analysis of a simple RC circuit . ............... 6 3.2.2 Operatingpointanalysisforadiode . ............. 7 3.2.3 DCanalysisofadiode............................ ........ 8 3.2.4 ACanalysisofahigh-passfilter. ............ 9 3.2.5 Transferfunctionanalysis . ............ 10 3.2.6 Pole-zeroanalysis. .......... 10 3.2.7 The .measure command................................... 11 3.3 Includinganotherfile. .. .. .. .. .. .. .. .. .. .. .. .. ............ 12 4 Using Awaves 13 4.1 Interfacedescription . ............. 13 4.2 Deletingplots................................... .......... 13 4.3 Printingplots................................... .......... 13 4.4 Makingameasurement .............................. ......... 13 4.5 Zooming........................................
    [Show full text]
  • Logic Synthesis Meets Machine Learning: Trading Exactness for Generalization
    Logic Synthesis Meets Machine Learning: Trading Exactness for Generalization Shubham Raif,6,y, Walter Lau Neton,10,y, Yukio Miyasakao,1, Xinpei Zhanga,1, Mingfei Yua,1, Qingyang Yia,1, Masahiro Fujitaa,1, Guilherme B. Manskeb,2, Matheus F. Pontesb,2, Leomar S. da Rosa Juniorb,2, Marilton S. de Aguiarb,2, Paulo F. Butzene,2, Po-Chun Chienc,3, Yu-Shan Huangc,3, Hoa-Ren Wangc,3, Jie-Hong R. Jiangc,3, Jiaqi Gud,4, Zheng Zhaod,4, Zixuan Jiangd,4, David Z. Pand,4, Brunno A. de Abreue,5,9, Isac de Souza Camposm,5,9, Augusto Berndtm,5,9, Cristina Meinhardtm,5,9, Jonata T. Carvalhom,5,9, Mateus Grellertm,5,9, Sergio Bampie,5, Aditya Lohanaf,6, Akash Kumarf,6, Wei Zengj,7, Azadeh Davoodij,7, Rasit O. Topalogluk,7, Yuan Zhoul,8, Jordan Dotzell,8, Yichi Zhangl,8, Hanyu Wangl,8, Zhiru Zhangl,8, Valerio Tenacen,10, Pierre-Emmanuel Gaillardonn,10, Alan Mishchenkoo,y, and Satrajit Chatterjeep,y aUniversity of Tokyo, Japan, bUniversidade Federal de Pelotas, Brazil, cNational Taiwan University, Taiwan, dUniversity of Texas at Austin, USA, eUniversidade Federal do Rio Grande do Sul, Brazil, fTechnische Universitaet Dresden, Germany, jUniversity of Wisconsin–Madison, USA, kIBM, USA, lCornell University, USA, mUniversidade Federal de Santa Catarina, Brazil, nUniversity of Utah, USA, oUC Berkeley, USA, pGoogle AI, USA The alphabetic characters in the superscript represent the affiliations while the digits represent the team numbers yEqual contribution. Email: [email protected], [email protected], [email protected], [email protected] Abstract—Logic synthesis is a fundamental step in hard- artificial intelligence.
    [Show full text]
  • "Routing-Directed Placement for the Triptych FPGA" (PDF)
    ACM/SIGDA Workshop on Field-Programmable Gate Arrays, Berkeley, February, 1992. Routing-directed Placement for the TRIPTYCH FPGA Elizabeth A. Walkup, Scott Hauck, Gaetano Borriello, Carl Ebeling Department of Computer Science and Engineering, FR-35 University of Washington Seattle, WA 98195 [Carter86], where the routing resources consume more Abstract than 90% of the chip area. Even so, the largest Xilinx Currently, FPGAs either divorce the issues of FPGA (3090) seldom achieves more than 50% logic placement and routing by providing logic and block utilization for random logic. A lack of interconnect as separate resources, or ignore the issue interconnect resources also leads to decreased of routing by targeting applications that use only performance as critical paths are forced into more nearest-neighbor communication. Triptych is a new circuitous routes. FPGA architecture that attempts to support efficient Domain-specific FPGAs like the Algotronix implementation of a wide range of circuits by blending CAL1024 (CAL) and the Concurrent Logic CFA6000 the logic and interconnect resources. This allows the (CFA) increase the chip area devoted to logic by physical structure of the logic array to more closely reducing routing to nearest-neighbor communication match the structure of logic functions, thereby [Algotronix91, Concurrent91]. The result is that these providing an efficient substrate (in terms of both area architectures are restricted to highly pipelined dataflow and speed) in which to implement these functions. applications, for which they are more efficient than Full utilization of this architecture requires an general-purpose FPGAs. Implementing circuits using integrated approach to the mapping process which these FPGAs requires close attention to routing during consists of covering, placement, and routing.
    [Show full text]
  • Research Needs in Computer-Aided Design: Logic and Physical Design and Analysis
    Research Needs in Computer-Aided Design: Logic and Physical Design and Analysis Logic synthesis and physical design, once considered separate topics, have grown together with the increasing need for tools which reach upward toward design at the system level and at the same time require links to detailed physical and electrical circuit characteristics. This list is a summary of important areas of research in computer-aided design seen by SRC members, ranging from behavioral-level design and synthesis to capacitance and inductance analysis. Note that research in CAD for analog/mixed signal is particularly encouraged, in addition to digital and hybrid system-on-chip design and analysis tools. Not included here are research needs in test and in verification, which are addressed in separate needs documents, and needs in circuit and system design itself, rather than tools research; these needs are assessed in the science area page for Integrated Circuits and Systems Sciences. Earlier needs lists with additional details are found in the "Top Ten" lists in synthesis and physical design developed by SRC task forces. System-Level Estimation and Partitioning System-level design tools require estimates to rapidly select a small number of potentially optimum candidates from a possibly enormous set of possible solutions. Models should consider power consumption, performance, die area (manufacturing cost), package size and cost, noise, test cost and other requirements and constraints. Partitioning of functional tasks between multiple hardware and software components, considering trade-offs between requirements and constraints, must be made using reasonably accurate models. Standard methods are also needed to estimate the performance of microprocessors and DSP cores to enable automated core selection.
    [Show full text]
  • Nanoelectronic Mixed-Signal System Design
    Nanoelectronic Mixed-Signal System Design Saraju P. Mohanty Saraju P. Mohanty University of North Texas, Denton. e-mail: [email protected] 1 Contents Nanoelectronic Mixed-Signal System Design ............................................... 1 Saraju P. Mohanty 1 Opportunities and Challenges of Nanoscale Technology and Systems ........................ 1 1 Introduction ..................................................................... 1 2 Mixed-Signal Circuits and Systems . .............................................. 3 2.1 Different Processors: Electrical to Mechanical ................................ 3 2.2 Analog Versus Digital Processors . .......................................... 4 2.3 Analog, Digital, Mixed-Signal Circuits and Systems . ........................ 4 2.4 Two Types of Mixed-Signal Systems . ..................................... 4 3 Nanoscale CMOS Circuit Technology . .............................................. 6 3.1 Developmental Trend . ................................................... 6 3.2 Nanoscale CMOS Alternative Device Options ................................ 6 3.3 Advantage and Disadvantages of Technology Scaling . ........................ 9 3.4 Challenges in Nanoscale Design . .......................................... 9 4 Power Consumption and Leakage Dissipation Issues in AMS-SoCs . ................... 10 4.1 Power Consumption in Various Components in AMS-SoCs . ................... 10 4.2 Power and Leakage Trend in Nanoscale Technology . ........................ 10 4.3 The Impact of Power Consumption
    [Show full text]
  • PDF of the Configured Flow
    mflowgen Sep 20, 2021 Contents 1 Quick Start 3 2 Reference: Graph-Building API7 2.1 Class Graph...............................................7 2.1.1 ADK-related..........................................7 2.1.2 Adding Steps..........................................7 2.1.3 Connecting Steps Together...................................8 2.1.4 Parameter System........................................8 2.1.5 Advanced Graph-Building...................................8 2.2 Class Step................................................9 2.3 Class Edge................................................ 10 3 User Guide 11 3.1 User Guide................................................ 11 3.2 Connecting Steps Together........................................ 11 3.2.1 Automatic Connection by Name................................ 11 3.2.2 Explicit Connections...................................... 13 3.3 Instantiating a Step Multiple Times................................... 14 3.4 Sweeping Large Design Spaces..................................... 15 3.4.1 More Details.......................................... 17 3.5 ADK Paths................................................ 19 3.6 Assertions................................................ 20 3.6.1 The File Class and Tool Class................................ 21 3.6.2 Adding Assertions When Constructing Your Graph...................... 21 3.6.3 Escaping Special Characters.................................. 21 3.6.4 Multiline Assertions...................................... 21 3.6.5 Defining Python Helper Functions..............................
    [Show full text]
  • Writing Simple Spice Netlists
    By Joshua Cantrell Page <1> [email protected] Writing Simple Spice Netlists Introduction Spice is used extensively in education and research to simulate analog circuits. This powerful tool can help you avoid assembling circuits which have very little hope of operating in practice through prior computer simulation. The circuits are described using a simple circuit description language which is composed of components with terminals attached to particular nodes. These groups of components attached to nodes are called netlists. Parts of a Spice Netlist A Spice netlist is usually organized into different parts. The very first line is ignored by the Spice simulator and becomes the title of the simulation.1 The rest of the lines can be somewhat scattered assuming the correct conventions are used. For commands, each line must start with a ‘.’ (period). For components, each line must start with a letter which represents the component type (eg., ‘M’ for MOSFET). When a command or component description is continued on multiple lines, a ‘+’ (plus) begins each following line so that Spice knows it belongs to whatever is on the previous line. Any line to be ignored is either left blank, or starts with a ‘*’ (asterik). A simple Spice netlist is shown below: Spice Simulation 1-1 *** MODEL Descriptions *** .model nm NMOS level=2 VT0=0.7 KP=80e-6 LAMBDA=0.01 vdd *** NETLIST Description *** R1 M1 M1 vdd ng 0 0 nm W=3u L=3u in 3µ/3µ + R1 in ng 50 ng 5V - Vdd Vdd vdd 0 5 50Ω Vin in 0 2.5 Vin + *** SIMULATION Commands *** - 2.5V 0 .op .end Figure 1: Schematic of Spice Simulation 1-1 Netlist The first line is the title of the simulation.
    [Show full text]