Patent Publication Number: US-8977989-B2

Title: Handling of flat data for phase processing including growing shapes within bins to identify clusters

Description:
RELATED APPLICATIONS 
     This application is a divisional of U.S. patent application Ser. No. 11/083,697, entitled Handling Of Flat Data For Phase Processing Including Growing Shapes Within Bins To Identify Clusters” filed Mar. 17, 2005 which is a continuation of U.S. patent application Ser. No. 10/165,550, entitled “Design Data Format And Hierarchy Management For Processing” filed Jun. 7, 2002. 
     The present application is also a non-provisional or continuation-in-part of the following: 
     This application is related to, claims the benefit of priority of, and incorporates by reference, the U.S. Provisional Patent Application Ser. No. 60/296,788, filed Jun. 8, 2001, entitled “Phase Conflict Resolution for Photolithographic Masks”, having inventors Christophe Pierrat and Michel Côté, and assigned to the assignee of the present invention. 
     This application is related to, claims the benefit of priority of, and incorporates by reference, the U.S. Provisional Patent Application Ser. No. 60/304,142 filed Jul. 10, 2001, entitled “Phase Conflict Resolution for Photolithographic Masks”, having inventors Christophe Pierrat and Michel Côté, and assigned to the assignee of the present invention. 
     This application is related to, claims the benefit of priority of, and incorporates by reference, the U.S. Provisional Patent Application Ser. No. 60/325,689 filed Sep. 28, 2001, entitled “Cost Functions And Gate CD Reduction In Phase Shifting Photolithographic Masks”, having inventors Christophe Pierrat and Michel Cote, and assigned to the assignee of the present invention. 
     This application is related to, claims the benefit of priority of, and incorporates by reference, the United States patent application Ser. No. 09/669,359 filed Sep. 26, 2000, entitled “Phase Shift Masking for Complex Patterns”, having inventor Christophe Pierrat, and assigned to the assignee of the present invention, which is related to U.S. Provisional Patent Application Ser. No. 60/215,938 filed Jul. 5, 2000, entitled “Phase Shift Masking For Complex Layouts”, having inventor Christophe Pierrat, and assigned to the assignee of the present invention. 
     This application is related to, claims the benefit of priority of, and incorporates by reference, the U.S. patent application Ser. No. 10/085,759 filed Feb. 28, 2002, entitled “Design And Layout Of Phase Shifting Photolithographic Masks”, having inventors Michel Luc Côté and Christophe Pierrat, and assigned to the assignee of the present invention. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The invention relates to the processing of design data and, in particular to placing phase shifting regions and assigning phase to such regions for different formats of design data. 
     2. Description of the Related Art 
     Lithography is a well-known process used in the semiconductor industry to form lines, contacts, and other known structures in integrated circuits (ICs). In conventional lithography, a mask (wherein the term “mask” as used herein can refer to a mask or a reticle) having a pattern of transparent and opaque regions representing such structures in one IC layer is illuminated. The emanating light from the mask is then focused onto a photoresist layer provided on a wafer. During a subsequent development process, portions of the photoresist layer are removed, wherein the portions are defined by the pattern. In this manner, the pattern of the mask is transferred to (i.e. printed on) the photoresist layer. 
     However, diffraction effects at the transition of the transparent regions to the opaque regions on the mask can render the corresponding printed edges on the wafer indistinct, thereby adversely affecting the resolution of the lithography process. Various techniques have been proposed to improve the resolution. One such technique, phase shifting, uses phase destructive interference of the waves of incident light. Specifically, phase shifting shifts the phase of a first region of incident light waves approximately 180 degrees relative to a second, adjacent region of incident light waves to create a sub-wavelength feature between the first and second regions. Thus, a feature, as defined by exposed and unexposed portions of a photoresist illuminated through a mask, can be more closely defined by using phase shifting, thereby allowing greater structure density on the IC. As the need for feature density increases, phase shifting is being applied to many features in the design data (which defines the pattern of transparent and opaque regions for the mask). 
     There are two common formats for design data: flattened and hierarchical. Each format has advantages and disadvantages. For example, flattened design data, e.g. layouts, are geometrical in nature and therefore adjacency between structures can easily be determined. However, flattened design data can result in an extremely large file size, e.g. 10-15 GB, for a layer. In contrast, hierarchical design data are more space efficient because multiple copies of a single geometry can be stored once and then referenced in other locations. Unfortunately, hierarchical design data are not well suited for performing geometrical operations because adjacency and position information must be computed. 
     The positioning of phase shifting regions (hereinafter shifters) and the assignment of phase to such shifters is a highly geometrical operation. Therefore, a need arises for a system and method of efficiently processing design data for one or both formats. 
     SUMMARY OF THE INVENTION 
     In accordance with one feature of the invention, shapes in design data, such as in a layout, can be grouped into “clusters”. A cluster is a collection of one or more shapes from the layout that are sufficiently distant from other shapes that phase processing is possible without considering such other shapes, e.g. each cluster can undergo phase processing in parallel. Advantageously, the use of clusters can significantly reduce the processing time associated with the placement and phase assignment of phase shifting regions (also called shifters) for the layout. 
     To form the clusters, the design data can be partitioned into defined areas called bins. Then, shapes in the bins can be “grown” to build clusters. Growing the shapes can refer to extending edges of the shapes in directions perpendicular to those edges. Extending the edges forms enlarged shapes. If any enlarged shapes overlap, then the shapes associated with the overlapping enlarged shapes can be designated as a cluster. 
     Identical clusters in a bin (or within multiple bins) can be identified. Phase processing can be performed based on the clusters. In one embodiment, phase processing can include providing the shifters for shapes in the clusters and assigning phase to such shifters. 
     The edges can be “grown”, or extended, by a uniform, predetermined amount. In one embodiment, the predetermined amount is approximately a shifter width plus slightly more than ½ separation, wherein the separation refers to a minimum distance required between two shifters. In one basic grow technique, all edges can be extended and 90 degree corners can be formed. 
     In another technique, an edge associated with a line end, called an endcap, is not extended. This technique is allowable because the endcap can be defined by an opaque area on a complementary mask. For this reason, shifters defining the endcap are not necessary. Therefore, by using the endcap technique, cluster sizes can be reduced slightly. 
     In another technique, a corner can be grown the predetermined amount. In one embodiment, a distance d can be measured from a 45 degree diagonal at the corner and the corner of the enlarged shape can be “clipped” at this point. In one embodiment, a line perpendicular to the diagonal can define the clipped corner of the enlarged shape. Using this diagonal corner technique, some shapes that would otherwise be placed in one cluster can be placed into different clusters. 
     Some embodiments of the invention can include a software tool for processing design data that includes a plurality of shapes. The software tool can include source code segments for performing some or all of the above steps. The software tool can include a source code segment that modifies the design data to include the phase information, e.g. perform phase processing. 
     Other embodiments of the invention can include a method for providing phase shifters in a layout and assigning phase to such phase shifters. The method can include accessing various source code segments that perform some or all of the above steps. These source code segments can include a source code segment that repartitions the bins to include shapes that previously overlapped the bin boundaries. 
     Other embodiments of the invention can include a system for providing phase shifters in a layout and assigning phase to such phase shifters. The system can at least include the means for filtering shapes by defined areas in the layout, the means for building clusters within the defined areas, the means for identifying identical clusters in a defined area or in multiple defined areas, the means for providing phase information for the clusters, and means for modifying the layout to include the phase information. 
     Yet other embodiments of the invention can include a computer data signal comprising a plurality of clusters corresponding to layout data. Each cluster can represent a plurality of shapes in the layout data. The shapes have a predetermined proximity to each other. The clusters are phase shifted independently of one another. The predetermined proximity can be determined by using at least a grow technique (wherein certain edges of each shape are extended a predetermined amount), an endcap technique (wherein a line end is not grown), or a diagonal corner technique (wherein a corner of a shape is grown the predetermined amount). In one embodiment, at least one cluster represents a plurality of merged sparse clusters. 
     Yet other embodiments of the invention can include a method of using clusters in electronic design automation. The method can include receiving data including a plurality of clusters, wherein each cluster represents a plurality of shapes in an original layout. The method can further include preparing a phase shifting layout for the original layout by phase shifting each of the plurality of clusters independently of one another. 
     Yet other embodiments of the invention can include an electronic design automation program comprising a source code segment designed to receive data in a cluster format. Each cluster represents a plurality of shapes in the layout data having a predetermined spatial relationship to each other. Of importance, the clusters are phase shifted independently of one another. The predetermined proximity can be determined by growing certain edges of each shape a predetermined amount, not growing a line end, and/or growing a corner of a shape the predetermined amount. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG. 1  illustrates growing a shape using an endcap technique. 
         FIG. 2A  illustrates growing a shape using a basic grow technique as well as a diagonal corner technique. 
         FIG. 2B  illustrates growing a shape using a combination endcap/diagonal corner technique. 
         FIG. 3  illustrates a technique that can efficiently filter shapes, thereby facilitating parallel processing of design data. 
         FIG. 4  illustrates a sample layout partitioned into rectangular bins, thereby facilitating dividing shapes of the layout into clusters. 
         FIG. 5  illustrates one exemplary hierarchy including bin nodes at a first level and clusters at a second level. 
         FIG. 6  illustrates a plurality of clusters that have been binned and flattened. 
         FIGS. 7A and 7B  illustrate one embodiment for transforming hierarchical design data into flattened design data, thereby allowing clustering of that design data. 
     
    
    
     DETAILED DESCRIPTION OF THE FIGURES 
     In accordance with one feature of the invention, structures (also called shapes) in a layout can be grouped into “clusters”. As used herein, a cluster is a collection of one or more shapes from the layout that are sufficiently distant (in optical and/or other types of proximity) from other shapes that phase processing is possible without considering such other shapes. The use of clusters can significantly reduce the processing time associated with the positioning and phase assignment of phase shifting regions (also called shifters) for the layout. 
     In accordance with one aspect of the invention, various levels of clusters can be designated. For example, in one embodiment, a set of small clusters that are close and instantiated multiple times could be grouped into a larger cluster. In another embodiment, to minimize the overhead of sending separate processes for many small clusters, these clusters could be sent as a single process. Note that such clusters do not form a larger cluster, i.e. they remain separate independent clusters to be processed. However, by sending the clusters as a single process, the time lost by sending many small jobs can be minimized. Moreover, the size of a job can be optimized for best use of a processor. 
     Note that there need not be a correspondence between cells and clusters. Thus, a single cell might have multiple clusters and similarly a single cluster might span multiple cells. 
     Advantageously, clustering can be applied to design data in either flattened or hierarchical formats after manipulation of the design data. The application of clustering to design data in each format will now be described. 
     Clustering Applied To Flattened Design Data 
     In accordance with one feature of the invention, clusters of shapes in a layout or other design data can be identified. This identification allows the parallel processing of such design data. Specifically, if a first group of shapes is identical to a second group of shapes, then only one of the two groups needs to be processed and two instances indicating the group of shapes can be created. In this manner, for this case, the time for processing of the group of shapes, such as the placement and phase assignment of shifters can be significantly reduced, i.e. halved. Further improvements in processing time can be realized if additional groups of shapes identical to the first and second groups are identified. 
     To identify clusters, shapes in a layout can be “grown”, or extended, a predetermined amount. Growing a shape means extending each edge of a shape in a direction perpendicular to that edge. A group of enlarged shapes that overlap can be designated a cluster. In one embodiment, shapes can be grown by a shifter width (wherein the term “width” refers to the height of the shifter as measured from the polysilicon) plus slightly more than ½ separation (wherein the term “separation” refers to a minimum distance required between two shifters on a photolithographic mask used to fabricate an integrated circuit). 
     In one embodiment, a designated cluster includes the original shapes, not the enlarged shapes (i.e. the grow operation is merely used to determine which shapes are part of a given cluster.) In another embodiment, the enlarged shapes can be using during the phase shifting process. Specifically, the enlarged shapes can be compared to the created shifters, wherein the enlarged shapes represent the maximum boundary for the created shifters. Note that the enlarged shapes may need to be reduced to remove the ½ separation before treating them as the maximum boundary for the created shifters. 
     In accordance with one aspect of the invention, the basic grow operation is particularly suited for relatively small layouts and/or sparse layouts. For larger layouts, certain techniques can modify the grow operation, thereby significantly improving the use of computational and memory resources. 
       FIG. 1  illustrates one technique wherein a grow operation is selectively performed. Specifically, an edge  102 , which forms part of an endcap for a shape  101 , is not grown. Other edges of shape  101 , e.g. edges  104 , can be grown a predetermined amount, as shown by a dotted line  103 . This endcap technique is allowable because edge  102  can be defined by an opaque area on the complementary mask used in conjunction with the phase shifting mask, wherein the opaque area would substantially conform to the boundary of shape  101 . For this reason, shifters along edge  102  are not necessary. Therefore, by using the endcap technique, cluster sizes can be reduced. 
       FIG. 2A  illustrates another technique wherein the predetermined growth amount can be applied substantially equally to corners as well as to edges of the shape. For example, in  FIG. 2A , two shapes  201  and  202  have been grown a predetermined amount as indicated by dotted lines  203  and  204 , respectively. Note that by using a basic grow technique, which assumes a simple 90 degree corner, shapes  201  and  202  would be grouped into the same cluster (i.e. the enlarged shapes, indicated by dotted lines  203  and  204 , overlap). 
     However, if the edges of shapes  201  and  202  are grown a distance d, then the corners are actually grown a distance d′, wherein d′ is substantially equal to d*sqrt( 2 ). This increased distance d′ reflects a conservative approach to cluster inclusion. 
     A more aggressive approach applies distance d (i.e. the predetermined amount) to the corners as well as to the edges of the shape. Specifically, in one embodiment, distance d can be measured from a 45 degree diagonal at the corners and the corners of the enlarged shapes can be “clipped” at this point. In one embodiment, a line perpendicular to the diagonal can define the clipped corner of the enlarged shape. For example, lines  205  and  206  can define clipped corners for enlarged shapes  201  and  202 , respectively. Note that the corners could be curved, as indicated by the dotted lines; however, this calculation can be significantly more complex and provides substantially the same solution as clipping the corner. Therefore, in one embodiment, the clipped corners can be used, thereby simplifying computation yet providing accurate results. Note that when the predetermined amount, i.e. distance d, is applied to the corners as well as to the edges, shapes  201  and  202  can be placed into different clusters. 
     Balancing cluster size with efficiency is one aspect of the invention. In other words, processing only a few clusters in the layout (i.e. having mega-clusters) can be as time consuming as processing the layout without clusters. Therefore, using techniques to delineate the appropriate cluster size, e.g. the endcap and diagonal corner techniques, can advantageously provide the appropriate balance between size and efficiency. Specifically, to minimize processing time and ensure minimum data size, the smallest number of clusters that repeat themselves as often as possible can be used. To further minimize processing time, small clusters could either be grouped with other neighboring clusters, if these groups repeat themselves, or could be submitted together but still considered independent clusters. Thus, an appropriate cluster size can be determined or an appropriate number of small clusters can be determined to optimize system performance. 
     In one embodiment, the basic grow, endcap, and diagonal corner techniques can be applied to the same design data. Additionally, the endcap and the diagonal corner techniques could be combined. For example, referring to  FIG. 2B , boundary  103  could be grown diagonally as well, thereby creating an extension  210 , which is shown in  FIG. 2B . This helps further reduce cluster sizes by keeping features that can be phase shifted independent of one another in separate clusters. 
     Parallel Processing of Flattened Design Data 
     In one exemplary process shown in  FIG. 3 , clusters in different areas of the layout can be prepared for parallel processing. In step  300  of this process, design data is received. In step  301 , shapes can be binned (i.e. filtered) by position within the layout.  FIG. 4  illustrates a sample layout  400  that includes a plurality of shapes  401 - 405 . To facilitate parallel processing, layout  400  can be partitioned into rectangular bins  410 - 413  (wherein dashed lines  406  and  407  indicate the boundaries of bins  410 - 413 ). In layout  400 , bin  410  includes shape  401  and a portion of shape  402 , bin  411  includes shape  403  and a portion of shape  402 , bin  412  includes a shape  404 , and bin  413  includes a shape  405 . In one embodiment, the number of bins selected for any layout is a power of  2 . In another embodiment, the number of bins can be based on the number of processors available for performing the filtering. In yet another embodiment, the number of bins can be based on system performance, wherein the total number of shapes in the design data can be divided by an optimal number of shapes per bin, thereby resulting in number of bins. In one embodiment, an optimal number of shapes per bin can be approximately 500,000 shapes. In another embodiment, an optimal number of shapes per bin can be based on the number of shapes that a given CPU can handle for best throughput. 
     Various methods can be used to designate specific bins. In one embodiment, a bin can be designated by four values (X1, X2, Y1, Y2), wherein X1 and X2 are locations on an x-axis and Y1 and Y2 are locations on a y-axis. Thus, a portion of a shape is in a bin if its (x, y) position of the shape is such that X1&lt;x≦X2 and Y1&lt;y≦Y2.Note that the (x, y) position can designate the center of the shape, a particular corner of the shape, and/or any other readily computable position on the shape. In one embodiment, multiple (x, y) positions can be analyzed to determine whether a shape in its entirety is within a bin. 
     After the bins are defined and designated, clusters can be built within each bin in step  302 . Building clusters can be done using the grow processes described above, including but not limited to the basic grow technique, the endcap technique, and the diagonal corner technique. In one embodiment, the bins can be processed in parallel, thereby speeding up cluster identification. 
     In step  303 , identical clusters can be detected, thereby minimizing run time and reducing data size. For example, if the design data includes a number of repeating shapes, then some clusters may have the same shapes. Whether and how this step is performed represents a tradeoff between speed and memory consumption. Specifically, detecting identical clusters may take longer during clustering, but may save time later during phase assignment. Advantageously, detecting identical clusters can also reduce memory consumption. Specifically, the database for processed information can store placement/coloring of shifters for a cluster and indicate other instances of identical clusters. 
     In one embodiment, detecting identical clusters can be performed within bins. In another embodiment, detecting identical clusters can be performed across bins (i.e. to find identical clusters in other bins). 
     In one embodiment, identical clusters can be identified by comparing a bounding box of the expanded shape size (or original shape), the number of shapes within the cluster, and the number of vertices of each shape. After a rudimentary match is found using these parameters, other more detailed identification means can be used to ensure an actual match has been made. Note that performing phase shifter definition and phase assignment could be done after steps  302  or  303  (wherein if phase shifting is done after step  302 , then any future clusters can only be sent if they do not match an already existing cluster). 
     In another embodiment, detection of identical clusters can occur in a distributed fashion during the processing to place shifters and assign phase. In such an embodiment, a checksum or other count can be computed as processing begins for each cluster. By comparing the checksums against a record of checksums of previously processed clusters, likely identical clusters can be identified. Further checks can be performed to verify that the current cluster is identical to the previous cluster before marking the two as identical. In one embodiment, the detection of identical clusters in this fashion makes use of the apparatuses and methods described in U.S. patent application Ser. No. 10/098,713 entitled “Method and Apparatus for Identifying an Identical Cell in an IC Layout with an Existing Solution”, filed on Mar. 15, 2002, and assigned to the assignee of the present invention. 
     Step  304  determines whether cluster formation is complete, i.e. whether all shapes in the original layout have been placed in clusters. In one embodiment, shapes that are touching or crossing a bin boundary, such as shape  402 , will not be included in a cluster. In other words, if a shape is touching or crossing a bin boundary, then this shape is not analyzed solely within the context of one bin. Therefore, such shapes can be returned to a new layout where they can be further processed. In one embodiment, the new layout can include any shapes not clustered as well as the shapes touching a bin boundary (both referenced herein as remaining shapes). Step  305  determines the processing for these remaining shapes. In one embodiment, the remaining shapes can be re-partitioned using different boundaries, i.e. the process returns to step  301 . In another embodiment, the remaining shapes can be sent directly into cluster designation, i.e. the process returns to step  302 . 
     The further processing of the remaining shapes can be based on the number of remaining shapes after step  303 . In one embodiment, if the number of remaining shapes is equal to or less than a predetermined small number, then the process can proceed from step  305  to step  302  for clustering. Otherwise, the process can proceed from step  305  to step  301  for re-partitioning. In another embodiment, re-partitioning is performed as long as the number of remaining shapes decreases after step  303 . If cluster formation is complete, as determined in step  304 , then a hierarchy can be created from these clusters. 
       FIG. 5  illustrates one exemplary hierarchy  501  including bin nodes  505 ( 1 )- 505 (N) at a first level and clusters C at a second level. The clusters are written in a notation of C(j,k), wherein j is the bin number and k is the cluster number within that bin. Thus, for example, bin  505 ( 1 ) includes clusters C( 1 , 1 )-C( 1 ,X), bin  505 ( 2 ) includes clusters C( 2 , 1 )-C( 2 ,Y), and bin  505 (N) includes clusters C(N, 1 )-C(N,Z). 
     The remaining shapes that touch/cross the bin boundaries or that were clustered by step  302  directly from step  304  can be designated at the first level in hierarchy  501 , either collectively or individually. In other words, when these remaining shapes are provided to step  302 , they can be stored in new bins or as individual clusters directly under the top level. For purposes of illustration in  FIG. 5 , these remaining shapes are designated as individual clusters C( 0 , 1 ) . . . C( 0 ,N). 
     In step  305 , the hierarchy can be flattened to remove the bins in the first layer.  FIG. 6  illustrates hierarchy  501  after flattening, thereby elevating the clusters to the first level in a modified hierarchy  601 . In modified hierarchy  601 , clusters are provided in the first level. In accordance with one feature of the invention, returned shapes  602  and  603  can be processed, i.e. phase shifted and assigned phase, separately from the designated clusters in hierarchy  601 . 
     In one embodiment, additional optimizations can be performed in optional step  307 . For example, sparse clusters, e.g. those clusters having a relatively small number of shapes therein, can be merged into a single cluster. In one embodiment, this merger can precede step  306 , thereby potentially reducing the number of clusters to analyze. (However, note that if two sparse clusters are combined into one cluster, then the number of instances may increase, thereby also increasing the design data size. If the number of instances would increase, then the sparse clusters can be send as separate clusters, but as a single process.) In another embodiment, clusters that exceed a certain size can be divided into smaller clusters. This division can be performed by cutting between shapes or even cutting shapes but not their associated shifters. Note that increasing the number of clusters is typically reserved for situations where the clusters are exceedingly large. In this case, increasing the number of clusters can improve phase processing. 
     In step  308 , the design data can be modified to include the phase shifters and assign phase to such phase shifters on the clusters. The clusters allow the phase information to be applied quickly and efficiently to the flattened design data because each cluster can be processed independently (e.g. in parallel) of the other clusters. 
     In one embodiment, clusters are processed at step  308  using the apparatuses and methods described in U.S. patent application Ser. No. 10/085,759, filed Feb. 28, 2002, entitled “Design And Layout Of Phase Shifting Photolithographic Masks” having inventors Michel Luc Côté and Christophe Pierrat, assigned to the assignee of the present invention, and incorporated by reference herein. 
     In another embodiment, clusters are processed at step  308  using the apparatuses and methods described in U.S. patent application Ser. No. 09/669,359 filed Sep. 26, 2000, entitled “Phase Shift Masking for Complex Patterns”, having inventor Christophe Pierrat, assigned to the assignee of the present invention, and incorporated by reference herein. Clustering Applied To Hierarchical Design Data 
       FIGS. 7A and 7B  illustrate one embodiment for transforming hierarchical design data into clustered design data. In a standard hierarchy  700 , shown in  FIG. 7A , cells  701  and  702  can include one or more sub-cells. For example, cell  701  can include sub-cells  703  and  704  as well as individual shapes (not shown). In  FIG. 7A , cell  702  includes a sub-cell  705 . In hierarchy  700 , a sub-cell refers to one or more additional cells that are provided within a cell. Like cells, a sub-cell can contain further sub-cells as well as individual shapes (not shown). 
       FIG. 7B  illustrates hierarchy  700  after topological flattening. Specifically, in a shape hierarchy  701 (S), each first level element contains its geometry. Thus, for example, cell  701  in hierarchy  700  has been replaced with element  701 (S), which includes the shape information from cell  701  minus any shape information regarding sub-cells  703  and  704 . Note that elements  703 (S) and  704 (S) now include the shape information from sub-cells  703  and  704 , respectively. In a similar manner, element  702 (S) includes the shape information from cell  702  minus any shape information regarding sub-cell  705 . Element  705 (S) includes the shape information from sub-cell  705 . 
     In one embodiment, each first level element in hierarchy  700 (S) includes references to all of the placements of that geometry (called instances). For example, element  701 (S) includes multiple instances I( 1 ,P 1 ) . . . I( 1 ,PN). The instances are written in a notation of I(q,r), wherein q is the instance number and r is the position of the instance in the layout. Hierarchy  700 (S) can be referred to as a topological hierarchy. 
     At this point, the shapes of the first level elements in hierarchy  700 (S) can be grown and designated as clusters as described in reference to  FIGS. 1 ,  2 A, and  2 B. The handling of clusters and optimizing cluster sizes can be done in an analogous fashion to the methods described in reference to  FIG. 3 . 
     Although illustrative embodiments of the invention have been described in detail herein with reference to the accompanying figures, it is to be understood that the invention is not limited to those precise embodiments. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed. As such, many modifications and variations will be apparent. 
     For example, some embodiments of the invention can include a software tool for processing design data that includes a plurality of shapes. The software tool can include source code segments embodied on a physical medium, e.g. a CD-ROM, for performing some or all of the steps described in reference to  FIG. 3 . 
     Other embodiments of the invention can include a method for providing phase shifters in a layout and assigning phase to such phase shifters. The method can include accessing various source code segments. These source code segments can include a source code segment that repartitions the bins to generate additional clusters. 
     Other embodiments of the invention can include a system for providing phase shifters in a layout and assigning phase to such phase shifters. The system can at least include the means for filtering shapes by defined areas in the layout, the means for building clusters within the defined areas, the means for identifying identical clusters in a defined area or in multiple defined areas, the means for providing phase information for the clusters, and means for modifying the layout to include the phase information. 
     Note that in one embodiment, an endcap technique, instead of not growing the edge, can include growing the edge an amount different from the predetermined amount, e.g. a different positive amount or a negative amount. 
     In yet another embodiment, the grow techniques to identify clusters can be used to construct a trim mask. For example, a logic OR operation can be performed with the original layout and the phase shifter layout (as provided by the modified design data, see  FIG. 3 ). A slight sizing down of the second result can provide an appropriate trim layout for the trim mask. Equation 1 illustrates this computation.
 
P=original layout
 
S1=0 degree phase shifters
 
S2=180 degree phase shifters
 
L1=P OR S1 OR S2
 
L2=size(L1, r)
 
L3=L2 OR P   Equation 1
 
     where r is a sizing amount (e.g. −20 nm for a sample process) and “OR” is a logical OR operation on a design. Thus, L3 is the final trim although there may be some additional clean ups to remove small features and/or gaps. 
     The system and methods described herein can be applied to any lithographic process technology, including ultraviolet, deep ultraviolet (DUV), extreme ultraviolet (EUV), x-ray, electron projection lithography (EPL), and ebeam. Accordingly, it is intended that the scope of the invention be defined by the following Claims and their equivalents.