Steven M. Rubin
Chapter 4: Synthesis Tools
2.5 Layout Level
2.5.5 Artwork Environment
Artwork is not electrical. An artwork environment is simply a set of components for the design of arbitrary graphics. These graphics can be used to embellish circuit layouts (which is common in
PC-board and chip layout) or they can be used independently of electronics; for example, to make figures for papers and slides. In any case, an artwork environment must be able to do any kind of layout, so a first reaction is to make this environment have a few basic geometric components such as a line, a polygon, a circle, and some text.
A look at any sketchpad editor, however, will reveal that complex primitives are often provided to the artist. Arrowheads, triangles, splines, and many more shapes appear in design menus. Even circuit and other scientific symbols can be found. Thus the existence of this environment in conjunction with the other electronic environments described here can be beneficial, given that components from all
environments can be mixed in a single design. Since a CAD system must provide the graphical human interface, I/O, database facilities, and design primitives, it may as well throw in a few purely graphical components and be truly useful.
Computer Aids for VLSI Design
http://www.rulabinsky.com/cavd/text/chap02-5.html (9 of 10) [20/12/2000 12:01:59]
Previous Table of Contents Next Steven M. Rubin Static Free Software
http://www.rulabinsky.com/cavd/text/chap02-5.html (10 of 10) [20/12/2000 12:01:59]
Computer Aids for VLSI Design
Steven M. Rubin
Copyright © 1994
Chapter 2: Design Environments
Section 6 of 6
2.6 Summary
This chapter has illustrated a wide range of environments that can be provided for digital electronic design. Each environment consists of primitive components and their connections. It is important that an environment model the designer's notions of circuitry and provide a comfortable means of
communication with the design system. Environments exist at many levels of specification to help designers from the machine architect to the IC mask designer. There are even some environments that have nothing to do with electronics. All together, it should be seen that a well-planned set of components can be a great aid to design, and a good collection of environments can work together to provide a
powerful design facility.
Questions
How would you modify PMS for modern computer architectures?
1.
What is the most difficult aspect of translating from dataflow to control flow?
2.
Propose an alternative organization of design environments to the one in Fig. 2.2.
3.
How would you change the schematics environment to include wires with multiple signals (such as buses or transmission lines)?
4.
How does the sticks environment differ from the schematics environment?
5.
How would you graphically describe the ISP environment?
6.
Why is CMOS design more difficult than nMOS?
7.
Convert the AND, OR, NOT, and IMPLICATION to equivalent logic using only NOR.
8.
Computer Aids for VLSI Design
http://www.rulabinsky.com/cavd/text/chap02-6.html (1 of 3) [20/12/2000 12:02:04]
References
Baray, Mehmet B. and Su, Stephen Y. H., "A Digital System Modeling Philosophy and Design Language," Proceedings 8th Design Automation Workshop, 1-22, June 1971.
●
Bell, C. Gordon; Grason, John; and Newell, Allen, Designing Computers and Digital Systems Using PDP 16 Register Transfer Modules, Digital Press, Maynard, Massachusetts, 1972.
●
Bell, C. Gordon and Newell, Allen, Computer Structures: Readings and Examples, McGraw-Hill, New York, 1971.
●
Bell, J. L. and Slomson, A. B., Models and Ultraproducts: An Introduction, North-Holland and American Elsevier, New York, 1971.
●
Davis, A. L. and Drongowski, P. J., "Dataflow Computers: A Tutorial and Survey," University of Utah UUCS-80-109, July 1980.
●
Dennis, J. B., Fosseen, J. B., and Linderman, J. P., "Data Flow Schemas," Proceedings International Symposium on Theoretical Programming, 187-216, 1972.
●
Department of Defense, "Graphic Symbols for Logic Diagrams," MIL-STD-806B, Washington, D.C., February 1962.
●
Feller, A., "Automatic Layout of Low-Cost Quick-Turnaround Random-Logic Custom LSI Devices", Proceedings 13th Design Automation Conference, 79-85, June 1976.
●
Gibson, Dave and Nance, Scott, "SLIC-Symbolic Layout of Integrated Circuits," Proceedings 13th Design Automation Conference, 434-440, June 1976.
●
Glasser, Lance A. and Dobberpuhl, Daniel W., The Design and Analysis of VLSI Circuits, Addison-Wesley, Reading, Massachusetts, 1985.
●
Malachi, Yonatan and Owicki, Susan S., "Temporal Specifications of Self-Timed Systems,"
Proceedings C-MU Conference on VLSI Systems and Computations (Kung, Sproull, and Steele, eds), Computer Science Press, 203-212, 1981.
●
Moszkowski, Ben, "A Temporal Logic for Multilevel Reasoning about Hardware," IEEE Computer, 10-19, February 1985.
●
Newkirk, John and Mathews, Robert, The VLSI Designer's Library, Addison-Wesley, Reading, Massachusetts, 1983.
●
Patil, Suhas S., "An Asynchronous Logic Array," Project MAC tech memo TM-62, Massachusetts Institute of Technology, May 1975.
●
Rodriguez, Jorge E., A Graph Model for Parallel Computations, PhD dissertation, Massachusetts Institute of Technology, Report MAC-TR-64, September 1969.
●
Schediwy, Richard R., A CMOS Cell Architecture and Library, Masters thesis, University of Calgary Department of Computer Science, 1987.
●
Siewiorek, Daniel P.; Bell, C. Gordon; and Newell, Allen, Computer Structures: Principles and Examples, McGraw-Hill, New York, 1982.
●
Szabo, Kevin S. B.; Leask, James M.; and Elmasry, Mohamed I., "Symbolic Layout for Bipolar and MOS VLSI," IEEE Transactions on CAD, CAD-6:2, 202-210, March, 1987.
●
VanCleemput, W. M., "An Hierarchical Language for the Structural Description of Digital
●
http://www.rulabinsky.com/cavd/text/chap02-6.html (2 of 3) [20/12/2000 12:02:04]
Systems," Proceedings 14th Design Automation Conference, 377-385, June 1977.
Weste, Neil, "Virtual Grid Symbolic Layout," Proceedings 18th Design Automation Conference, 225-233, June 1981.
●
Weste, Neil and Eshraghian, Kamran, Principles of CMOS VLSI Design, Addison-Wesley, Reading, Massachusetts, 1985.
●
Williams, John D., "STICKS-A graphical compiler for high level LSI design," Proceedings AFIPS Conference 47, 289-295, June 1978.
●
Previous Table of Contents Next Steven M. Rubin Static Free Software
Computer Aids for VLSI Design
http://www.rulabinsky.com/cavd/text/chap02-6.html (3 of 3) [20/12/2000 12:02:04]
Computer Aids for VLSI Design
Steven M. Rubin
Copyright © 1994
Chapter 11: Electric
Section 1 of 7
11.1 Introduction
After many chapters of CAD in the abstract it is time to discuss a specific and real design system called
"Electric". This system is instructive because its source code is available to universities so that students may study its workings. Electric is also worthy because it embodies many of the notions described in this book. However, the most compelling reason for discussing this system is simply that it was programmed by the author of this book [Rubin].
Electric was built as an alternative to traditional VLSI design systems that did not combine graphics, connectivity, and accurate geometry. Many textual systems existed for VLSI design [Lipton et al.;
Johnson; Kingsley] and there were also graphics systems with no notion of connectivity [Ousterhout;
Batali and Hartheimer]. Some systems attempted to merge graphics and connectivity, but they always abstracted the graphics somewhat [Weste; Williams]. The goal of Electric was to combine these into one highly flexible system.
To implement connectivity, the Electric design system has an extendible database, built on a network structure. Nodes of the network correspond to components in the circuit, and arcs of the network are connecting wires. In addition to this network information, there are geometric data associated with every component and wire so that correct layout can be represented. Since the database is extendible, additional structures can be stored to describe behavior, power consumption, design rules, and so on.
The most interesting aspect of Electric is its programmability: Users can specify layout relationships that will be continuously enforced during design. This is achieved with a constraint system that hierarchically propagates layout relationships through the design. The constraint system strengthens the ability to do hierarchical design because different levels of the circuit always remain connected regardless of changes to the layout. Although these constraints are all spatial in nature, there are also many interpretive
programming systems available (LISP, TCL, and Mathematica) that allow more flexible
programmability. They also allow some parts of the design system to be coded in these languages.
Electric accepts the fact that there is an unlimited number of environments for doing design, and the
http://www.rulabinsky.com/cavd/text/chap11-1.html (1 of 2) [20/12/2000 12:02:09]
system integrates them in a uniform manner. A design environment is a single module describing primitive components and wires that can be composed into circuits. Included in the module is all the environmental information such as graphic attributes and simulation behavior. To create a module, one simply expresses the environment in network form so that it can be manipulated as a collection of nodes and arcs.
In addition to providing for any design environment, Electric also allows an unlimited number of
synthesis and analysis tools. The database oversees their execution in the fashion of an operating system so that each tool can operate in turn and keep up with the activities of the others. This flexibility allows tools to operate incrementally or in a batch style, and also keeps all activity consistent. Change control is managed by the database so that any incorrect tool activity can be undone. In this context of tools as processes, even the user interface is a tool, separate from the database.
This chapter provides detail on the four main aspects of Electric described here: the representation, programmability, design environments, and tools. Additional information can be obtained by contacting Static Free Software, the commercial distributor of the system. Electric is written in C [Kernighan and Ritchie] and its source code is available to universities through the author of this book. The code comes with internals manuals that explain the command structure, data structures, database subroutines, and the construction of new design environments.
Previous Table of Contents Next Steven M. Rubin Static Free Software
Computer Aids for VLSI Design
http://www.rulabinsky.com/cavd/text/chap11-1.html (2 of 2) [20/12/2000 12:02:09]
Computer Aids for VLSI Design
Steven M. Rubin
Copyright © 1994
Chapter 3: Representation
Section 1 of 7
3.1 Introduction
The most fundamental part of a VLSI design system is the representation that it uses to describe circuits.
Proper representation is crucial; it can make or break the entire program. A good representation allows the circuit to be conveniently stored, accessed, and manipulated, but a bad representation limits the system by making it wasteful, hard to debug, and slow. This chapter is about representations for VLSI design databases.
The most important concept is to make the representation similar to the mental model in the user's head.
This ensures that simple changes to the system requirements can be implemented with simple changes to the representation. It also results in more intuitive interaction when dealing with lower levels of the system. For example, internal error messages will make more sense if the representational context of the error is familiar to the user.
Another point about representation is that it must be tailored to produce the best response to the user.
This means that the classic tradeoff of space and time must be evaluated and used to plan the
representation. If the design system is destined to run on a very fast computer with limited memory, then the representation must be compact, storing less and letting the system compute more. If the code has to run on a slower machine with large physical and virtual memory, then the representation should keep more information to speed the immediate data-access needs. This large memory configuration is more common today and will be presumed throughout the chapter.
The first part of this chapter contains a general discussion of representation properties that should be found in any system. Such properties include object orientation for maximum extendibility, and
techniques for improved response. Also covered are the basic functions of a database that make demands on the representation. These functions include memory allocation, disk formats, change, and undo
control.
The second part of this chapter addresses itself specifically to the four aspects of VLSI design discussed in Chapter 1: hierarchy, views, connectivity, and geometry. Hierarchy is represented by having complex
http://www.rulabinsky.com/cavd/text/chap03-1.html (1 of 2) [20/12/2000 12:02:14]
components that are actually instances of other cells lower in the hierarchy. Views are represented with highly flexible data structures that can hold descriptions of any kind and can link to other views.
Connectivity is represented with networks of components and their connections. Geometry is represented with shapes, graphic attributes, and transformations. As this chapter will show, it is not a simple task to include all these representations in a design system.
Previous Table of Contents Next Steven M. Rubin Static Free Software
Computer Aids for VLSI Design
http://www.rulabinsky.com/cavd/text/chap03-1.html (2 of 2) [20/12/2000 12:02:14]
Computer Aids for VLSI Design
Steven M. Rubin
Copyright © 1994
Chapter 3: Representation
Section 2 of 7