Abstract:
A method in accordance with the present invention prepares an alternate view of an integrated circuit (IC) layout from a top view thereof by selecting an initial polygon representing and IC feature from the top view of the layout, where the initial polygon is defined by a plurality of initial points. The coordinates the plurality of initial points are mapped onto coordinates of a plurality of translated points that define a second polygon representing an alternate view of the initial polygon. The mapping uses at least one of either the height of the initial polygon or the width of the initial polygon. The method can be used, for example and without limitation, to generate a three dimensional view from the top view of the layout or a sectional view of the layout.

Description:
BACKGROUND OF THE INVENTION 
   During design, a layout of an integrated circuits (IC) is typically drawn or rendered in two dimensions from a “top” view of the circuit. In such a view, only one surface of various surface features, such as, without limitation, transistors or interconnect lines, is shown. Thus, such a top view does not illustrate the thickness of circuit features. Additionally, ICs are typically formed of multiple layers, with different circuit features being on different layers. Depending on the topology and number of layers in an IC design, a top view of the design may not provide adequate visualization of the layers. This is particularly the case as IC design becomes more complex and involves more layers. 
   Three dimensional and sectional renderings of the various layers in an IC, and the thickness of those layers, can be important to allow understanding or complicated IC designs that may include complex interconnect and device structures. Also, a three dimensional rendering can enable faster checking and debugging of non-standard layouts. 
   Conventional computer aided design (CAD) tools allow an IC design to be laid out in two dimensions. Typically, conversion from such a two dimensions layout drawing into a three dimensional or sectional layout drawing cannot be carried out by such CAD tools. Some CAD type tools do have some capability to convert a two dimensional layout rendering into a three dimensional rendering. One example of such a tool is available under the name Raphael™ from Synopsys®, Inc. of Mountain View Calif. Raphael, however, can only convert a two dimensional IC layout rendering into a three dimensional layout rendering if the layout size is relatively small. 
   As such, what is needed is a method to convert a two dimensional IC layout rendering accurately and relatively quickly into alternate view renderings such as three dimensional and sectional view renderings. 
   BRIEF SUMMARY OF THE INVENTION 
   A method in accordance with the present invention prepares an alternate view of an integrated circuit (IC) layout from a top view thereof by selecting an initial polygon representing and IC feature from the top view of the layout, where the initial polygon is defined by a plurality of initial points. The coordinates the plurality of initial points are mapped onto coordinates of a plurality of translated points that define a second polygon representing an alternate view of the initial polygon. The mapping uses at least one of either the height of the initial polygon or the width of the initial polygon. The method can be used, for example and without limitation, to generate a three dimensional view from the top view of the layout or a sectional view of the layout. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1A  is a top, two dimensional view of a portion of an IC layout illustrating the appearance of a rendering of a layout prior to converting the rendering to a three dimensional image; 
       FIG. 1B  is a perspective view of a three dimensional rendering of the IC layout shown in  FIG. 1  generated in accordance with the present invention; 
       FIG. 2  is a flow chart illustrating a method of generating a three dimensional rendering of an IC layout from a two dimensional rendering thereof in accordance with the present invention; 
       FIG. 3  is a flow chart detailing a method of calculating coordinates for a three dimensional view of an IC layout in accordance with the present invention. 
       FIG. 4A  is a two dimensional view of an IC layout feature represented by a polygon that may be transformed into a three dimensional view by a method in accordance with the present invention. 
       FIG. 4B  is a three dimensional view of the polygon illustrated in  FIG. 4A . 
       FIG. 5  is a flow chart illustrating a method of generating a cross-sectional view of an IC layout from a two dimensional view thereof in accordance with the present invention. 
       FIG. 6A  is a two dimensional view of an IC layout represented by a plurality of polygons that may be transformed into a cross-sectional view by a method in accordance with the present invention. 
       FIG. 6B  is a cross-sectional view of the IC layout illustrated in  FIG. 6A  taken along a horizontal section line. 
       FIG. 6C  is a cross-sectional view of the IC layout illustrated in  FIG. 6A  taken along a vertical section line. 
       FIG. 7  is a flow chart detailing a method of determining coordinates of a cross-sectional view of an IC layout from a two dimensional view thereof in accordance with the present invention. 
   

   DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 1A  illustrates an example of a two dimensional rendering of a portion of an IC layout. Specifically,  FIG. 1A  illustrates an interconnect structure  10  including a first layer  12 , second layer  14  and third layer (not shown in  FIG. 1A ). The third layer of interconnect structure  10  cannot be seen in the two dimensional rendering of  FIG. 1A  because it is directly below first layer  10 . 
     FIG. 1B  illustrates the interconnect structure  10  rendered in a three dimensional view (as used herein, “three dimensional” indicates a three dimensions projected onto two dimensions). In the three dimensional view shown in  FIG. 1B , the third layer  16  of interconnect structure  10  can be seen. Also, the qualitative thicknesses of each first layer  12 , second layer  14  and third layer  16  can be seen. This can advantageously allow understanding of IC designs that may include complex interconnect and device structures. Also, a three dimensional rendering can enable faster checking and debugging of non-standard layouts. A method in accordance with the present invention converts a two dimensional rendering of an IC layout, such as that shown in  FIG. 1A , into a three dimensional rendering of the layout, such as that shown in  FIG. 1B . 
     FIG. 2  is a flowchart illustrating one embodiment of a method  100  for converting a two dimensional IC layout rendering into a three dimensional layout rendering. In the embodiment of method  100  a database including IC layout information is formatted in the GDSII format. Such databases are well understood by those skilled in the art. This is illustrated in step  110  where the initial input to method  100  is taken from a GDSII database. It is considered that IC layout data formatted in any other format also be used as the initial input for method  100 . In step  112 , the GDSII format is converted to a CIF file format. The CIF file format and conversion from the GDSII file format to the CIF format is well understood in the art. 
   In step  114 , method  100  reads the first line of the CIF file. The CIF file includes coordinates for all the polygons that form a part of the two dimensional rendering of an IC layout. Additionally, the coordinates for a single polygon will all appear on one line of the CIF file. In step  116 , the coordinates for one polygon are read from the CIF file. An example of a set of coordinates for a polygon appearing on a line of the CIF file is:
 
5000 30000 −6715 15000
 
   This example defines a rectangle having a width designated by the first number, 5000, a height designated by the second number, 30000, and a center designated by the third and fourth numbers, the third number providing the x-coordinate, −6715, of the center and the fourth number providing the y-coordinate, 15000, of the center. 
   In step  118 , thickness values for interconnects, vias and dielectric layers are input. In particular, the thickness T 1  of first layer  12 , the thickness T 2  of second layer  14  and the thickness T 3  of third layer T 3  are input. In the CIF file, each polygon is associated with a layer. When the thicknesses of each layer are input in step  118 , this associates each polygon with a thickness. 
   In step  120 , for the two dimensional polygon read from the CIF file in step  116 , coordinates for a three dimensional polygon are generated. The coordinates for the three dimensional polygon are preferably generated from the coordinates of corresponding two dimensional polygon, the thickness of the IC feature (e.g. interconnect, via or dielectric layer) represented by the polygon entered in step  118 , and a desired viewing angle. Preferably, the three dimensional polygon is generated based on three, two dimensional polygons. A preferred embodiment for calculating the coordinates for the three, two dimensional polygons is discussed below. 
   In step  122 , it is determined if the end of the CIF file has been reached. If the end of the CIF file has not been reached, that is, if there are still coordinates for two dimensional polygons included in the CIF file that have not yet been translated into coordinates for three dimensional polygons, then, in step  124 , the next line of the CIF file is read. This loop continues until all of the coordinates representing two dimensional polygons in the CIF file have been converted, in step  120 , into coordinates representing three dimensional polygons. Then, in step  126 , a new CIF file is written representing a three dimensional rendering of the IC layout represented by the CIF file converted in step  112  from a GDSII format. In step  128 , this new CIF file is preferably converted back into a GDSII format. Generation of the new CIF file and conversion thereof into a GDSII format is well understood in the art. 
     FIGS. 3 ,  4 A and  4 B illustrate one embodiment of a method  200  of generating coordinates for a three dimensional rendering of a polygon as discussed above with respect to step  120  of method  100 .  FIG. 4A  illustrates a polygon  250  that would represent a polygon the coordinates of which would be included in a CIF file representing a two dimensional rendering of an IC layout.  FIG. 5A  illustrates rectangular box  350  which represents a three dimensional rendering of polygon  250 . Method  200  generates coordinates for rectangular box  350  from the coordinates of polygon  250 . Polygon  250  is defined by four ordered pairs of two coordinates each: first ordered pair (a 1 , b 1 ), second ordered pair (a 2 , b 2 ), third ordered pair (a 3 , b 3 ) and fourth ordered pair (a 4 , b 4 ). Additionally, polygon  250  has width  252 , defined by the difference between coordinate a 2  and coordinate a 1 , and height  254 , defined by the difference between the coordinate b 4  and b 1 . Rectangular box  350  is defined by 7 ordered pairs each having an X and Y coordinate. Each of the 7 ordered pairs defining rectangular box  350  provides one of 7 points: A, B, C, D, E, F and G. 
   Method  200  shown in  FIG. 3  provides a process for determining each of the 7 points A, B, C, D, E, F, and G from the coordinates of polygon  254  and additional information provided in method  100  discussed above. As shown in step  208 , point A of rectangular box  350  is defined by the coordinates (a 1 , b 1 ) defining the lower left hand corner of polygon  250 . In step  210 , the X coordinate of point B is determined by adding the width  252  of polygon  250  to coordinate a 1 . The Y coordinate of point B is the same as the Y coordinate of point A. In step  212 , the coordinates for point C are determined. The X and Y coordinates for point C are given by, respectively:
 
 X  coordinate= a 2+[(length 254 of polygon 250)(cos θ)]
 
 Y  coordinate=(length 254 of polygon 250)(sin θ)
 
where, as shown in  FIG. 4B , θ is the viewing angle of the three dimensional rendering of rectangular box  350 .
 
   In step  214 , the coordinates for point D are determined. The X coordinate of point D is the same as the X coordinate for point A. The Y coordinate of point D is the thickness of the feature or layer represented by polygon  250  added to the Y coordinate of point A. As discussed above with respect to  FIG. 3 , the thickness values for the layers and features of the IC layout were entered in step  118  of method  100 . The thickness value for the layer or feature represented by polygon  250  is used in step  214  to calculate the Y coordinate for point D. In step  216 , the coordinates for point E are calculated. The X coordinate of point E is the same as the X coordinate for point B. The Y coordinate for point E is calculated by adding the thickness of the feature represented by polygon  250  to the Y coordinate of point B. In step  218 , the coordinates for point F are determined. The X coordinate for point F is the same as the X coordinate for point C. The Y coordinate for point F is determined by adding the thickness of the feature represented by polygon  250  to the Y coordinate of point C. In step  220 , the coordinates for point G are determined. The X coordinate of point G is determined by subtracting the width  252  of polygon  250  from the X coordinate of point F. The Y coordinate of point G is the same as the Y coordinate of point F. 
     FIGS. 5 ,  6 A,  6 B,  6 C and  7  illustrate a method of generating a file that represents a cross-sectional view of an IC layout from a file representing a two dimensional rendering of the IC layout.  FIG. 6A  illustrates a portion of an IC layout  350  from a top view. IC layout  350  includes first feature  352 , second feature  354  and third feature  356 . First feature  352  is represented by a polygon, in particular a rectangle, defined by coordinates a 1 , b 1 , a 2 , b 2 , a 3 , b 3 , a 4  and b 4 . Though not visible in  FIG. 6A , IC layout  350  includes two layers with first feature  352  being on a first layer and second and third features  354  and  356  being on a second layer beneath the first layer. In a method in accordance with the present invention, a cross-sectional view of IC layout  350  is generated from the top view of layout  350  shown in  FIG. 6A .  FIG. 6B  illustrates a cross-sectional view of IC layout  350  taken along a horizontal section line  370  crossing the Y-axis at coordinate Yref shown in  FIG. 6A . A view of first feature  352  along section line  370  is shown by polygon  352 ′, a view of second feature  354  along line section line  370  is shown by polygon  354 ′ and a view of third feature  356  along line  370  is shown by polygon  356 ′. Polygon  356 ′ can be defined by four points A, B, C and D. Point A has coordinates Xa, Ya; point B has coordinates Xb, Yb; point C has coordinates Xc, Yc; and point D has coordinates Xd, Yd. Additionally, it can be seen that first feature  352  is in a first layer at a height h 1  above a predetermined baseline  360 , the first layer containing feature  352  has a thickness T 1  and the second layer containing features  354  and  356  has a thickness T 2 . 
     FIG. 6C  illustrates a cross-sectional view of IC layout  350  taken along a vertical section line  380  crossing the X-axis at coordinate Xref shown in  FIG. 6A . A view of first feature  352  along section line  380  is shown by polygon  352 ″ of  FIG. 6C . Polygon  352 ″ can be defined by four points E, F, G and H. Point E has coordinates Xe, Ye; point F has coordinates Xf, Yf; point G has coordinates Xg, Yg; and point H has coordinates Xh, Yh. 
     FIG. 5  is an embodiment of a method  300  of generating a cross-sectional view of an IC layout from file including a top view of the IC layout. In the embodiment of method  300 , and as discussed with respect to step  110  of method  100  above, in step  310  a GDSII format database including a top view, two dimensional rendering of an IC layout is input. It is considered that IC layout data formatted in any other format also be used as the initial input for method  300 . Also as discussed above with respect to step  112  of method  100 , in step  312  the GDSII file format is converted to a CIF file format. The GDSII and CIF file formats, and conversion from the GDSII format to the CIF format, are well understood in the art. In step  314 , the thicknesses of each layer, interconnect, and via in layout  350  are input. In the example of  FIGS. 6A ,  6 B and  6 C the thickness T 1  of the first layer having first feature  352 , shown by polygon  352 ′ and the thickness T 2  of the second layer including feature  354  and  356  are input. Additionally, the height of each layer of IC layout  350  from a predetermined baseline are entered in step  314 . In particular, regarding the example of  FIGS. 6A ,  6 B and  6 C both the height h 1  of the first layer of IC layout  350  above baseline  360  which could, for example, represent a silicon substrate on which the IC would be formed, and the height h 2  of the second layer above baseline  360  are input. 
   As will be discussed in detail below, the coordinates for rendering a cross-sectional view of polygons intersecting the section lines through which a cross-section is desired are determined. In step  318  a new CIF file representing the cross-sectional view of the IC layout is written. And, in step  320 , the CIF file written in step  318  is converted into a GDSII format in a known manner. In step  322 , from the GDSII file a cross-sectional view of IC layout  350  can be rendered in a known manner. 
     FIG. 7  is a flow chart illustrating one embodiment of the details of a method generating coordinates for a cross-sectional view of a polygon representing an IC layout feature as discussed above with respect to step  316  of method  300 . In step  410 , it is determined whether the cross-section desired is a vertical or horizontal. The cross-section is vertical if the coordinate along which a cross-section is to be rendered is an X-coordinate and the cross-section is vertical if the coordinate input in step  316  is horizontal. If the cross-section is to be horizontal, in step  412 , the value of the Y coordinate defining the section line is input. As noted above, the CIF file contains coordinates defining a group of polygons that form the IC layout. In step  414 , the coordinates for the first polygon in the CIF file is read. In an example in which method  300  is operating on a polygon representing first feature  352 , at least coordinates a 1 , and a 2 , b 1  and b 4  are determined from the CIF file. In step  416  it is determined whether the first polygon intersects with the horizontal line through the selected Y-coordinate. This is done by determining whether the value of the Y-coordinate of the uppermost edge of the selected polygon is greater than the value of the Y-coordinate of the section line and if the Y-value of the section line is, in turn, greater than the value of the Y-coordinate of the lower edge of the selected polygon. In particular, referring to  FIG. 6A , if feature  352  is the selected polygon, it is determined if the value of coordinate b 4  is greater than the value of Yref and if the value of Yref is simultaneously greater than the value of b 1 . 
   If this condition is met, then a first point A for rendering a cross-sectional view of feature  352 , shown as polygon  352 ′ in  FIG. 6B , is determined is step  418 . In particular, the X-coordinate of point A, Xa is given by the coordinate a 1 , which was read from the CIF file in step  414  and the Y-coordinate of point A, Ya is given by the height h 1  of the layer of feature  352  above a predetermined baseline  360 . As noted above, baseline  360  can be the surface of a silicon substrate. In step  420  point, a second point B for rendering a cross-sectional view of a feature  352  is determined. In particular, the X-coordinate of point B, Xb is given by the coordinate a 2 , which was read from the CIF file in step  414  and the Y-coordinate of point B, Yb is the same as coordinate Ya. In step  422 , a third point C for rendering a cross-sectional view of feature  352  is determined. In particular the X-coordinate of point C, Xc is the same as coordinate Xb and the Y-coordinate of point C, Yc is determined by adding coordinate Ya and the thickness of the layer that feature  352  is part of, which was input in step  412 . Finally, in step  424 , a fourth point D for rendering a cross-sectional view of feature  352  is determined. In particular, the X-coordinate of point D, Xd is the same as coordinate Xa and the Y-coordinate point D, Yd is the same as coordinate Yc. 
   In step  426 , it is determined if the end of the CIF file has been reached. If it has, then step  316  passes to step  318  discussed above. If the end of the CIF file has not been reached, then in step  428 , the next polygon in the CIF file is read and steps  416  through  426  are repeated until the end of the CIF file is reached. Referring back to step  416 , if it is determined that the polygon presently under consideration does not intersect the cross-section line defined by the Y-coordinate entered in step  412 , then the method bypasses steps  418  through  424  and passes directly to step  426  to determine if the end of the CIF file has been reached. 
   If in step  410 , it is determined that a vertical cross section is desired, then steps  432  through  448  are implemented, which carry out a process similar to that described above with respect to steps  412  through  428 . In step  432 , the X-coordinate defining the vertical section line for the cross-sectional rendering is obtained. In the example of  FIG. 6A , the vertical section line is shown as section line  380  defined by the X-coordinate Xref. In step  434 , the first polygon in the CIF file is read. In particular, referring to  FIG. 6A , if the first polygon in the CIF file is the polygon representing feature  352 , then at least the Y-coordinates a 1 , a 2 , b 1  and b 4  are read to be used by method  300 . In step  436  it is determined whether the selected polygon, in the present example, the polygon representing feature  352 , intersects with the chosen section line. In particular, in the example of  FIG. 6A , it is determined if the value of coordinate Xref is between the value of X-coordinates a 1  and a 2 . 
   If so, the method moves to step  438  through  444  in which the coordinates of four points for rendering a polygon  352 ″ that is a cross-sectional view of the polygon representing feature  352  are determined. Referring to the example of  FIG. 6A  and  FIG. 6C  which is a cross-sectional view of IC layout  350  taken along section line  380 , in step  438  the coordinates for point E are determined. In particular, the X-coordinate for point E, Xe is given by coordinate b 1  and the Y-coordinate for point E, Ye is given by the height h 1  of polygon  352 ″ above baseline  360 . In step  440  the coordinates for point F of polygon  352 ″ are determined. The X-coordinate of point F, Xf is given by coordinate b 4  and the Y-coordinate of point F, Yf is given by coordinate Ye. In step  442  the coordinates for point G of polygon  352 ″ are determined. The X-coordinate of point G, Xg is given by Xf and the Y-coordinate of point G, Yg is given by Ye plus the layer thickness T of the layer of feature  352  entered in step  314 . In step  444  the coordinates of point H are determined. The X-coordinate of point H, Xh is given by Xe and the Y-coordinate of point His given by Yg. 
   After step  444 , method  300  moves to step  446 . Method  300  may also move to step  446  if, in step  436 , it is determined that vertical section line  380  does not intersect with the currently selected polygon. In step  446  it is determined if the end of the CIF file has been reached. If so, then method  300  moves to step  322 . If not, then in step  448 , the next polygon in the CIF file is read and method  300  once again moves to step  436 . 
   Although only certain exemplary embodiments of this invention have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages of this invention. Accordingly, all such modifications are intended to be included within the scope of this invention.