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 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 | Static Free Software |