Computer Aids for VLSI Design

Second Edition

Steven M. Rubin

Static Free Software

Copyright (c) 1994

Cover Photo

Table of Contents

Chapter 1: The Characteristics of Digital Electronic Design
 1.1: Design
 1.2: Hierarchy
 1.3: Views
 1.4: Connectivity
 1.5: Spatial Dimensionality
 1.6: Summary
Chapter 2: Design Environments
 2.1: Introduction
 2.2: System Level
 2.3: Algorithm Level
 2.4: Component Level
 2.5: Layout Level
 2.6: Summary
Chapter 3: Representation
 3.1: Introduction
 3.2: General Issues of Representation
 3.3: Hierarchy Representation
 3.4: View Representation
 3.5: Connectivity Representation
 3.6: Geometry Representation
 3.7: Summary
Chapter 4: Synthesis Tools
 4.1: Introduction
 4.2: Cell Contents Generation and Manipulation
 4.3: Generators of Layout Outside the Cells
 4.4: Cells and Their Environment
 4.5: Silicon Compilers
 4.6: Postlayout Generators
 4.7: Summary
Chapter 5: Static Analysis Tools
 5.1: Introduction
 5.2: Node Extraction
 5.3: Geometrical Design-Rule Checkers
 5.4: Electrical-Rule Checkers
 5.5: Verification
 5.6: Summary
Chapter 6: Dynamic Analysis Tools
 6.1: Introduction
 6.2: Circuit-Level Simulators
 6.3: Logic-Level Simulators
 6.4: Functional- and Behavioral-Level
 6.5: Simulation Issues
 6.6: Event-Driven Simulation
 6.7: Hardware and Simulation
 6.8: Summary
Chapter 7: The Output of Design Aids
 7.1: Introduction
 7.2: Circuit Boards
 7.3: Integrated Circuits
 7.4: Implementation Issues
 7.5: Summary
Chapter 8: Programmability
 8.1: Introduction
 8.2: Imperative Programming
 8.3: Declarative Programming
 8.4: Hierarchy
 8.5: Summary
Chapter 9: Graphics
 9.1: Introduction
 9.2: Display Graphics
 9.3: Hardcopy Graphics
 9.4: Input Devices
 9.5: Summary
Chapter 10: Human Engineering
 10.1: Introduction
 10.2: Task and User Modeling
 10.3: Information Display
 10.4: Command Language
 10.5: Feedback
 10.6: Summary
Chapter 11: Electric
 11.1: Introduction
 11.2: Representation
 11.3: Programmability
 11.4: Environments
 11.5: Tools
 11.6: Designing a Chip
 11.7: Summary
 A: Gerber Format
 B: Caltech Intermediate Format
 C: GDS II Format
 D: Electronic Design Interchange Format
 E: EBES Format
 F: References for the Entire Book
 G: Index

Boiler Plate

Author's affiliation:

 Originally: Schlumberger Palo Alto Research
 Currently: Static Free Software

Publishing history:

 First printed in 1987 by Addison-Wesley Publishing Company
 Part of the Addison-Wesley VLSI Systems Series

 Book out of print in 1993; Copyright returned to Steven M. Rubin
 Published on the World Wide Web in 1997.

Copyright (c) 1994 Steven M. Rubin

Permission is granted to make and distribute verbatim copies of this book provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this book under the conditions for verbatim copying, provided also that they are labeled prominently as modified versions, that the authors' names and title from this version are unchanged (though subtitles and additional authors' names may be added), and that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this book into another language, under the above conditions for modified versions.

Library of Congress Cataloging-in-Publication Data

 Rubin, Steven M.
  Computer Aids for VLSI Design.

  Bibliography: p.
  Includes index.
  1. Integrated circuits--Very large scale integration--Design and construction--Data processing.
  2. Computer-aided design. I. Title.
 TK7874.R83 1987   621.395'0285   86-26571
 ISBN 0-201-05824-3


 Cover photograph courtesy of U.S. Geological Survey (photo, Ed Garrigues).

Foreword to the First Edition

The subject of VLSI systems spans a broad range of disciplines, including semiconductor devices and processing, integrated electronic circuits, digital logic, design disciplines and tools for creating complex systems, and the architecture, algorithms, and applications of complete VLSI systems. The Addison-Wesley VLSI Systems Series is being organized as a set of textbooks and research references that present the best current work across this exciting and diverse field, with each book providing for its subject a perspective that ties it to related disciplines.

Computer Aids for VLSI Design by Steven Rubin presents a broad and coherent view of the computational tools available to the VLSI designer. This book contains insights and information that will be valuable both to chip designers and to tool builders. Modern VLSI computer aided design (CAD) systems allow the chip designer to access in a consistent and convenient way a variety of synthesis and analysis tools. Such tools have advanced considerably in the past several years, both in their scope and in their ability to handle large designs.

Part of what distinguishes the expert chip designer from the novice is an understanding the entire suite of tools that are available, and how they work together to support the design flow of a project. One can come to understand the capabilities and limitations of individual tools in some cases from their external interfaces and roles in the design process. In other cases it is useful to appreciate how the tools work internally. Rubin presents both perspectives for all of the important categories of synthesis and analysis tools. The exposition is readily understandable to anyone familiar with chip design and computer programming.

The starting point for this book was a design system called "Electric," which Rubin designed and programmed almost single-handedly over the past four years. Electric is a complete and elegant system that has been used for the design and verification of many chips. The book is not a "manual" for using Electric. Rather, Electric is used as a vehicle for exposing design choices and internal interfaces that are common to many of the advanced design systems currently available. Thus this book allows one to learn in a realistic setting something of the art practiced by VLSI design system developers.

Lynn Conway
Ann Arbor, Michigan

Chuck Seitz
Pasadena, California

Preface to the First Edition

This book describes how computers can be programmed to help in the design of very-large-scale integrated (VLSI) circuits. Such circuits are becoming increasingly common due to their ease of manufacture, low cost, and simplified design methodologies. No longer must the designer study electronics and physics to build an integrated circuit. Digital electronic design is taught widely and is accessible to people with any scientific background.

As the complexity of these electronic circuits increases, the need to use computers for their design becomes more important. Although computer-aided design (CAD) systems have existed for quite some time, many of them are inadequate for current tasks, and a continuous flow of new tools is being developed. These tools perform more and more of the detailed and repetitive work involved in VLSI system design, thus reducing the time it takes to produce a chip.

The need for better VLSI design systems has fostered a need to study these systems more carefully. The book, Introduction to VLSI Systems by Mead and Conway, opened up this field of study to a wider audience than ever before. A follow-on book, Principles of CMOS VLSI Design by Weste and Eshraghian, combined with the first text to present a broad foundation for the construction of VLSI circuits. This book continues where the others have left off: it explores the computer-aided design systems that enable such construction.

Although students of this textbook need not have done so, they are advised to have studied one of the mentioned VLSI books and to have done some chip design. This will provide the proper background to distinguish VLSI design from more traditional circuit layout. Students should also be familiar with basic computer-programming issues. The reader of this text is therefore presumed to be a VLSI designer who would like to develop better design tools. In addition to descriptions of techniques, much reference information is provided in this book.

Another potential reader of this book is the VLSI designer who, although not interested in programming new tools, would like to develop a finer understanding of the tools that are already in use. This book illustrates the operation and interrelation of the parts of VLSI design systems. Designers who understand these concepts will be better able to work with their systems and to help specify future CAD directions.

Also, a person who has never designed chips can still benefit from this book. The subject matter is large system design, which includes many considerations that are independent of electronics. However, many examples do refer to transistors or logic gates as they appear in a circuit. If the reader is not familiar with these notions, then he or she is likely to find the discussions confusing. The reader needs to understand these concepts only abstractly, however; the book does not rely on circuit analysis or electrical-engineering concepts.

This book is geared for advanced undergraduate or graduate students. In a course taught to designers and tool builders at Schlumberger, the book was covered with one lecture per chapter. Although some chapters could easily stretch into two lectures, the pace was not too fast. The course provided a good exposition of CAD for VLSI systems. Questions at the end of each chapter range from simple exercises to unsolved problems that can be used as discussion points.

Previous texts on CAD systems have focused on specific aspects of the design problem, such as synthesis algorithms or hardware-description languages. This book takes a much broader view. It starts with basics, such as design environments and machine representations; covers the fundamental subjects of synthesis and analysis tools; and also discusses important peripheral notions such as output formats, programmability, graphics, and human engineering.

The last chapter of the book ties together the lessons by describing a working VLSI design system called "Electric." This is an instructive example because it embodies many of the features described in the text and because the source code is available to universities for experimentation. Interested schools can contact the author of this book to obtain the system. A more extensive version of Electric, called "Bravo3 VLSI," is sold commercially by Applicon, a Schlumberger company.

Like any reference book, this one is certain to be inaccurate. Readers are cautioned against blindly accepting details, and should test all techniques thoroughly. The only way to ensure that an algorithm is correct is to test it in a system.

Preface to the Second Edition

It has been a decade since this book first appeared in print, and much has happened in the world of electronic CAD. Although some of the details in the first edition are no longer correct, all of the basic concepts still apply. For example, the last ten years have seen the creation of the terms ASIC (Application-Specific Integrated Circuit) and FPGA (field-programmable gate-array). Although these terms did not appear in the first edition, the concepts they embody are not new, and therefore are covered in the book.

In creating this second edition, I have corrected those details that are wrong, but left the bulk of the book untouched. Thus, readers of this edition will find corrections to the CIF Appendix, the Electric internals, and many small but useful details. However, I have had neither the time nor the inclination to radically alter the book. So, if you are looking for new chapters on concepts that did not exist before (such as technology mapping), then you will have to look elsewhere.

As a sign of the times, this edition of the book appears electronically, rather than on paper. The entire volume is here, and is freely available. Although I ask no compensation for the book's use, you must retain the copyright information on all parts that you use.

Acknowledgments to the First Edition

Thanks are due to a number of people who helped me with this book. The series editors, Lynn Conway and Chuck Seitz, provided good feedback on early drafts of the manuscript, as did the reviewers Bryan Ackland, AT&T Bell Laboratories; John Hayes, University of Michigan; Richard F. Lyon, Schlumberger Palo Alto Research; Neil Weste, Symbolics, Inc.; and Telle Whitney, Schlumberger Palo Alto Research. Thanks are also due to the two guest authors: Bob Hon and Sundar Iyengar. The Fairchild librarians tirelessly helped with numerous references. Finally, a broad note of appreciation goes to the employees of Schlumberger who attended the initial course and waded through the first draft.

On a personal level, I am indebted to my wife, Amy Lansky, and my family who have been supportive during this ordeal. Amy provided perspective by reminding me how similar the process of writing a book is to being in graduate school and struggling with a dissertation. I would also like to thank the punk-rock band, S.D.

Palo Alto, California, 1987S.M.R.

Acknowledgments to the Second Edition

This edition of the book would not exist if it weren't for the efforts of Brian Gardiner, who took my CAD system, Electric, and created a company to sell it.

On a personal level, I remain indebted to my wife, Amy Lansky, and my family, which now numbers two children: Izaak and Max. And, of course, I would like to thank the rock&roll band, Severe Tire Damage.

Portola Valley, California, 1997S.M.R.

Steven M. Rubin
       Static Free Software SFS        Begin Begin