Steven M. Rubin
Chapter 4: Synthesis Tools
3.6 Geometry Representation
3.6.3 Geometry Algebra
To go beyond the basic attributes of geometric representation, it is necessary to consider the kinds of operations that will be performed on these objects. One such operation is geometry algebra. This set of operation performs union, intersection, expansion, and contraction on object shapes. Union operations are typically used to merge two adjoining shapes into one. Intersection is used to find the common area of two shapes, often for the purpose of eliminating redundancy. Expansion and contraction operations push the edges of a shape away from or toward the center.
Combinations of these operations can be very powerful. For example, design-rule checking is often done by expanding an object by its minimum spacing distance and then looking for areas of intersection with other objects. These areas are the design-rule violations. Expansion and contraction are used in
compensation: a preprocessing step to fabrication that accounts for inaccuracies in manufacturing. There are even VLSI databases that require these algebra functions. For example, Caesar [Ousterhout 81]
represents rectangles in its database and uses intersection tests to keep the rectangles nonredundant
whenever changes are made. Nonredundant databases are occasionally required and often preferred. This is because they store less information and their analysis takes less time.
There are many forms of shape representation and each has its own methods of being algebraically manipulated. Manhattan rectangles are simple to modify. Polygons with 45-degree sides are more complex [Lanfri]. Arbitrary-angle polygons are the most complex but are often approximated with stair-stepped Manhattan rectangles [Batali and Hartheimer]. Circles, arcs, and conics demand a separate set of geometric algorithms, and become even more complex when mixed with polygonal
representations. Here again, many curved shapes are approximated polygonally [Whitney]. The user should be allowed to have control over the grain of curve approximation so that the necessary
smoothness can be produced.
Computer Aids for VLSI Design
http://www.rulabinsky.com/cavd/text/chap03-6.html (4 of 8) [20/12/2000 12:04:13]
The Polygon Package [Barton and Buchanan] performs all the geometric algebra functions and, in addition, allows both straight and curved lines to be used in the description of polygon boundaries.
Sheets, which are multiple collections of these lines, can be aggregated to define polygons with holes.
The most interesting representational aspect of this system is the organization of pairs of adjacent lines, sets of two pairs, sets of four pairs, and so on into a binary tree. The top of each tree encloses an entire polygon and each lower level of the tree has a bounding box that encloses its lines. This allows a search to rapidly find the specific lines involved in polygon intersections.
Another useful technique for storing polygonal information is winged-edge representation [Baumgart].
This representation captures the interrelation of polygons by sharing common edges and vertices. Thus a line on the border of two polygons will point to each one and will also be linked to the previous and subsequent edges on both polygons. This abundance of information is particularly useful in
three-dimensional polygonal representations and can be simplified somewhat in the two-dimensional CAD world.
3.6.4 Search
Search is the operation that places the greatest demands on the geometric representation. Two operations that are important are the search for the neighbors of an object and the search for all objects at a given point or area. The way to make this efficient is to store sorted adjacency in the representation so that this information does not have to be determined during the search. Such adjacency will take time to compute when changes are made but will save much time later.
The problem is to determine what form of adjacency to represent. If the geometric objects are sorted by their center, then there is no
information about their extent, and the relational information will not properly convey object location.
For example, Fig. 3.18 shows two polygons the center coordinates of which do not indicate a spatial ordering in the x axis. The correct information to represent is the boundaries. By storing sorted edges, a walk through the edge list will precisely identify the objects in a given neighborhood.
FIGURE 3.18 Center-based object ordering is useless for a search.
The simplest representation of sorted edges is a linked list of objects according to edge order. One list can order the edges along only one axis. Therefore two lists are needed: one to cover horizontal edges and a second list to cover vertical edges. In some circumstances, the lists may need to distinguish
between the two sides of an object. This means that the horizontal-edge list is actually two lists: one with the top edges and one with the bottom edges. For nonrectangular objects, a minimum bounding rectangle
http://www.rulabinsky.com/cavd/text/chap03-6.html (5 of 8) [20/12/2000 12:04:13]
is used. These lists can be used to delimit a neighborhood because, when the near edge of an object
extends beyond the bounds of the search, then the remaining objects on that direction's list are also out of range. For example, when searching for all objects in the range of 5 x 10, the program searches the left list until all objects bounds are less than 5 and then searches the right list until all objects bounds are greater than 10. The problem with this technique is that every object is represented multiple times and so it will be examined repeatedly during the search. Thus when a search for all objects in an area is
conducted, the left and right lists will give no information about the vertical position of an object, so a scan of these lists will not limit itself in the up and down directions. Only by clever use of these lists can waste be prevented. For example, if the area of search is taller than it is wide, then the left- and
right-edge lists should be used since they will do a better job of selection.
The tree is an obvious and well-used representation. Binary trees divide the represented objects in half and then divide each half into subhalves until each individual object is at a leaf of the tree. For
two-dimensional representation, the quad-tree divides space into four parts (in half along each axis) and then each quadrant is further divided into subquadrants until each object is placed properly in the tree. In general, a rectangle to be stored in a quad-tree will be placed at the lowest level that completely contains its area. This means that a rectangle that is centered along either axis will not be wholly in any quadrant and will be stored at the top of the tree. This loss of efficiency occurs throughout the quad-tree because of its inability to adapt to the needs of the data. One quad-tree implementation augments the spatial organization with x and y binary trees inside each quadrant to speed the search of objects once the
quadrant is selected [Kedem]. The only significant advantage of quad-trees is their ability to be addressed efficiently using the binary properties of coordinate values [Reddy and Rubin; McCreight]. The high bit of the x and y coordinate are concatenated into a two-bit number that indexes one of the four top-level quadrants; the next bit down is used to select the next subquadrant. Given proper quad-tree organization, addressing can be done exclusively with bit manipulation.
Another representation for spatial organization is called corner stitching [Ousterhout 84]. In it, all space in a layout is stored as a perfectly tiled area of nonoverlapping rectangles. Even the empty spaces have rectangles delimiting them. These area rectangles then have pointers that connect their corners to the adjacent area rectangles: The lower-left corner points to the rectangles below and to the left; the upper-right corner points to the rectangles above and to the right (see Fig. 3.19). With this representation, it is fairly simple to find the neighborhood of an object and to walk through the pointers in search of an object at a selected coordinate. However, it is necessary to use multiple "planes" of these rectangles in order to represent layout that overlaps on different layers.
Also, the representation is mostly intended for
Manhattan geometry and becomes complex when used otherwise.
FIGURE 3.19 Corner stitching.
Computer Aids for VLSI Design
http://www.rulabinsky.com/cavd/text/chap03-6.html (6 of 8) [20/12/2000 12:04:13]
Perhaps the best
FIGURE 3.20 R-tree organization: (a) Spatial ordering (b) Tree representation.
Insertion and deletion can be complex operations for R-trees. To insert a new object, the tree is searched from the top; at each level, the node that would expand least by the addition is chosen. When the bottom is reached, the object is added to the list if it fits. When there is no more room, the bottom node must be split in two, which adds a new element to the next higher node. This may recurse to the top, in which case the tree becomes deeper. Splitting a node is done by finding the two objects farthest apart along any dimension, and then clustering the remaining objects according to the rule of minimal boundary
expansion.
R-tree deletion is done simply by removing the entry. If, however, the removal causes the node to have too few objects (less than M), then the entire node is deleted and the remaining valid objects are
reinserted with the algorithm described in the previous paragraph. Deletion of a node may cause the next higher node also to contain too few objects, in which case the deletion recurses and may result in a
shortened tree. Object-size updates require deletion and reinsertion.
Regardless of the spatial representation, search can be aided by providing an initial guess as to which
http://www.rulabinsky.com/cavd/text/chap03-6.html (7 of 8) [20/12/2000 12:04:13]
objects are in the search area. When the search involves finding the neighbors of a particular object, that object is useful as the initial guess. When the object at a specified coordinate is sought, the most recently selected object can be used as the initial guess for the search; designers often work within a small area, so it is safe to assume that the next object selected will be close to the last object selected. This is the
principle of locality and it applies to many tasks.
Speedy search requires that large amounts of information be available and rapidly accessible. This information must be organized well and the initial conditions for search must be favorable in order to achieve that speed. Efficient search is needed by many aspects of design and is crucial to a good 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-6.html (8 of 8) [20/12/2000 12:04:13]
Computer Aids for VLSI Design
Steven M. Rubin
Copyright © 1994
Chapter 3: Representation
Section 7 of 7
3.7 Summary
This chapter has discussed the representation of VLSI design. The first half of the chapter covered basic representational needs for any design task. The remainder of the chapter concentrated on the specific representations for circuitry: hierarchy, views, connectivity, and geometry. Implementation of a complete VLSI design database is complex but provides the necessary basis for the algorithms described in the rest of this book.
Questions
When is the array a useful structure?
1.
Besides relieving the problem of fragmented memory, what is another advantage of clustering memory allocation into separate arenas?
2.
How could a pointer-based representation remain identical on disk and in memory?
3.
What is the disadvantage of having the database manage change control?
4.
To implement wires the ends of which do not extend beyond their connection point, some systems pull the connection points toward the center and then compute a normal wire that extends its ends by one-half of its width. What problems might this approach cause?
5.
Would sparse matrix representations work for VLSI geometry? Why or why not?
6.
How would you extend corner stitching to handle arbitrary angles?
7.
http://www.rulabinsky.com/cavd/text/chap03-7.html (1 of 3) [20/12/2000 12:04:19]
References
Arnold, John E., "The Knowledge-Based Test Assistant's Wave/Signal Editor: An Interface for the Management of Timing Constraints," Proceedings 2nd Conference on Artificial Intelligence
Applications, 130-136, December 1985.
●
Atwood, Thomas M., "An Object-Oriented DBMS for Engineering Design Support Applications,"
Proceedings Compint Conference, Montreal, 299-307, September 1985.
●
Barton, E. E. and Buchanan, I., "The Polygon Package," Computer Aided Design, 12:1, 3-11, January 1980.
●
Batali, J. and Hartheimer, A., "The Design Procedure Language Manual," AI Memo 598, Massachusetts Institute of Technology, 1980.
●
Baumgart, Bruce Guenther, Geometric Modeling for Computer Vision, PhD dissertation, Stanford University, August 1974.
●
Borning, Alan, "ThingLab-A Constraint-Oriented Simulation Laboratory," PhD dissertation, Stanford University, July 1979.
●
Borriello, Gaetano, "WAVES: A Digital Waveform Editor for the Design, Documentation, and Specification of Interfaces," unpublished document.
●
Brown, Harold; Tong, Christofer; and Foyster, Gordon, "Palladio: An Exploratory Environment for Circuit Design," IEEE Computer, 16:12, 41-56, December 1983.
●
Bryant, Randal, "Preface", Proceedings 3rd Caltech Conference on VLSI (Bryant ed), Computer Science Press, v-viii, March 1983.
●
Clark, G. C. and Zippel, R. E., "Schema: An Architecture for Knowledge Based CAD," ICCAD '85, 50-52, November 1985.
●
Deutsch, L. P. and Bobrow, D. G., "An Efficient Incremental Automatic Garbage Collector,"
CACM, 19:9, 522-526, September 1976.
●
Gosling, James, Algebraic Constraints, PhD dissertation, Carnegie-Mellon University, CMU-CS-83-132, May 1983.
●
Guttman, Antonin, "R-Trees: A Dynamic Index Structure for Spatial Searching," ACM SIGMOD, 14:2, 47-57, June 1984.
●
Karplus, Kevin, "Exclusion Constraints, a new application of Graph Algorithms to VLSI Design,"
Proceedings 4th MIT Conference on Advanced Research in VLSI (Leiserson, ed), 123-139, April 1986.
●
Kedem, Gershon, "The Quad-CIF Tree: A Data Structure for Hierarchical On-Line Algorithms,"
Proceedings 19th Design Automation Conference, 352-357, June 1982.
●
Knuth, Donald E., The Art of Computer Programming, Volume 1/Fundamental Algorithms, Addison-Wesley, Reading, Massachusetts, 1969.
●
Lanfri, Ann R., "PHLED45: An Enhanced Version of Caesar Supporting 45 degree Geometries,"
Proceedings 21st Design Automation Conference, 558-564, June 1984.
●
Leinwand, Sany M., "Integrated Design Environment," unpublished manuscript, April 1984.
●
McCreight, E.M., "Efficient Algorithms for Enumerating Intersecting Intervals and Rectangles,"
●
Computer Aids for VLSI Design
http://www.rulabinsky.com/cavd/text/chap03-7.html (2 of 3) [20/12/2000 12:04:19]
Xerox Palo Alto Research Center, CSL-80-9, 1980.
Mead, C. and Conway, L., Introduction to VLSI Systems, Addison-Wesley, Reading, Massachusetts, 1980.
●
Nelson, Greg, "Juno, a constraint-based graphics system," Computer Graphics, 19:3, 235-243, July 1985.
●
Newell, Martin E. and Sequin, Carlo H., "The Inside Story on Self-Intersecting Polygons,"
Lambda, 1:2, 20-24, 2nd Quarter 1980.
●
Newman, William M. and Sproull, Robert F., Principles of Interactive Computer Graphics, 2nd Edition, McGraw-Hill, New York, 1979.
●
Ousterhout, J. K., "Caesar: An Interactive Editor for VLSI Layouts," VLSI Design, II:4, 34-38, 1981.
●
Ousterhout, John K., "Corner Stitching: A Data-Structuring Technique for VLSI Layout Tools,"
IEEE Transactions on CAD, 3:1, 87-100, January 1984.
●
Reddy, D. R. and Rubin, Steven M., "Representation of Three-Dimensional Objects,"
Carnegie-Mellon University Department of Computer Science, Report CMU-CS-78-113, April 1978.
●
Schediwy, Richard R., A CMOS Cell Architecture and Library, Masters thesis, University of Calgary Department of Computer Science, 1987.
●
Sproull, Robert F. and Sutherland, Ivan E., Asynchronous Systems II: Logical Effort and Asynchronous Modules, to be published.
●
Stamos, James W., "A Large Object-Oriented Virtual Memory: Grouping Strategies, Measurements, and Performance," Xerox PARC SCG-82-2, May 1982.
●
Steele, G. L. Jr., The Definition and Implementation of a Computer Programming Language Based on Constraints, PhD dissertation, Massachusetts Institute of Technology, August 1980.
●
Sussman, Gerald Jay and Steele, Guy Lewis, "CONSTRAINTS-A Language for Expressing Almost-Hierarchical Descriptions," Artificial Intelligence, 14:1, 1-39, August 1980.
●
Sutherland, Ivan E., Sketchpad: A Man-Machine Graphical Communication System, PhD dissertation, Massachusetts Institute of Technology, January 1963.
●
Weinreb, Daniel and Moon, David, "Flavors: Message Passing in the Lisp Machine," MIT Artificial Intelligence Lab Memo #602, November 1980.
●
Whitney, Telle, Hierarchical Composition of VLSI Circuits, PhD dissertation, California Institute of Technology Computer Science, report 5189:TR:85, 1985.
●
Zippel, Richard, "An Expert System for VLSI Design," Proceedings IEEE International Symposium on Circuits and Systems, 191-193, May 1983.
●
Previous Table of Contents Next Steven M. Rubin Static Free Software
http://www.rulabinsky.com/cavd/text/chap03-7.html (3 of 3) [20/12/2000 12:04:19]
Computer Aids for VLSI Design
Steven M. Rubin
Copyright © 1994
Chapter 4: Synthesis Tools
Section 2 of 7