Comput. & Graphics Vol. 5, pp. 103-113 Pergamon Press Ltd., 19~0. Printed in Great Britain
COLOR-MAPPING TECHNIQUES FOR COMPUTERAIDED DESIGN AND VERIFICATION OF VLSI SYSTEMS'H: STEVEN L. TANIMOTO Department of Computer Science, University of Washington, Seattle, WA 98195, U.S.A.
(Received 5 May 1980) Abstract---Color raster-scan displays are often equipped with hardware for color transformation. Because the transformation can be redefined much more quickly than a full image can be computed (in a host) and subsequently displayed, it is preferable when possible to perform image operations by simply changing the mapping. Here an interactive layout system for NMOS VLSI is described which gives immediate feedback in color. Viewing modes are emphasized; opaque and translucent modes are discussed which allow the flexibility required for efficient understanding of the design by the designer. The color table is also used to help the designer detect violations of design rules; design rule violations can be readily detected when the transformation unit is used to highlight overlaps of selected VLSI layers or fringe structures derived from them. These color-mapping methods for man-machine interaction promise to enhance the productivity of the designer considerably, and they point the way to VLSI design systems of the future. l. INTRODUCTION
1.1 Color in CAD In the past, most computer-aided design using graphics has used line (vector) graphics hardware. Similarly, the graphics and interactive techniques have been oriented toward vector devices. Color has been available for a while now in two forms for CRT graphics: color linedrawing displays and color-raster displays with a few (typically 8) colors available. Full-color displays having 1024 or more displayable colors, once used almost exclusively for image processing and animation, are more and more frequently being used in computer-aided design. As the cost of memory continues to decline, we can expect this trend to also continue. These devices offer some potential advantages over vector equipment and limited-co}or raster-graphics systems. Full color allows each displayed point of an image to carry significantly more information than limited color or black-and-white does[I,2]. However, realizing this potential requires new thinking on the part of software system developers and users alike. Hardware designers, of course, should also be aware of new potential uses of system features. 1.2 Color tables Many full-color display systems now include hardware for automatically mapping pixel values to arbitrary colors. Such color mappings may be defined and redefined at will under software control. The time it takes to change the color mapping is generally small in comparison to the time it takes to change the entire contents of the display's image memory (typical image memories are frame buffers of 512 x 512 x 12 bits). Interactive techniques for these systems should exploit the color maps whenever appropriate. An interesting apiSupported by National Science Foundation Grant ENG7909246. :~Aset of color illustrations for this paper may be obtained by sending a check (in the amount of US $12.00 payable to the University of Washington)to the author. CAG Vol. 5, No. 2-~-E
plication for color mapping was described[3] where a form of real-time animation was shown to be conveniently programmed using color mapping hardware. Here we describe applications for such hardware in computer-aided design. 1.3 VLSI design : Special problems 1.3.1. Design complexity. Designing very-large-scale integrated circuits poses some special problems. Not the least of these is managing the complexity of the design[4]. The designer must understand the system he is designing at several levels of abstraction simultaneously. This is inherently demanding and requires all the assistance a machine can possibly give. Graphical aids to understanding the design one is working with can help the complexity problem substantially. The more of the design that is "visualizable" the better. Design complexity is a real problem: For one human being to comprehend the physics, geometry, logic and system design for a single VLSI chip is a formidable task and one that seems to be necessary for success in this field. Structured design ideas (top-down specification, hierarchical organization, bubble diagrams, etc.) provide some help in managing these complex, systems. The eye of the designer has the potential to find order in such complex systems as VLSI chips. Good graphical aids are required to realize this potential. That is, with the right kind of visual presentation, complex systems can be mentally grasped with relatively little effort. A good CAD system for VLSI using black-and-white displays is ICARUS[5]. 1.3.2. Constraints on layout. Another difficulty present in all spatial design problems but particularly important in VLSI design is that one desires to pack as much (compute power) as possible into any given area (of chip). This requires that layout be done carefully and it suggests that CAD tools address layout. Design rules are guidelines for minimum spacings of various materials in chip layout to assure proper electrical function. With maximal packing persistently a goal, one is continually having to check design rule compliance during the inter103
104
S. L. TANIMOTO
active layout procedure. Graphical aids for design-rule checking can in some cases be provided very conveniently by making use of the color-mapping hardware of color-raster displays. Design-rule checking may be assisted with graphical heuristics as a preliminary step to complete automatic (non-interactive) checking (such as is outlined in [6]). Since VLSI typically works with design formats having five to six pattern layers, simultaneous checking of all the rules that apply within layers and from one layer to another can be very taxing without machine aids. A group at Hewlett-Packard has implemented a designrule checking scheme based on "bumpers" which are attached to modules for maintaining the minimum spacings. The bumpers may be defined independently for the various pattern layers and interactive specification of the bumpers is allowed. Design rules are essentially geometric. Minimum separation between devices or wires are given in microns or in dimensionless units "lambda" which are less technology-dependent than absolute distances. Since most devices and wires are constructed from rectangles, design-rule checking is geometrically simple in principle. Zones of separation between devices can also be described in terms of rectangles, and thus the geometric aspect of design-rule checking can be made quite simple. 1.4 Interaction efficiency Another issue in working with large volumes of information (graphical or otherwise) is efficiency of human interaction. Display and operations with large data files run slowly unless precautions are taken to ensure fast execution. In some cases, large data files can be reduced through culling, elimination of detail and/or approximation. In other cases regular or other simplydescribable structure can be detected automatically or with human aid, leading to simpler descriptions for the same information. Good algorithms and heuristics are required for effective interaction with complex graphical objects such as VLSI chip designs. 2. OPAQUE, TRANSPARENT AND TRANSLUCENT VIEWING
The manner in which multiple layers of information are superimposed for presentation is an important graphics issue in computer-aided design. The display of
multidimensional data has been a topic of concern for some time. However, the form of the data has tended to be points or curves in n-space, rather than planar geometric data described by regions. CAD/CAM systems for mechanical engineering and architectural design have been concerned with three-dimensional structures in space. In VLSI circuit design, one is concerned with several planar layers, each containing pattern information. The relationships among pattern layers (in local areas of the 2-dimensional space) are crucial. These determine the electrical functions of the circuit. The designer needs to be able to see and easily understand these relationships during the layout process. Viewing options are needed that allow the designer to see all information or selected information, or as a third
alternative, all information but with emphasis or enhancement of certain layers of parts. Projection, opaque overlay, and translucent overlay are viewing modes that seem highly useful and desirable. 2.1 Proiection and transparency Projection allows one or more pattern layers to be isolated for inspection. Projection can be implemented simply by providing separate switches for each of the pattern layers. The pattern layers switched on may be called the members of the projected subset. When only one layer is switched on at a time, the pattern geometry of the layer may be observed and manipulated without the distraction of other layers. By switching on two layers at a time, specific relationships can be handled without the distraction of irrelevant layers. The layers switched off may be considered transparent as they are not removed from the data structure, but simply not displayed. 2.2 Superimposition Whenever two or more layers are viewed simultaneously, the superimposition must be defined. In particular, the system must display overlapping regions (of different pattern layers) in a meaningful way. Superimposition schemes may be classified (roughly) as either additive, subtractive, prioritized, logical or arbitrary. When colors are superimposed traditionally either an additive or subtractive system applies and these systems may be described by analogy to light mixing and to colored-cellophane overlapping, respectively. Prioritized superimposition is analogous to overlapping opaque paper. Displaying prioritized superimpositions is equivalent to solving a very simple kind of visible (or hidden) surface problem. 2.3 VLS! pattern levels and opaque viewing Opaque viewing (that is prioritized superimposition) is perhaps the most "natural" viewing mode possible. The top layers of material in the chip hide material in lower layers. If one could look closely enough at a chip and see the colors that designers associate with the layers, one would expect it to appear as a prioritized superimposition. Figure 1 shows an opaque-mode view of a shift register array. Opaque views may or may not convey substantial fractions of the information present in the design. Since high-priority levels mask lower-priority ones, even moderate-sized regions could hide large portions of the design. Opaque viewing is suitable for the following situations: (l) working with the layer of highest priority, (2) working with a layer of arbitrary priority, provided higher-priority layers do not mask out the regions of interest. In Fig. 1, each of the 8 rows is one four-bit shift register (for each bit in one of these shift registers, two "shift cells" are required). Each of the 64 shift cells gets power and ground through the blue (metal) strips and clock information through the vertical red (polysilicon) strips (see [4]). Large shift-register arrays have applications in raster graphics and image processing. Figure 2 shows a portion of one cell blown up.
Color-mappingtechniques for computer-aided design
105
Fig. 1. An opaque-modeview of a shift-register array.
Fig. 2. Blow-upof Fig. 1 showinga portion of one cell. When the designer wishes to concentrate on only one or a few layers, he may ask that only those layers be projected onto the display. Projection may be accomplished deleting certain graphical elements from the data structures (-temporarily). However, changing the color map is a better way to make the projection in that it can be performed simply, quickly and independently of the data. Figure 3 shows the projection of the yellow layer alone, for a portion of the shift-register array. Figure 4 shows a projection of red and green with opaque viewing. In Fig. 5, all layers but the blue one are shown. There are 32 possible projections of the five layers, if we include the trivial ones. 2.4 Translucent viewing 2.4.1. Motivation. It is often difficult to observe the
relationship between two pattern levels using opaquemode viewing. Translucent-mode viewing allows observation of any number of levels simultaneously. When ~olored regions in different pattern layers overlap, color mixing is used to produce the display. Straight additive color mixing could be used (i.e. no color mapping hardware), however that method has one disadvantage in that as several layers overlap, the mixture would tend toward white. Similarly, a straight subtractive scheme could be used with overlapping areas appearing dark. As the color of a mixture moved towards white or black, contrast and thus discriminability of component layers would suffer. A completely arbitrary mapping of overlap combinations to colors would also be unsatisfactory, since it is counter-intuitive and difficult to learn and remember. 2.4.2. Models of additive and subtractive color
106
S.L. TANIMOTO
Fig. 3. Projection of the yellow layer for a portion of Fig. 1.
Fig. 4. Projection of red"and green layers with opaque-mode v|ewing.
mixing. In an ideal additive color mixing scheme, colors defined as triples of component values, i.e. C[i] = (r[i], g[i], b[i]) are added by vector addition:
C[i] + C[j] = (r[i] + r[j], g[i] +gO], b[i] + b [./]). In color displays, there is a maximum value associated with each primary so that the additive superimposition becomes:
Subtractive color mixing behaves somewhat differently. A better name for subtractive mixing would be multiplicative mixing since here we model superimposition as a concatenation of filters. Each filter might be represented as F[i] = (x[i], y[i], z[i]), where each of the components is in the closed interval [0, 1]. The color associated with F[i] is the result of multiplying white, W = (rmax, gmax, bmax) by F[i] getting C[i] = F[i] W = (x[i]rm~, y[i]gmx, z[i]bm~).
The subtractive (multiplicative) superimposition of two colors is then
C[i] + C[j] = (min (r[i] + r[j], rmax), min (g[i] + g[j], gmax),
C[i]$C[j] = F[i]F[j] W.
min (b[i] + b [/'], bmx)).
Note that in order to get subtractive mixing of colors like
Color-mapping techniques for computer-aided design
107
Fig. 5. Projection showing all layers except blue (opaque-mode viewing).
red and blue to yield something other than black, the filters for the colors (like red and blue) must let through some amount of white. For example, F[red] = (1.0, 0.5, 0.5) F[blue] = (0.5, 0.5, 1.0) leads to F[purple] = Fired] F[blue] = (0.5, 0.25, 0.5). This seems reasonable if red and blue are two primaries in this subtractive system. However, it means that the only way to have highly saturated red (or other primary) is by superimposing it onto itself a number of times. (F[red]) k = (1.0, 2 -k, 2-k). Similar superimposition of F[purple] onto itself leads to severe attenuation of all three of its components and this assymmetry between primaries and other hues is not very elegant. This difficulty may be overcome to a greater or lesser extent by more closely modelling the physics of filters. We can do this by using a multiple primary system with k primaries, k > 3. In nature, the response of a filter is a continuous function of wavelength, and it requires a real-valued function (giving the intensity or photon energy transmitted) of a real-valued variable (wavelength) to describe it. Representing this function with k samples, k >3, rather than 3 increases the effectiveness of a filter model. Thus, Fired] could be represented F[red] = (1.0, 0.8, 0.7, 0.5, 0.3, 0.2, 0.2, 0.2) where the coefficients represent decreasing wavelengths in the visible spectrum. In this system, purple can be given its own primary (not a product of others) filter F[purple] = (0.7, 0.5, 0.3, 0.2, 0.2, 0.5, 0.7, 1.0)
such that the superimposition with itself would not attenuate all components. The mapping from filters or filter combinations to displayable colors must now include a linear operation for separation into red, green, and blue components:
r[ i] = ((F[red], F[ i]lrmx)/]lF[red]l[ 2 g[ i] = ((F[green], F[ i])g~ax)/[IF[green][~ r[ i] = ((F[blue], F[ i]t bmax)/]lF(blue]ll2 Some references on color systems are given in [7]. 2.4.3. Translucency implementation. The solution used in our system is a contrast-enhanced translucency color mapping. The colors for the various layer combinations were chosen manually to approximate a subtractive mixing system, but with the constraint that each combination be perceivably different from all others. In our case the 5 pattern layers give rise to 32 color combinations. Except for the gray layer, the four layers map individually to most highly saturated colors (these are the colors commonly associated with the chip materials for VLSI: yellow, green, red, gray and blue). The actual color map values for our implementation of transparency are shown in Table 1. Although we have gone outside the rules of physics by defining translucency with intentional distortions (for the sake of making all combinations of layers perceptually distinct), the results are intuitively meaningful. Figure 6 shows a translucent-mode view for the blown-up section shown in Fig. 2. Figure 7 illustrates one shift cell and part of another. Here the full extent of each pattern element (rectangle), including yellow (lowest priority in opaque viewing), can be seen. Our transparency enhances mixtures containing yellow so that it can be detected even under all the other layers. Figure 8 is a translucent-mode presentation of the entire shift-register array. For this design, the gross scale makes the difference between opaque mode and translucent mode more subtle (compare Fig. 1).
S. L. TANIMOTO
108
Table 1. map( 32, map( 64, map( 96, map(128, map(160, map(192, map(224, map(256, map(288, map(320, map(352, map(384, map(416, map(448, map(480, map(512, map(544, map(576, map(608, map(640, map(672, map(704, map(736, map(768, map(800, map(832, map(864, map(896, map(928, map(960, map(992,
12, 0, 4, 15, 10, 7, 7, 5, 3, 1, 2, 8, 5, 4, 5, 0, 2, 0, 3, 5, 5, 3, 2, 3, 3, 2, 4, 4, 3, 2, 2,
12, 15, 10, 0, 4, 0, 3, 5, 3, 5, 5, 2, 2, 1, 2, 0, 2, 7, 7, 0, 3, 0, 1, 3, 3, 6, 6, 2, 2, 1, 1,
"0); 0); 0); 0); 0); 0); 0); 5); 1); 1); 1); 2); 1); 1); 1); 12); 10); 7); 7); 7); 7); 5); 4); 8); 7); 6); 6); 5); 4); 3); 2);
{yellow} {green} {yellowgreen} {red} {orange} {darkred} {darkorange} {gray} {darkyellow} {green gray} {yellowgreen gray} {redgray} {orange gray} {reddish dark gray} {brown} {blue} {lightblue} {green blue} {blue green} {violet} {lavender} {darkviolet} {darkshaded violet} {grayblue} {graylight blue} {graygreen blue} {grayblue green} {grayviolet} {darklavender} {darkgray violet} {darkgray shaded violet}
Color map values used in translucency implementation. The VLSI data is in bit planes 5,6,7,8 and 9. Thus, bit plane 5 contains the yellow layer, 6 the green, 7 red, 8 gray and 9 blue. The table address for yellow mixed with green is 25+ 26= 96. The color there is yellow-green, made up of 4 units of red, l0 units of green and 0 units of blue. 2.4.4. Translucency vs other modes. Translucent-mode viewing removes the obviousness of the layer priority. Were it not for the fact that layer priority (blue on top, etc.) never changes, the designer would not know the order when viewing using the translucency color map-
ping. In CAD applications where depth information changes, translucent mode as we have programmed it might be inferior to opaque mode. As with opaque-mode, projection is useful in conjunction with translucent mode. In fact, projection together with translucency provide a very good way to examine the relationships within any subset of layers. In our system, the particular projection is indicated by the designer using one menu button for each layer. Those layers enabled are those being projected. Another mode for viewing (which we have not implemented) combines opaque and translucent modes and projection such that each layer may have associated with it any one of the three attributes: opaque, translucent or transparent. The number of color maps required to handle all the possible combinations here would be 3~, since each of the five VLSI design layers could be displayed in any of the three modes. For example, a color map could be set up for: yellow layer opaque, green translucent, red opaque, gray opaque and blue trausparent (invisible). Because of the large number of such mappings all but the most frequently used maps are computed only when actually needed.
3. DESIGN RULE AIDS
The color maps can help the designer conform to design rules. Minimum spacing of components can be checked by growing fringes around the components and displaying overlaps of fringes with other components or fringes. Fringe overlaps, displayed in bright colors, correspond to potential design-rule violations. The overlap of red and green regions creates a transistor. Red and green must never overlap except at transistors. Thus minimum spacing normally must be observed between red and green. Displaying overlap of red and green layers in bright orange calls attention to transistors and any improper overlapping. Figure 9 shows the projection of red and green layers using a color mapping that not only
Fig. 6. Translucent-mode view for Fig. 2.
Color-mappingtechniques for computer-aideddesign
109
Fig. 7. Translucent-modeview of one shift cell and part of another.
Fig. 8. Entire shift-register array shown with translucent-modeviewing.
brings out the overlapping but deemphasizes the unoverlapped pattern data by displaying it much darker than is usual. Generation of fringes is probably best done in a partially-automated way, since fringe sizes need to be varied as various spacings are checked. In some components and wiring geometries, the specification of fringes is difficult. In order to detect minimum spacing between two components or wires in the same layer, the fringe must be defined such that self-overlap can be detected. Getting into complicated schemes for computing the fringe, one defeats the purpose of fringes: providing a simple method for checking spacing. Our fringes are constructed by simply growing margins around the box
elements that make up the colored region of a layer. The designer specifies the size of the fringe in lambdas (Fig. 10 shows a grid with lambda/2 spacing imposed on the display, Fig. 11 shows another design configuration with grid mode enabled). The fringe for a box is shown in Fig. 12. The black corresponds to the box and the pink to its fringe. An example of a red wire in the vicinity of a high-current (wide) blue wire is shown in Figs. 13 and 14 shows in white the overlap of the red wire's fringe with the blue wire. Color maps call attention to certain overlaps. The fringes are put into separate bit planes so that they and their overlaps with other pattern layers may be displayed in specially-chosen colors.
110
S.L. TANIMOTO
Fig. 9. Projection of the red and green layers using verify-mode viewing.
Fig. 10. A grid with spacing lambda/2.
Color-mapping techniques for computer-aided design
Fig. 1I. A sample design coordinated with the grid.
Fig. 12. The fringe (pink) for a box (black).
CAG VoL 5, No. 2=4--F
111
112
S.L. TAN1MOTO
Fig. 13. Red wire in the vicinity of a high-current blue wire.
Fig. 14. Overlap (shown in white) of the red wire's fringe with the blue wire.
Color-mappingtechniques for computer-aideddesign 4. INTERACTIVE AIDS
4.1 System description Our hardware is a DeAnza ID5512 display connected to a VAX 11/780 running the DEC VMS operating system. In addition to the display, the designer has immediate access to a normal alphanumeric CRT terminal and a joystick is associated with the display. The design system software is written in VAX PASCAL developed at the University of Washington, and uses a display library. There is currently a single menu of 25 commands some of which can be combined to provide a variety of drawing and viewing functions. All commands are selected via the joystick for uniformity of interaction. The simplicity of the system makes it very easy to use by new designers. By keeping instructive prompts on the alphanumeric terminal (separate from the color display), the experienced user can simply concentrate his attention on the color display, while the designer new to the system can look over at the terminal whenever he wants to know specifically what his options are. "Grid mode" not only causes a grid to be superimposed on the display screen, it causes all coordinates input by the designer (with the joystick) to be adjusted immediately to the nearest grid point, so that component structures can be lined up exactly whenever this is intended. Our grid is currently fixed at increments of lambda/2 where lambda is the "dimensionless" distance unit for VLSI design. (In most situations lambda spacing would be adequate; however layout of the yellow iraplant material often requires lambda/2 spacing). Coarse grids will soon be incorporated into the system as well. 4.2 Programming techniques Regeneration is kept minimal. The system normally only rewrites bit planes actually changed. At the present time, the speed of interaction is limited (on large designs) by the time required to redraw the design after particular changes have been made. Consequently it is important that the system be able to only regenerate the parts of the image that have actually changed. In some cases, incremental changes may be
113
made easily without regeneration. Other design updates would be difficult to implement without complete regeneration of the display. For example, when the user adds, deletes or moves a rectangle in one pattern layer, the design can simply be updated by an appropriate change in that layer. On the other hand, some operations require complete regeneration of the image by the host. These include zooming and translation. The current modes (viewing modes, grid mode) are indicated (simply) whenever possible, by reversing the background in the text display for the relevant menu items. The color table may be used to provide another feature (which we plan to implement soon) in an interactive system: the ability to switch quickly between any of several images currently in the refresh memory. We plan to keep an "overview" image around that gives a rough picture of the entire design being worked on, with an indication for the current subarea of interest. Acknowledgements--The author wishes to thank Ted Kehl, Mark Snitilyand CarverMeadfor educationin VLSI,programmingadvice and constructivefeedback, respectively. REFERENCES 1. W. E. Carlson, R. Parent & C. Csuri, The use of color and 3-D temporal and spatial data management techniques in computer-aided design. Proc. 16th Annual Design Automation Con/. San Diego,California,pp. 32-38 (June 1979). 2. N. Weste. A color graphics system for i.c. mask design and analysis. Proc. 15th Annual Design Automation Conf. Las Vegas, Nevada, pp. 199-205(June 1978). 3. R. G. Shoup, Color table animation. Comput. Graphics 13(2), 8-13 (1979). 4. C. A. Mead & L. A. Conway, Introduction to VLSI Systems.. Addison-Wesley,Reading,Mass. (1980). 5. D. G. Fairburn & J. H. Rowson, Proc. 15th Annual Design Automation Conf. Las Vegas, Nevada, pp. 188-192 (June 1978). 6. T. C. Bennett, K. R. Stevens & W. M. vanCleemput,Dynamic design rule checking in an interactive printed circuit editor. Proc. 16th Annual Design Automation Conf. San Diego, California, pp. 330--336(June 1979). 7. A. R. Smith, Color gamut transform pairs. Comput. Graphics 12(3), 12-19 (1978).