US20140358830A1 - Lithographic hotspot detection using multiple machine learning kernels - Google Patents
Lithographic hotspot detection using multiple machine learning kernels Download PDFInfo
- Publication number
- US20140358830A1 US20140358830A1 US14/287,921 US201414287921A US2014358830A1 US 20140358830 A1 US20140358830 A1 US 20140358830A1 US 201414287921 A US201414287921 A US 201414287921A US 2014358830 A1 US2014358830 A1 US 2014358830A1
- Authority
- US
- United States
- Prior art keywords
- hotspot
- clusters
- training data
- data
- topologies
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 122
- 238000010801 machine learning Methods 0.000 title description 16
- 238000012549 training Methods 0.000 claims abstract description 151
- 238000000034 method Methods 0.000 claims description 54
- 238000012706 support-vector machine Methods 0.000 claims description 30
- 238000012360 testing method Methods 0.000 claims description 22
- 238000001914 filtration Methods 0.000 claims description 18
- 239000000284 extract Substances 0.000 abstract description 11
- 238000011156 evaluation Methods 0.000 description 20
- 238000000605 extraction Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 8
- 239000002131 composite material Substances 0.000 description 7
- 238000001459 lithography Methods 0.000 description 7
- 238000002474 experimental method Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 238000002224 dissection Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
Images
Classifications
-
- G06N99/005—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03F—PHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
- G03F7/00—Photomechanical, e.g. photolithographic, production of textured or patterned surfaces, e.g. printing surfaces; Materials therefor, e.g. comprising photoresists; Apparatus specially adapted therefor
- G03F7/70—Microphotolithographic exposure; Apparatus therefor
- G03F7/70425—Imaging strategies, e.g. for increasing throughput or resolution, printing product fields larger than the image field or compensating lithography- or non-lithography errors, e.g. proximity correction, mix-and-match, stitching or double patterning
- G03F7/70433—Layout for increasing efficiency or for compensating imaging errors, e.g. layout of exposure fields for reducing focus errors; Use of mask features for increasing efficiency or for compensating imaging errors
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03F—PHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
- G03F7/00—Photomechanical, e.g. photolithographic, production of textured or patterned surfaces, e.g. printing surfaces; Materials therefor, e.g. comprising photoresists; Apparatus specially adapted therefor
- G03F7/70—Microphotolithographic exposure; Apparatus therefor
- G03F7/70483—Information management; Active and passive control; Testing; Wafer monitoring, e.g. pattern monitoring
- G03F7/70491—Information management, e.g. software; Active and passive control, e.g. details of controlling exposure processes or exposure tool monitoring processes
- G03F7/705—Modelling or simulating from physical phenomena up to complete wafer processes or whole workflow in wafer productions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
- G06T7/001—Industrial image inspection using an image reference approach
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30144—Printing quality
Definitions
- This disclosure relates to the field of hotspot identification generally, and specifically to improved hotspot identification using machine learning.
- Hotspot detection has attracted increasing attention in recent years and may be classified into four major categories, (1) lithography simulation, (2) pattern matching, (3) machine learning, and (4) hybrid.
- the full lithography simulation provides the most accurate detection result.
- the simulation suffers from an extremely high computational complexity and long runtime.
- Pattern matching is the fastest hotspot detection approach and is good at detecting pre-characterized hotspot patterns, but has a limited flexibility to recognize previously unseen ones.
- machine learning is good at detecting unknown hotspots but needs special treatments to suppress the false alarm.
- the hybrid approach unites both pattern matching and machine learning engines (even with a lithography simulator) to enhance accuracy and reduce false alarm but may consume longer runtimes.
- a computer-implemented method a non-transitory computer-readable storage medium storing executable code, and corresponding systems.
- different machine learning kernels are trained to identify different types of hotspot topologies.
- Layout clips that may contain a hotspot are applied to the machine learning kernels, and the results of the kernels are combined to identify hotspots within the layout clips.
- One embodiment of a computer-implemented method for hotspot detection comprises defining a clip to represent a portion of an integrated circuit topology, and evaluating the clip using a plurality of kernels wherein the kernels identify different topologies that indicate a potential for a hotspot to occur.
- One embodiment of a computer-implemented method for identifying hotspots on a test layout comprises classifying a set of hotspot training data into a plurality of hotspot clusters according to their topologies, where the hotspot clusters are associated with different hotspot topologies.
- a set of non-hotspot training data is classified into a plurality of non-hotspot clusters according to their topologies, where the non-hotspot clusters are associated with different topologies.
- Topological and non-topological critical features are extracted from the hotspot clusters and centroids of the non-hotspot clusters, and the topological critical features are geometry related features that characterize a cluster and the non-topological critical features are lithographic processes related features that characterize a cluster.
- a plurality of kernels configured to identify hotspots are created, where each kernel is constructed using the extracted critical features of the centroids of the non-hotspot clusters and the extracted critical features from one of the hotspot clusters, and each kernel is configured to identify hotspot topologies different from hotspot topologies that the other kernels are configured to identify.
- Non-transitory computer-readable storage medium storing executable computer program instructions for identifying hotspots on a test layout, comprises classifying a set of hotspot training data into a plurality of hotspot clusters according to their topologies, where the hotspot clusters are associated with different hotspot topologies.
- a set of non-hotspot training data is classified into a plurality of non-hotspot clusters according to their topologies, where the non-hotspot clusters are associated with different topologies.
- Topological and non-topological critical features are extracted from the hotspot clusters and centroids of the non-hotspot clusters, and the topological critical features are geometry related features that characterize a cluster and the non-topological critical features are lithographic processes related features that characterize a cluster.
- a plurality of kernels configured to identify hotspots are created, where each kernel is constructed using the extracted critical features of the centroids of the non-hotspot clusters and the extracted critical features from one of the hotspot clusters, and each kernel is configured to identify hotspot topologies different from hotspot topologies that the other kernels are configured to identify.
- FIG. 1 is a layout clip that may contain a hotspot according to an embodiment.
- FIG. 2 is an example criteria for determining whether a reported (i.e. identified) hotspot is an actual hotspot according to an embodiment.
- FIG. 3 is a flowchart illustrating a training phase and evaluation phase of a hotspot detection system according to an embodiment.
- FIG. 4A illustrates four patterns A, B, C, and D according to an embodiment.
- FIG. 4B illustrates clusters ⁇ A, D ⁇ , ⁇ B ⁇ , and ⁇ C ⁇ according to an embodiment.
- FIG. 5A is a polygon that has been sliced into different regions according to an embodiment.
- FIG. 5B is the polygon of FIG. 5A including the strings for each side according to an embodiment.
- FIG. 5C illustrates a pattern including composite strings according to an embodiment.
- FIG. 5D illustrates a pixilated layout clip according to an embodiment.
- FIG. 5E illustrates two clusters, ⁇ A, B ⁇ and ⁇ C ⁇ , generated by density-based classification according to an embodiment.
- FIG. 6A illustrates four example topological features according to an embodiment.
- FIG. 6B illustrates five example non-topological features according to an embodiment.
- FIG. 7A illustrates polygon dissection occurring during layout clip extraction according to an embodiment.
- FIG. 7B illustrates a layout clip including the polygon in FIG. 7A according to an embodiment.
- FIG. 8 is a high-level block diagram illustrating an embodiment of an environment for hotspot spot detection.
- FIG. 9 is a block diagram illustrating a detailed view of the components within a hotspot detection system according to an embodiment
- a “hotspot” is a layout pattern that is at risk of inducing a printability issue at the fabrication stage.
- a “hit” is an actual hotspot that has been correctly identified as a hotspot. Accuracy is the ratio of the number of total hits over the number of all actual hotspots.
- an “extra” is a non-hotspot that is mistakenly identified as a hotspot.
- a false alarm is the ratio of the number of total extras over the number of all actual hotspots. In this embodiment, the false alarm represents the false positives (how many non-hotspots are reported as hotspots), and accuracy reflects the false negatives (how many hotspots are missed).
- FIG. 1 is a layout clip that may contain a hotspot according to an embodiment.
- a hotspot or non-hotspot pattern in the training data set is a layout clip defined by a core and its ambit, where the core is the central part of this clip providing its significant characteristics, while the ambit is the peripheral part of this clip providing supplementary information.
- the training data set, provided by foundry (or lithography simulation) may be highly imbalanced, i.e., the non-hotspot patterns greatly outnumber the hotspot patterns.
- FIG. 2 is an example criteria for determining whether a reported (i.e. identified) hotspot is an actual hotspot according to an embodiment.
- a reported hotspot is considered as a hit if the core of the reported hotspot overlaps with the core of an actual hotspot.
- a hit occurs if a clip of the reported hotpot and a clip of the actual hotspot overlap a certain amount of area. Additionally, in some embodiments, a hit may occur if the clip of the reported hotspot and the clip of the actual hotspot overlap completely.
- a hotspot detection system exploits the strengths of machine learning for the identification of hotspots for a given layout.
- the hotspot detection system is a computing device that executes computer program modules which train the hotspot detection system to automatically identify whether part of a layout is a hotspot.
- a hotspot detection system might be, for example, a personal computer, a tablet computer, a laptop computer, etc. The structure of the hotspot detection system is discussed in detail below with respect to FIGS. 8 and 9 .
- the hotspot detection system uses multiple kernels to provide fuzziness thus identifying potential hotspots that are undefined in the training data set, without increasing false alarm. Additionally, the hotspot detection system balances the population between hotspot and non-hotspot samples, to achieve high accuracy and low false alarm. Additionally, a testing layout contains a tremendous number of sites that need to be evaluated to identify hotspots. Therefore, in some embodiments, in an evaluation phase, to avoid time-consuming full-layout scanning, the hotspot detection system extracts only possible layout clips based on the polygon density. In some embodiments, after evaluation, the hotspot detection system may filter the detected hotspots to reduce the possibility of false alarm without sacrificing accuracy.
- FIG. 3 is a flowchart illustrating a training phase and evaluation phase of a hotspot detection system according to an embodiment.
- the training phase constructs a machine learning multi-kernel model.
- the evaluation phase verifies a testing layout using the constructed multi-kernel model.
- Other entities may perform some or all of the steps of the process in other embodiments.
- embodiments may include different and/or additional steps, or perform the steps in different orders.
- the hotspot detection system is provided with a set of hotspot training data (also referred to as hotspot training data) and a set of non-hotspot training data (also referred to as non-hotspot training data).
- the hotspot training data contains a plurality of different patterns that are known to produce hotspots.
- the non-hotspot training data contains a plurality of patterns that are known not to produce hotspots.
- the size of the hotspot training data is smaller than the size of the non-hotspot training data (i.e., the number of data items in the hotspot training data is less than the number of data items in the non-hotspot training data).
- a data item is a single pattern. Imbalanced population between hotspot and non-hotspot training data may degrade the accuracy and increase the false alarm rate, accordingly, the hotspot detection system may balance the population by upsampling or downsampling the hotspot and/or non-hotspot training data.
- the hotspot detection system up samples the hotspot training data to an intermediate size.
- the intermediate size is the size of the data set, after upsampling, such that the upsampled hotspot training data and the non-hotspot training data are close or equal to in size.
- the intermediate size is a size of a data set such that the ratio of the sizes of the upsampled hotspot training data set and the non-hotspot training data set is a value that may range from 1:1 to 1:40.
- the intermediate size is the size of a data set that is 1:1, i.e., the size of the hotspot training data set and the non-hotspot training data set are equal.
- the hotspot detection system slightly shifts each hotspot training pattern upwards, downwards, leftwards, rightwards, rotating the data item (e.g., 90°), moving some edge in the data item or some combination thereof, to create several derivative data items before topological classification.
- a derivative data item is a data shifted data item.
- the hotspot detection system downsamples the non-hotspot training data to the intermediate size.
- the hotspot detection system classifies non-hotspot training data into clusters and selects the centroid of each non-hotspot cluster.
- the hotspot detection system classifies the non-hotspot patterns with the same topology into a single non-hotspot cluster. Thus, for each topology there is an associated non-hotspot cluster. Then, the hotspot detection system selects the centroid of the classified non-hotspot patterns associated with the cluster to represent the associated non-hotspot cluster.
- the hotspot detection system discards the rest of the non-hotspot patterns within this cluster, because they have same or very similar data information as the centroid.
- a downsampled non-hotspot training data set is formed by all non-hotspot centroids.
- the hotspot detection system may downsample (e.g., randomly select) the non-hotspot data before topological classification. However, this is not preferable as it may lose some non-hotspot training data.
- the size of the hotspot training data may be larger than the size of the non-hotspot training data.
- the hotspot detection system may adjust (i.e., upsample or downsample) the hotspot training data and non-hotspot training such that both data sets reach the intermediate size.
- the hotspot training data and the non-hotspot training data may be equal in size, so no adjustment is necessary.
- the hotspot detection system classifies the upsampled hotspot training data into ‘N’ hotspot clusters according to their topologies. Likewise, the hotspot detection system classifies the non-hotspot training data into ‘n’ clusters according to their topologies. Topological classification is discussed in detail below with reference to FIGS. 4A-B and 5 A-E.
- the hotspot detection system extracts topological and non-topological critical features from each training pattern of each hotspot cluster and from each non-hotspot centroid. Specifically, the hotspot detection system extracts topological (geometry-related) and non-topological (lithography-process-related) critical features from the data items which comprise the hotspot clusters and the downsampled non-hotspot training data set. Critical feature extraction is discussed in detail below with reference to FIGS. 6A-B .
- the hotspot detection system constructs a specific kernel for each hotspot cluster using the extracted critical features of the hotspot cluster and the downsampled non-hotspot data set.
- the kernels are constructed based on a support vector machine (SVM) model, an artificial neural network, some other machine learning model, or some combination thereof.
- SVM support vector machine
- Each kernel is created using a hotspot cluster and all of the non-hotspot centroids. In some embodiments, each kernel is created using a hotspot cluster and a portion of the non-hotspot clusters.
- each kernel can concentrate on the critical features specific to its corresponding cluster. At the evaluation phase, a layout clip is flagged as a hotspot if one kernel classifies it as a hotspot. Topological classification also facilitates hotspot and non-hotspot population balancing. Additionally, as discussed below, compared with a single huge kernel, multiple kernel learning achieves high accuracy.
- the hotspot detection system may use an iterative learning process to develop the kernels to a determined training level. For example, the hotspot detection system may train the kernels until some threshold is reached (e.g., 90% accuracy in hotspot predication). Iterative multiple SVM-kernel learning is discussed in detail below.
- data shifting (that occurs in the upsampling process) generates several derivatives from the hotspot training data thus introducing adequate cluster varieties.
- the hotspot detection system may use data shifting to include one or more polygons that are originally located in the ambit into a core region, thus, capturing more layout information that may affect a hotspot.
- data shifting can also compensate possible layout clip extraction bias that is induced during clip extraction.
- the kernels have a flexibility to identify previously unseen patterns.
- test layout is a layout which the hotspot detection system evaluates using the multiple kernels to identify hotspots.
- the hotspot detection system divides a testing layout into one or more clips. In some embodiments, one or more of the clips have some portion which overlap with one or more adjacent clips.
- the hotspot detection system extracts one or more clips from the testing layout. In alternate embodiments, the hotspot detection system defines a clip for hotspot detection. In some instances defining a clip may include dividing a testing layout into one or more clip and extracting one or more clips from the testing layout. In some embodiments, the hotspot detection system may use some of the geometrical information extracted from the hotspot clusters and the non-hotspot clusters (e.g. the polygon density of core) to quickly identify whether the extracted layout clip is important or not.
- the clip extraction step reads in the testing layout and extract layout clips, then the hotspot detection system uses some geometrical information extracted from the hotspot clusters and the non-hotspot clusters to quickly abandon useless clips.
- the hotspot detection system evaluates the extracted layout clips using the trained kernels to identify hotspots.
- Each of the kernels is configured to identify a particular hotspot topology.
- each of the kernels processes all of the extracted clips to identify hotspots. Additionally, in some embodiments, some discarding of known non-hotspots in the extracted clips may occur before being passed to the kernels.
- the identified hotspots may then be presented to a user of the hotspot detection system. For example, the hotspot detection system may present one or more cores containing hotspots (i.e. hotspot cores) to the user.
- the hotspot detection system may perform hotspot filtering to reduce possible redundancy in the identified hotspots.
- the reported hotspot cores may strongly overlap in an area with high polygon density.
- the hotspot filtering reduces the redundancy.
- the hotspot filtering can greatly reduce the false alarm without sacrificing the accuracy.
- the hotspot detection system merges the identified cores including hotspots (i.e., hotspot cores) into several regions, and merges a hotspot clip into an existing merging region if its core overlaps with some hotspot core of the region.
- a merging region is the minimum bounding box covering all hotspot cores in this region.
- the hotspot detection system reframes a merging region containing more than four hotspot cores.
- the goal of reframing is to minimize the number of identified hotspots without missing any possible actual hotspots.
- Clip reframing ensures that the core of an arbitrary actual hotspot is overlapped by at least one reframed core.
- the hotspot detection system may remove redundant clips located in the overlapping area of two merging regions.
- a hotspot core may be discarded under two conditions: (1) All polygons within this core are covered by other hotspot cores, and (2) each corner of this core overlaps with other hotspot cores inside some merging region.
- hotspot/non-hotspot patterns in the training data set are classified into clusters based on topology. After topology classification, the patterns within one cluster have very similar geometrical characteristics (critical features).
- the hotspot detection system uses a two-level topological classification: string-based and density-based classification.
- FIG. 4A illustrates four patterns A, B, C, and D according to an embodiment.
- String-based classification splits these patterns into two intermediate clusters ⁇ A, D ⁇ and ⁇ B, C ⁇ based on topology (e.g., B and C are both crosses).
- the hotspot detection system uses density-based classification on the string classified intermediate clusters to create either non-hotspot or hotspot clusters depending on the data set being processed. For example, density-based classification applied to clusters ⁇ A, D ⁇ and ⁇ B, C ⁇ is used to divide ⁇ B, C ⁇ into clusters ⁇ B ⁇ and ⁇ C ⁇ , based on their polygon distribution.
- FIG. 4B illustrates clusters ⁇ A, D ⁇ , ⁇ B ⁇ , and ⁇ C ⁇ according to an embodiment.
- Topological classification makes each machine learning kernel concentrate on the critical features specific to its corresponding cluster as well as facilitates hotspot and non-hotspot population balancing.
- the hotspot detection system uses four directional strings to capture the topology of one pattern.
- FIG. 5A is a polygon that has been sliced into different regions according to an embodiment.
- the pattern is first vertically sliced along polygon edges, e.g., two slices are generated for FIG. 5A .
- the boundary is labeled as “1”
- a polygon block is labeled as “1”
- a space block is labeled as “0.”
- each slice corresponds to a binary sequence, and then this sequence is converted to a decimal number.
- FIG. 5B is the polygon of FIG. 5A including the strings for each side according to an embodiment. Any two strings recorded at adjacent sides fully capture the topology of a pattern.
- the hotspot detection system verifies whether two patterns have the same topology using strings from two adjacent sides of one pattern with the corresponding adjacent sides on the pattern being compared. In one embodiment, the hotspot detection system generates the four directional strings for the two patterns. The hotspot detection system selects any two strings of adjacent sides of one pattern. The hotspot detection system generates two composite strings by concatenating the strings of the other pattern counterclockwise and clockwise. The string of the beginning side should be added at the end.
- two patterns have the same topology if and only if any two strings at adjacent sides of one pattern exist in the counterclockwise or clockwise composite string of the other pattern.
- the eight possible orientations include combinations of four rotations (0°, 90°, 180°, and 270°) of the pattern and two minor images (horizontal and vertical) of the pattern.
- FIG. 5B the hotspot detection system selects two strings at adjacent sides of the pattern, ⁇ 5, 3, 5, 3, 10> for the left and bottom sides.
- FIG. 5C illustrates a pattern including composite strings according to an embodiment.
- a counterclockwise composite string ⁇ 6, 3, 6, 10, 3, 5, 3, 5, 3, 10, 6, 3, 6>
- clockwise composite string ⁇ 10, 3, 5, 3, 5, 3, 10, 6, 3, 6, 10, 3>.
- the string component ⁇ 5, 3, 5, 3, 10> exists in the counterclockwise composite string.
- two patterns given in FIGS. 5B and 5C have the same topology.
- patterns within one cluster have the same topology. Even so, in some cases, two patterns with the same topology may still have very different geometrical characteristics. For example, one could be a hotspot, while the other is a non-hotspot under discrete process forbidden rules.
- FIG. 5D illustrates a pixilated layout clip according to an embodiment.
- the distance ⁇ (p i , p i ) between two patterns p i and p j is defined by the summation of the pixel density difference over all pixels based on the same orientation:
- the cluster radius used by density-based classification is defined as follows.
- R 0 is the user-defined radius threshold.
- the hotspot detection system checks whether this pattern is covered by some existing cluster. For example, a pattern may be covered by a cluster if the distance between this pattern and the centroid (representative) of the cluster is less than or equal to the radius value. If so, the pattern is added into the covering cluster. Otherwise, this pattern becomes the centroid of a new cluster. This flow is repeated for all patterns. Additionally, in some embodiments, the hotspot detection system recalculates the centroid once a pattern is added to some cluster.
- FIG. 5E illustrates two clusters, ⁇ A, B ⁇ and ⁇ C ⁇ , generated by density-based classification according to an embodiment.
- the hotspot detection system extracts critical features from patterns.
- the critical features are features that characterize an associated pattern.
- Critical features may be topological or non-topological features.
- Topological features are related to the geometry of the pattern. Topological features may include, for example, horizontal and vertical distance between a pair of internally facing polygon edges, horizontal and vertical distance between a pair of externally facing polygon edges, diagonal distance of two convex corners, horizontal and vertical edge length of a polygon, or some other feature that is related to the geometry of the pattern.
- Non-topological features are related to a lithographic process that may be used to generate the pattern.
- Non-topological features may include, for example, a number of corners (convex plus concave), a number of touched points, a minimum distance between a pair of internally facing polygon edges, a minimum distance between a pair of externally facing polygon edges, a polygon density, or some other feature that is related to the lithographic process.
- the hotspot detection system uses a transitive closure graph to extract the topological critical features. Critical feature extraction is further described in U.S. patent application Ser. No. 13/669,387, “Accurate Process-Hotspot Detection Using Critical Design Rule Extraction”, filed on Nov. 5, 2012, which is hereby incorporated by reference in its entirety.
- FIG. 6A illustrates four example topological features according to an embodiment.
- the four types of topological features extracted are: (1) horizontal and vertical distance between a pair of internally facing polygon edges; (2) horizontal and vertical distance between a pair of externally facing polygon edges; (3) diagonal distance of two convex corners; and (4) horizontal and vertical edge length of a polygon.
- two sets of topological features may be generated to preserve the vertical and horizontal relationships among extracted features.
- FIG. 6B illustrates five example non-topological features according to an embodiment.
- the hotspot detection system defines five types of non-topological features: (1) the number of corners (convex plus concave); (2) the number of touched points; (3) the minimum distance between a pair of internally facing polygon edges; (4) the minimum distance between a pair of externally facing polygon edges; and (5) the polygon density.
- the number of critical features is identical for all patterns in a cluster.
- the equivalent feature number facilitates the subsequent SVM kernel training. For example, in an SVM training step, a kernel may be trained using a large amount of data. But, only with a fixed data feature size, a kernel can be trained. If two of the training data contain different feature sizes some method (e.g., add dummy features to the one with fewer features size or discard some features of the one with greater features size) should be used to make them equal. Thus, lowering the kernel training quality, because it is not known what features are really important.
- the hotspot detection system leverages machine learning. As discussed above, in some embodiments, the hotspot detection system may use iterative multiple kernel learning to fully exploit the strengths of machine learning.
- SVM is a popular supervised learning model.
- a two-class SVM transforms the training data to a high dimensional space and calculates a hyperplane to separate the data into two classes with a maximum margin. If the SVM kernel function is a symmetric positive semidefinite function, then SVM guarantees a global optimum solution. SVM has showed superior performance in handling a small training data set, non-linear and high dimensional classification issues.
- the hotspot detection system uses two-class soft-margin C-type SVM and uses the radial basis function to develop the kernels to detect hotspots and non-hotspots.
- Given training data x n , n 1 . . . N, with label t n (+1 or ⁇ 1 for two-class SVM).
- the dual form of the quadratic programming formulation of C-type SVM is given as follows.
- a ( a 1 , . . . ,a N ) T , (7)
- k(x n , x m ) is the Gaussian radial basis kernel function
- a n is the Lagrange multiplier.
- the Gaussian radial basis kernel function is symmetric positive semi-definite thus leading to an optimal classification.
- an imbalanced population may destroy the soft margin and degrade the training quality.
- the hotspot detection system uses a self-training process to iteratively adapt C and ⁇ parameters.
- the initial values of C and ⁇ are 1000 and 0.01, respectively.
- C and ⁇ are doubled if the stopping criterion is not satisfied.
- the stopping criterion of iterative learning is that the number of self-training iterations exceeds a user-defined bound or the hotspot/non-hotspot detection accuracy rate (with respect to the training data) exceeds a user-defined training accuracy, say 90%, or some other value.
- the hotspot detection system may extract only possible layout clips based on the polygon distribution. In other embodiments, the hotspot detection system may extract additional layout clips.
- FIG. 7A illustrates polygon dissection occurring during layout clip extraction according to an embodiment.
- each layout polygon is first horizontally sliced into rectangles. The rectangles are then cut into smaller pieces if their widths or heights are greater than the hotspot core side length (l c in FIG. 2 ).
- FIG. 7B illustrates a layout clip including the polygon in FIG. 7A according to an embodiment.
- a core and an ambit are set with respect to the bottom left corner of each rectangle.
- the hotspot detection system extracts the corresponding layout clip if the polygon distribution within this clip meets the user-specified requirements; otherwise, the clip is discarded.
- the user specified requirements may specify a polygon density (total polygon area/clip area), a polygon count, distances between the clip boundary and the bounding box that covers all polygon rectangles in the clip, etc.
- the polygon density may be at least or equal to 0.3
- the polygon count may be greater than 5
- distances between the clip boundary and the bounding box that covers all polygon rectangles in the clip may be shorter than 35% of the hotspot ambit length.
- the polygon distribution may be a polygon density, a polygon count, a distances between the clip boundary and the bounding box that covers all polygon rectangles in the clip (indicated by four arrows in FIG. 7B ), etc.
- the user-specified requirements are positively correlated to the information of hotspot training data. It can be seen that if the polygon distribution requirements are met, each polygon must be included by at least one layout clip. Moreover, the possible misalignment between an extracted clip and an actual hotspot can be compensated by data shifting that occurs during population balancing.
- the hotspot detection system may include software modules implemented in the C++ programming language with a GDSII library Anuvad and the SVM library LIBSVM.
- the hotspot detection system includes two Intel Xeon 2.3 GHz CPUs and with 64 GB memory.
- the hotspot detection system is compared with the 2012 CAD contest winners at ICCAD. Table 2 summarizes the experimental results. Overall, the hotspot detection system outperforms the first place winner on accuracy, false alarm, and the hit/extra rate. For the Array_benchmark3, compared with the third place winner, the hotspot detection system has lower accuracy but with a significantly lower false alarm.
- ‘Single SVM’ means the baseline SVM which uses one single huge SVM kernel (i.e., without topological classification and hotspot filtering); ‘ours_wo_filtering’ means the hotspot detection system using multiple SVM kernel training without hotspot filtering (i.e., with topological classification but without hotspot filtering); ‘ours’ means the hotspot detection system including hotspot filtering.
- the hotspot detection system's critical features are effective. For example, a single SVM achieves over 78% accuracy for Array_benchmark3 and Array_benchmark5.
- the hotspot detection system topological classification and population balancing work well, and thus the hotspot detection system's multiple SVM kernel learning has adequate fuzziness and delivers very high accuracy, 85.9 ⁇ 98.2%.
- the hotspot detection system's hotspot filtering greatly reduces the false alarm for all cases without sacrificing accuracy.
- Table 4 the impact of training data on accuracy is shown in Table 4.
- ‘data’ refers the ratio of the used training pattern count over the whole training pattern count.
- Table 4 indicates that using different training data may achieve higher accuracy and lower false alarm, e.g., Array_benchmark2 and MX_blind_partial.
- the hotspot detection system may use a small amount of training data to achieve high accuracy, especially for Array_benchmark3 and Array_benchmark5, thus shortening the runtime.
- FIG. 8 is a high-level block diagram illustrating an embodiment of an environment for hotspot spot detection.
- the environment includes a client device 100 connected by a network 802 to a hotspot detection system 800 .
- client device 100 and hotspot detection system are illustrated, but there may be multiple instances of each of these entities. For example, there may be hundreds of user devices 100 in communication with multiple hotspot detection systems 800 .
- the network 802 provides a communication infrastructure between the user device 100 and the hotspot detection system 800 .
- the network 802 is typically the Internet, but may be any network, including but not limited to a Local Area Network (LAN), a Metropolitan Area Network (MAN), a Wide Area Network (WAN), a mobile wired or wireless network, a private network, a virtual private network, or some combination thereof.
- LAN Local Area Network
- MAN Metropolitan Area Network
- WAN Wide Area Network
- mobile wired or wireless network a private network
- virtual private network or some combination thereof.
- the client device 850 is a computing device that executes computer program modules that allow a user to upload data to the hotspot detection system 800 .
- the client device 850 uploads a layout for an integrated circuit to the hotspot detection system 800 .
- the modules allow a user to receive identified hotspots or some other information from the hotspot detection system 800 .
- the client device 850 might be, for example, a personal computer, a tablet computer, a laptop computer, or other type of network-capable device.
- the hotspot detection system 800 processes layouts to identify one or more hotspots.
- a user uploads a layout directly from a user, processes the layout to identify hotspots, and presents the identified hotspots to the user.
- the hotspot detection system 800 receives layouts from the client device 850 , processes the layout to identify hotspots, and provides the identified hotspots to the client device 850 .
- the hotspot detection system 800 is comprised of modules including a detection database 805 , a scaling module 810 , a classification module 815 , a feature extraction module 820 , a training module 825 and an evaluation module 830 . Some embodiments of the hotspot detection system 800 have different modules than those described here. Similarly, the functions can be distributed among the modules in a different manner than is described here. In some embodiments, the hotspot detection system 800 is configured to perform some or all of the functions described above with reference to FIG. 3 .
- the detection database 805 is a database including hotspot training data, non-hotspot training data, one or more testing layouts, one or more clips, or some combination thereof.
- the hotspot training data contains a plurality of different patterns that are known to produce hotspots.
- the non-hotspot training data contains a plurality of patterns that are known not to produce hotspots.
- the scaling module 810 scales non-hotspot training data, hotspot training data, or some combination thereof.
- the scaling module 810 may retrieve non-hotspot training data and/or hotspot training data from the detection database 805 and/or some other entity (e.g., system administrator).
- the scaling module 810 is configured to upsample and/or downsample the hotspot training data, the non-hotspot training data, or some combination thereof.
- the scaling module 810 may upsample the hotspot training data to an intermediate size (e.g., such that the hotspot training data set and the non-hotspot training data set are equal size).
- the scaling module 810 may upsample the hotspot training data and/or the non-hotspot training data by slightly shifting (e.g., upwards, downwards, leftwards, rightwards, rotating the data item, moving some edge in the data item, or some combination thereof) each data item, and storing the newly shifted data item as a separate data item in the upsampled hotspot training data and/or non-hotspot training data.
- slightly shifting e.g., upwards, downwards, leftwards, rightwards, rotating the data item, moving some edge in the data item, or some combination thereof
- the scaling module 810 is configured to downsample the hotspot training data, the non-hotspot training data, or some combination thereof. For example, the scaling module 810 may filter out duplicative patterns in the training data.
- the scaling module 810 is configured to provide the scaled training data to the classification module 815 .
- Scaled training data may be the hotspot training data and/or the non-hotspot training data, that has been upsampled, downsampled, not modified (e.g., no upsampling/downsampling of the data), or some combination thereof.
- the classification module 815 classifies training data according to its topologies.
- the classification module 815 receives the hotspot training data, non-hotspot training data, or some combination thereof from the scaling module 810 .
- the hotspot training data and/or non-hotspot training may or may not have been scaled (e.g., upsampled and/or downsampled).
- the classification module 815 classifies hotspot training data into ‘N’ hotspot clusters according to their topologies.
- the classification module 815 classifies the non-hotspot training data into ‘n’ non-hotspot clusters according to their topologies.
- the classification module 815 groups non-hotspot patterns with the same topology into a single non-hotspot cluster.
- the classification module 815 selects the centroid of the classified non-hotspot patterns associated with the cluster to represent the associated non-hotspot cluster. In some embodiments, the classification module 815 discards (e.g., using the scaling module 810 ) the rest of the non-hotspot patterns within this cluster, because they have same or very similar data information as the centroid. In alternate embodiments, the classification module 810 may downsample (e.g., randomly select) the non-hotspot data before topological classification.
- the classification module 815 performs some or all of the functions discussed in detail above in the section titled “Topological Classification” to classify the hotspot training data, non-hotspot training data, or some combination thereof.
- the classification module 815 provides the hotspot clusters and non-hotspot clusters to the feature extraction module 820 .
- the feature extraction module 820 extracts critical features from hotspot clusters, non-hotspot clusters, or some combination thereof.
- the critical features may be topological and/or non-topological.
- the feature extraction module 820 performs some or all of the functions discussed in detail above in the section titled “Critical Feature Extraction” to extract critical features from the hotspot training data, non-hotspot training data, or some combination thereof.
- the feature extraction module 820 provides the critical features to the training module 825 .
- the training module 825 creates a plurality of kernels configured to identify hotspots using the critical features received from the feature extraction module 820 .
- the training module 825 creates a kernel for each hotspot cluster using the extracted critical features of the hotspot cluster and the critical features extracted from some, or all of, the non-hotspot training data.
- the kernels may be constructed based on a SVM model, an artificial neural network, some other machine learning model, or some combination thereof.
- the training module 825 may train kernels to a determined training level.
- the training module 825 may use an iterative training process that trains kernels until a threshold value is reached.
- the threshold value may be set such that the training completes when one or more parameters are achieved.
- a parameter may be, e.g., a hotspot detection accuracy rate, time take, number of training cycles, etc.
- the training module 825 performs some or all of the functions discussed in detail above in the section titled “Iterative Multiple SVM-Kernel Learning” to train the kernels for hotspot detection.
- the evaluation module 830 generates one or more clips from a testing layout.
- the testing layout may be received from a user of the hotspot detection system 800 , received from one or more client devices 100 , or some combination thereof.
- the evaluation module 830 may retrieve the testing layout from the detection database 805 .
- the evaluation module 830 performs some or all of the functions discussed in detail above in the section titled “Layout Clip Extraction” to extract clips from a testing layout.
- the evaluation module 830 uses some, or all of, the geometrical information extracted from the hotspot clusters and/or the non-hotspot clusters to identify whether an extracted layout clip is likely to contain a hotspot. Additionally, in some embodiments, if the clip includes patterns that are known not to be hotspots, the evaluation module 830 discards the clip.
- the evaluation module 830 then evaluates clips using the trained kernels to identify hotspot cores.
- Each of the trained kernels is configured to identify a particular hotspot topology.
- the evaluation module 830 uses some or all of the trained kernels to identify hotspot cores in the clips.
- the evaluation module 830 may filter out any redundancy in the identified hotspot cores Additionally, the evaluation module 830 may merge a plurality of hotspot cores into a merging region (i.e., the minimum bounding box covering all hotspot cores in a region) if the hotspot cores overlap.
- the evaluation module 830 may reframe a merging region containing a plurality of hotspot cores (e.g., more than 4). This is discussed above with reference to FIG. 3 .
- the evaluation module 830 may present the identified hotspots to the user and/or provide the identified hotspots to the client device 100 .
- FIG. 9 is a high-level block diagram illustrating an example computer 900 for implementing one or more of the entities shown in FIG. 8 .
- the computer 900 includes at least one processor 902 coupled to a chipset 904 .
- the chipset 904 includes a memory controller hub 920 and an input/output (I/O) controller hub 922 .
- a memory 906 and a graphics adapter 912 are coupled to the memory controller hub 920 , and a display 918 is coupled to the graphics adapter 912 .
- a storage device 908 , an input interface 914 , a speaker 926 , and network adapter 916 are coupled to the I/O controller hub 922 .
- Other embodiments of the computer 900 have different architectures.
- the storage device 908 is a non-transitory computer-readable storage medium such as a hard drive, compact disk read-only memory (CD-ROM), DVD, or a solid-state memory device.
- the memory 906 holds instructions and data used by the processor 902 .
- the input interface 914 is a touch-screen interface, a mouse, track ball, or other type of pointing device, a keyboard, a microphone, or some combination thereof, and is used to input data into the computer 900 .
- the graphics adapter 912 displays images and other information on the display 918 .
- the network adapter 916 couples the computer 900 to one or more computer networks.
- the computer 900 is adapted to execute computer program modules for providing functionality described herein.
- module refers to computer program logic used to provide the specified functionality.
- program modules are stored on the storage device 908 , loaded into the memory 906 , and executed by the processor 902 .
- the type of computer 900 used by the hotspot detection system 800 can vary depending upon the embodiment and the processing power required by the hotspot detection system 800 .
- the hotspot detection system 800 may include multiple computers 900 communicating with each other through a network such as in a server farm to provide the functionality described herein.
- Such computers 900 may lack some of the components described above, such as graphics adapters 912 and displays 918 .
- any reference to “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment.
- the appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
- Coupled and “connected” along with their derivatives. It should be understood that these terms are not intended as synonyms for each other. For example, some embodiments may be described using the term “connected” to indicate that two or more elements are in direct physical or electrical contact with each other. In another example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The embodiments are not limited in this context.
- the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion.
- a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.
- “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
Abstract
A hotspot detection system that classifies a set of hotspot training data into a plurality of hotspot clusters according to their topologies, where the hotspot clusters are associated with different hotspot topologies, and classifies a set of non-hotspot training data into a plurality of non-hotspot clusters according to their topologies, where the non-hotspot clusters are associated with different topologies. The system extracts topological and non-topological critical features from the hotspot clusters and centroids of the non-hotspot clusters. The system also creates a plurality of kernels configured to identify hotspots, where each kernel is constructed using the extracted critical features of the non-hotspot clusters and the extracted critical features from one of the hotspot clusters, and each kernel is configured to identify hotspot topologies different from hotspot topologies that the other kernels are configured to identify.
Description
- This application claims priority to Provisional Patent Application No. 61/828,915, filed May 30, 2013, which is incorporated herein by reference.
- 1. Field of Disclosure
- This disclosure relates to the field of hotspot identification generally, and specifically to improved hotspot identification using machine learning.
- 2. Description of the Related Art
- In advanced process technology, the ever-growing subwavelength lithography gap causes unwanted shape distortions of the printed layout patterns. Although design rule checking (DRC) and reticle/resolution enhancement techniques (RET), such as optical proximity correction (OPC) and subresolution assist features (SRAF), can alleviate the printability problem, many regions on a layout may still be susceptible to lithography process. These regions, so-called lithography hotspots, should be detected and corrected before mask synthesis. Hotspot detection, therefore, is an important task in physical verification.
- Hotspot detection has attracted increasing attention in recent years and may be classified into four major categories, (1) lithography simulation, (2) pattern matching, (3) machine learning, and (4) hybrid. The full lithography simulation provides the most accurate detection result. However, the simulation suffers from an extremely high computational complexity and long runtime. Pattern matching is the fastest hotspot detection approach and is good at detecting pre-characterized hotspot patterns, but has a limited flexibility to recognize previously unseen ones. In contrast, machine learning is good at detecting unknown hotspots but needs special treatments to suppress the false alarm. The hybrid approach unites both pattern matching and machine learning engines (even with a lithography simulator) to enhance accuracy and reduce false alarm but may consume longer runtimes.
- The above and other needs are met by a computer-implemented method, a non-transitory computer-readable storage medium storing executable code, and corresponding systems. In one approach, different machine learning kernels are trained to identify different types of hotspot topologies. Layout clips that may contain a hotspot are applied to the machine learning kernels, and the results of the kernels are combined to identify hotspots within the layout clips.
- One embodiment of a computer-implemented method for hotspot detection comprises defining a clip to represent a portion of an integrated circuit topology, and evaluating the clip using a plurality of kernels wherein the kernels identify different topologies that indicate a potential for a hotspot to occur.
- One embodiment of a computer-implemented method for identifying hotspots on a test layout, comprises classifying a set of hotspot training data into a plurality of hotspot clusters according to their topologies, where the hotspot clusters are associated with different hotspot topologies. A set of non-hotspot training data is classified into a plurality of non-hotspot clusters according to their topologies, where the non-hotspot clusters are associated with different topologies. Topological and non-topological critical features are extracted from the hotspot clusters and centroids of the non-hotspot clusters, and the topological critical features are geometry related features that characterize a cluster and the non-topological critical features are lithographic processes related features that characterize a cluster. A plurality of kernels configured to identify hotspots are created, where each kernel is constructed using the extracted critical features of the centroids of the non-hotspot clusters and the extracted critical features from one of the hotspot clusters, and each kernel is configured to identify hotspot topologies different from hotspot topologies that the other kernels are configured to identify.
- One embodiment of a non-transitory computer-readable storage medium storing executable computer program instructions for identifying hotspots on a test layout, comprises classifying a set of hotspot training data into a plurality of hotspot clusters according to their topologies, where the hotspot clusters are associated with different hotspot topologies. A set of non-hotspot training data is classified into a plurality of non-hotspot clusters according to their topologies, where the non-hotspot clusters are associated with different topologies. Topological and non-topological critical features are extracted from the hotspot clusters and centroids of the non-hotspot clusters, and the topological critical features are geometry related features that characterize a cluster and the non-topological critical features are lithographic processes related features that characterize a cluster. A plurality of kernels configured to identify hotspots are created, where each kernel is constructed using the extracted critical features of the centroids of the non-hotspot clusters and the extracted critical features from one of the hotspot clusters, and each kernel is configured to identify hotspot topologies different from hotspot topologies that the other kernels are configured to identify.
-
FIG. 1 is a layout clip that may contain a hotspot according to an embodiment. -
FIG. 2 is an example criteria for determining whether a reported (i.e. identified) hotspot is an actual hotspot according to an embodiment. -
FIG. 3 is a flowchart illustrating a training phase and evaluation phase of a hotspot detection system according to an embodiment. -
FIG. 4A illustrates four patterns A, B, C, and D according to an embodiment. -
FIG. 4B illustrates clusters {A, D}, {B}, and {C} according to an embodiment. -
FIG. 5A is a polygon that has been sliced into different regions according to an embodiment. -
FIG. 5B is the polygon ofFIG. 5A including the strings for each side according to an embodiment. -
FIG. 5C illustrates a pattern including composite strings according to an embodiment. -
FIG. 5D illustrates a pixilated layout clip according to an embodiment. -
FIG. 5E illustrates two clusters, {A, B} and {C}, generated by density-based classification according to an embodiment. -
FIG. 6A illustrates four example topological features according to an embodiment. -
FIG. 6B illustrates five example non-topological features according to an embodiment. -
FIG. 7A illustrates polygon dissection occurring during layout clip extraction according to an embodiment. -
FIG. 7B illustrates a layout clip including the polygon inFIG. 7A according to an embodiment. -
FIG. 8 is a high-level block diagram illustrating an embodiment of an environment for hotspot spot detection. -
FIG. 9 is a block diagram illustrating a detailed view of the components within a hotspot detection system according to an embodiment - The Figures (FIGS.) and the following description describe certain embodiments by way of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein. Reference will now be made in detail to several embodiments, examples of which are illustrated in the accompanying figures. It is noted that wherever practicable similar or like reference numbers may be used in the figures and may indicate similar or like functionality.
- As used herein, a “hotspot” is a layout pattern that is at risk of inducing a printability issue at the fabrication stage. As used herein, a “hit” is an actual hotspot that has been correctly identified as a hotspot. Accuracy is the ratio of the number of total hits over the number of all actual hotspots. Additionally, as used herein, an “extra” is a non-hotspot that is mistakenly identified as a hotspot. A false alarm is the ratio of the number of total extras over the number of all actual hotspots. In this embodiment, the false alarm represents the false positives (how many non-hotspots are reported as hotspots), and accuracy reflects the false negatives (how many hotspots are missed).
-
FIG. 1 is a layout clip that may contain a hotspot according to an embodiment. As shown inFIG. 1 , a hotspot or non-hotspot pattern in the training data set is a layout clip defined by a core and its ambit, where the core is the central part of this clip providing its significant characteristics, while the ambit is the peripheral part of this clip providing supplementary information. Additionally, the training data set, provided by foundry (or lithography simulation), may be highly imbalanced, i.e., the non-hotspot patterns greatly outnumber the hotspot patterns. -
FIG. 2 is an example criteria for determining whether a reported (i.e. identified) hotspot is an actual hotspot according to an embodiment. As shown inFIG. 2 , a reported hotspot is considered as a hit if the core of the reported hotspot overlaps with the core of an actual hotspot. In some embodiments, a hit occurs if a clip of the reported hotpot and a clip of the actual hotspot overlap a certain amount of area. Additionally, in some embodiments, a hit may occur if the clip of the reported hotspot and the clip of the actual hotspot overlap completely. - A hotspot detection system, as disclosed herein, exploits the strengths of machine learning for the identification of hotspots for a given layout. The hotspot detection system is a computing device that executes computer program modules which train the hotspot detection system to automatically identify whether part of a layout is a hotspot. A hotspot detection system might be, for example, a personal computer, a tablet computer, a laptop computer, etc. The structure of the hotspot detection system is discussed in detail below with respect to
FIGS. 8 and 9 . - As discussed below, the hotspot detection system uses multiple kernels to provide fuzziness thus identifying potential hotspots that are undefined in the training data set, without increasing false alarm. Additionally, the hotspot detection system balances the population between hotspot and non-hotspot samples, to achieve high accuracy and low false alarm. Additionally, a testing layout contains a tremendous number of sites that need to be evaluated to identify hotspots. Therefore, in some embodiments, in an evaluation phase, to avoid time-consuming full-layout scanning, the hotspot detection system extracts only possible layout clips based on the polygon density. In some embodiments, after evaluation, the hotspot detection system may filter the detected hotspots to reduce the possibility of false alarm without sacrificing accuracy.
-
FIG. 3 is a flowchart illustrating a training phase and evaluation phase of a hotspot detection system according to an embodiment. The training phase constructs a machine learning multi-kernel model. The evaluation phase verifies a testing layout using the constructed multi-kernel model. Other entities may perform some or all of the steps of the process in other embodiments. Likewise, embodiments may include different and/or additional steps, or perform the steps in different orders. - The hotspot detection system is provided with a set of hotspot training data (also referred to as hotspot training data) and a set of non-hotspot training data (also referred to as non-hotspot training data). The hotspot training data contains a plurality of different patterns that are known to produce hotspots. Likewise, the non-hotspot training data contains a plurality of patterns that are known not to produce hotspots.
- In one embodiment, the size of the hotspot training data is smaller than the size of the non-hotspot training data (i.e., the number of data items in the hotspot training data is less than the number of data items in the non-hotspot training data). A data item is a single pattern. Imbalanced population between hotspot and non-hotspot training data may degrade the accuracy and increase the false alarm rate, accordingly, the hotspot detection system may balance the population by upsampling or downsampling the hotspot and/or non-hotspot training data.
- In this embodiment, the hotspot detection system up samples the hotspot training data to an intermediate size. The intermediate size is the size of the data set, after upsampling, such that the upsampled hotspot training data and the non-hotspot training data are close or equal to in size. In one embodiment, the intermediate size is a size of a data set such that the ratio of the sizes of the upsampled hotspot training data set and the non-hotspot training data set is a value that may range from 1:1 to 1:40. For example, in some embodiments, the intermediate size is the size of a data set that is 1:1, i.e., the size of the hotspot training data set and the non-hotspot training data set are equal.
- To upsample hotspot training data and compensate the layout clip extraction error (discussed below), the hotspot detection system slightly shifts each hotspot training pattern upwards, downwards, leftwards, rightwards, rotating the data item (e.g., 90°), moving some edge in the data item or some combination thereof, to create several derivative data items before topological classification. A derivative data item is a data shifted data item.
- Additionally, the hotspot detection system downsamples the non-hotspot training data to the intermediate size. In some embodiments, to downsample non-hotspot training patterns without losing important non-hotspot information, the hotspot detection system classifies non-hotspot training data into clusters and selects the centroid of each non-hotspot cluster. After topological classification, the hotspot detection system classifies the non-hotspot patterns with the same topology into a single non-hotspot cluster. Thus, for each topology there is an associated non-hotspot cluster. Then, the hotspot detection system selects the centroid of the classified non-hotspot patterns associated with the cluster to represent the associated non-hotspot cluster. In some embodiments, the hotspot detection system discards the rest of the non-hotspot patterns within this cluster, because they have same or very similar data information as the centroid. A downsampled non-hotspot training data set is formed by all non-hotspot centroids. In alternate embodiments, the hotspot detection system may downsample (e.g., randomly select) the non-hotspot data before topological classification. However, this is not preferable as it may lose some non-hotspot training data.
- In alternative embodiments, the size of the hotspot training data may be larger than the size of the non-hotspot training data. In these embodiments, the hotspot detection system may adjust (i.e., upsample or downsample) the hotspot training data and non-hotspot training such that both data sets reach the intermediate size. Additionally, in some embodiments, the hotspot training data and the non-hotspot training data may be equal in size, so no adjustment is necessary.
- The hotspot detection system classifies the upsampled hotspot training data into ‘N’ hotspot clusters according to their topologies. Likewise, the hotspot detection system classifies the non-hotspot training data into ‘n’ clusters according to their topologies. Topological classification is discussed in detail below with reference to
FIGS. 4A-B and 5A-E. - The hotspot detection system extracts topological and non-topological critical features from each training pattern of each hotspot cluster and from each non-hotspot centroid. Specifically, the hotspot detection system extracts topological (geometry-related) and non-topological (lithography-process-related) critical features from the data items which comprise the hotspot clusters and the downsampled non-hotspot training data set. Critical feature extraction is discussed in detail below with reference to
FIGS. 6A-B . - The hotspot detection system constructs a specific kernel for each hotspot cluster using the extracted critical features of the hotspot cluster and the downsampled non-hotspot data set. In some embodiments, the kernels are constructed based on a support vector machine (SVM) model, an artificial neural network, some other machine learning model, or some combination thereof.
- Each kernel is created using a hotspot cluster and all of the non-hotspot centroids. In some embodiments, each kernel is created using a hotspot cluster and a portion of the non-hotspot clusters. With topological classification, each kernel can concentrate on the critical features specific to its corresponding cluster. At the evaluation phase, a layout clip is flagged as a hotspot if one kernel classifies it as a hotspot. Topological classification also facilitates hotspot and non-hotspot population balancing. Additionally, as discussed below, compared with a single huge kernel, multiple kernel learning achieves high accuracy. The hotspot detection system may use an iterative learning process to develop the kernels to a determined training level. For example, the hotspot detection system may train the kernels until some threshold is reached (e.g., 90% accuracy in hotspot predication). Iterative multiple SVM-kernel learning is discussed in detail below.
- Moreover, data shifting (that occurs in the upsampling process) generates several derivatives from the hotspot training data thus introducing adequate cluster varieties. The hotspot detection system may use data shifting to include one or more polygons that are originally located in the ambit into a core region, thus, capturing more layout information that may affect a hotspot. Additionally, in some embodiments, data shifting can also compensate possible layout clip extraction bias that is induced during clip extraction. Hence, the kernels have a flexibility to identify previously unseen patterns.
- Once the kernels have reached a sufficient training level, they may be used to evaluate test layouts (i.e., the evaluation phase). A test layout is a layout which the hotspot detection system evaluates using the multiple kernels to identify hotspots.
- The hotspot detection system divides a testing layout into one or more clips. In some embodiments, one or more of the clips have some portion which overlap with one or more adjacent clips. The hotspot detection system extracts one or more clips from the testing layout. In alternate embodiments, the hotspot detection system defines a clip for hotspot detection. In some instances defining a clip may include dividing a testing layout into one or more clip and extracting one or more clips from the testing layout. In some embodiments, the hotspot detection system may use some of the geometrical information extracted from the hotspot clusters and the non-hotspot clusters (e.g. the polygon density of core) to quickly identify whether the extracted layout clip is important or not. The clip extraction step reads in the testing layout and extract layout clips, then the hotspot detection system uses some geometrical information extracted from the hotspot clusters and the non-hotspot clusters to quickly abandon useless clips.
- The hotspot detection system then evaluates the extracted layout clips using the trained kernels to identify hotspots. Each of the kernels is configured to identify a particular hotspot topology. In some embodiments, each of the kernels processes all of the extracted clips to identify hotspots. Additionally, in some embodiments, some discarding of known non-hotspots in the extracted clips may occur before being passed to the kernels. The identified hotspots may then be presented to a user of the hotspot detection system. For example, the hotspot detection system may present one or more cores containing hotspots (i.e. hotspot cores) to the user.
- In some embodiments, the hotspot detection system may perform hotspot filtering to reduce possible redundancy in the identified hotspots. After evaluation by the kernels, the reported hotspot cores may strongly overlap in an area with high polygon density. The hotspot filtering reduces the redundancy. Moreover, the hotspot filtering can greatly reduce the false alarm without sacrificing the accuracy.
- In one embodiment, the hotspot detection system merges the identified cores including hotspots (i.e., hotspot cores) into several regions, and merges a hotspot clip into an existing merging region if its core overlaps with some hotspot core of the region. A merging region is the minimum bounding box covering all hotspot cores in this region.
- The hotspot detection system reframes a merging region containing more than four hotspot cores. The goal of reframing is to minimize the number of identified hotspots without missing any possible actual hotspots. Clip reframing ensures that the core of an arbitrary actual hotspot is overlapped by at least one reframed core. Additionally, the hotspot detection system may remove redundant clips located in the overlapping area of two merging regions. A hotspot core may be discarded under two conditions: (1) All polygons within this core are covered by other hotspot cores, and (2) each corner of this core overlaps with other hotspot cores inside some merging region.
- Some training patterns have similar shapes and some are quite different. Hence, to facilitate the subsequent machine learning kernel training, hotspot/non-hotspot patterns in the training data set are classified into clusters based on topology. After topology classification, the patterns within one cluster have very similar geometrical characteristics (critical features).
- In one embodiment, the hotspot detection system uses a two-level topological classification: string-based and density-based classification.
FIG. 4A illustrates four patterns A, B, C, and D according to an embodiment. String-based classification splits these patterns into two intermediate clusters {A, D} and {B, C} based on topology (e.g., B and C are both crosses). - In one embodiment, the hotspot detection system uses density-based classification on the string classified intermediate clusters to create either non-hotspot or hotspot clusters depending on the data set being processed. For example, density-based classification applied to clusters {A, D} and {B, C} is used to divide {B, C} into clusters {B} and {C}, based on their polygon distribution.
FIG. 4B illustrates clusters {A, D}, {B}, and {C} according to an embodiment. Topological classification makes each machine learning kernel concentrate on the critical features specific to its corresponding cluster as well as facilitates hotspot and non-hotspot population balancing. - In one embodiment, the hotspot detection system uses four directional strings to capture the topology of one pattern.
FIG. 5A is a polygon that has been sliced into different regions according to an embodiment. To generate a decimal string for the downward direction, the pattern is first vertically sliced along polygon edges, e.g., two slices are generated forFIG. 5A . For each slice, the boundary is labeled as “1”, a polygon block is labeled as “1”, and a space block is labeled as “0.” Thus, each slice corresponds to a binary sequence, and then this sequence is converted to a decimal number. The downward slicing ofFIG. 5A generates a string, <3, 10> (=<112, 10102>), recorded at the bottom side.FIG. 5B is the polygon ofFIG. 5A including the strings for each side according to an embodiment. Any two strings recorded at adjacent sides fully capture the topology of a pattern. - In one embodiment, the hotspot detection system verifies whether two patterns have the same topology using strings from two adjacent sides of one pattern with the corresponding adjacent sides on the pattern being compared. In one embodiment, the hotspot detection system generates the four directional strings for the two patterns. The hotspot detection system selects any two strings of adjacent sides of one pattern. The hotspot detection system generates two composite strings by concatenating the strings of the other pattern counterclockwise and clockwise. The string of the beginning side should be added at the end.
- Considering eight possible orientations, two patterns have the same topology if and only if any two strings at adjacent sides of one pattern exist in the counterclockwise or clockwise composite string of the other pattern. The eight possible orientations include combinations of four rotations (0°, 90°, 180°, and 270°) of the pattern and two minor images (horizontal and vertical) of the pattern.
- For example, in
FIG. 5B the hotspot detection system selects two strings at adjacent sides of the pattern, <5, 3, 5, 3, 10> for the left and bottom sides.FIG. 5C illustrates a pattern including composite strings according to an embodiment. A counterclockwise composite string: <6, 3, 6, 10, 3, 5, 3, 5, 3, 10, 6, 3, 6>, and clockwise composite string: <10, 3, 5, 3, 5, 3, 10, 6, 3, 6, 10, 3>. The string component <5, 3, 5, 3, 10> exists in the counterclockwise composite string. Hence, two patterns given inFIGS. 5B and 5C have the same topology. - After string-based classification, patterns within one cluster have the same topology. Even so, in some cases, two patterns with the same topology may still have very different geometrical characteristics. For example, one could be a hotspot, while the other is a non-hotspot under discrete process forbidden rules.
- In one embodiment, for a pattern pi, its layout clip is first pixilated, and the polygon density of each pixel dk is calculated.
FIG. 5D illustrates a pixilated layout clip according to an embodiment. The distance ρ(pi, pi) between two patterns pi and pj is defined by the summation of the pixel density difference over all pixels based on the same orientation: -
ρ(p i ,p j)=minτεD8 Σk |d k(p i)−d k(τ(p j))|, (1) - where τ is the orientation, and D8 represents the set of eight possible orientations.
- Based on the distance metric, the cluster radius used by density-based classification is defined as follows.
-
R=max(R 0,maxi,jρ(p i ,p j)/10), (2) - where R0 is the user-defined radius threshold. In one embodiment, for an investigated pattern, the hotspot detection system checks whether this pattern is covered by some existing cluster. For example, a pattern may be covered by a cluster if the distance between this pattern and the centroid (representative) of the cluster is less than or equal to the radius value. If so, the pattern is added into the covering cluster. Otherwise, this pattern becomes the centroid of a new cluster. This flow is repeated for all patterns. Additionally, in some embodiments, the hotspot detection system recalculates the centroid once a pattern is added to some cluster.
FIG. 5E illustrates two clusters, {A, B} and {C}, generated by density-based classification according to an embodiment. - The hotspot detection system extracts critical features from patterns. The critical features are features that characterize an associated pattern. Critical features may be topological or non-topological features. Topological features are related to the geometry of the pattern. Topological features may include, for example, horizontal and vertical distance between a pair of internally facing polygon edges, horizontal and vertical distance between a pair of externally facing polygon edges, diagonal distance of two convex corners, horizontal and vertical edge length of a polygon, or some other feature that is related to the geometry of the pattern. Non-topological features are related to a lithographic process that may be used to generate the pattern. Non-topological features may include, for example, a number of corners (convex plus concave), a number of touched points, a minimum distance between a pair of internally facing polygon edges, a minimum distance between a pair of externally facing polygon edges, a polygon density, or some other feature that is related to the lithographic process. In one embodiment, the hotspot detection system uses a transitive closure graph to extract the topological critical features. Critical feature extraction is further described in U.S. patent application Ser. No. 13/669,387, “Accurate Process-Hotspot Detection Using Critical Design Rule Extraction”, filed on Nov. 5, 2012, which is hereby incorporated by reference in its entirety.
-
FIG. 6A illustrates four example topological features according to an embodiment. In this embodiment, the four types of topological features extracted are: (1) horizontal and vertical distance between a pair of internally facing polygon edges; (2) horizontal and vertical distance between a pair of externally facing polygon edges; (3) diagonal distance of two convex corners; and (4) horizontal and vertical edge length of a polygon. Considering eight possible orientations, two sets of topological features may be generated to preserve the vertical and horizontal relationships among extracted features. -
FIG. 6B illustrates five example non-topological features according to an embodiment. In this embodiment, the hotspot detection system defines five types of non-topological features: (1) the number of corners (convex plus concave); (2) the number of touched points; (3) the minimum distance between a pair of internally facing polygon edges; (4) the minimum distance between a pair of externally facing polygon edges; and (5) the polygon density. - By topological classification, the number of critical features is identical for all patterns in a cluster. The equivalent feature number facilitates the subsequent SVM kernel training. For example, in an SVM training step, a kernel may be trained using a large amount of data. But, only with a fixed data feature size, a kernel can be trained. If two of the training data contain different feature sizes some method (e.g., add dummy features to the one with fewer features size or discard some features of the one with greater features size) should be used to make them equal. Thus, lowering the kernel training quality, because it is not known what features are really important.
- To provide the flexibility to identify unseen hotspots, the hotspot detection system leverages machine learning. As discussed above, in some embodiments, the hotspot detection system may use iterative multiple kernel learning to fully exploit the strengths of machine learning.
- In machine learning, SVM is a popular supervised learning model. A two-class SVM transforms the training data to a high dimensional space and calculates a hyperplane to separate the data into two classes with a maximum margin. If the SVM kernel function is a symmetric positive semidefinite function, then SVM guarantees a global optimum solution. SVM has showed superior performance in handling a small training data set, non-linear and high dimensional classification issues.
- In one embodiment, the hotspot detection system uses two-class soft-margin C-type SVM and uses the radial basis function to develop the kernels to detect hotspots and non-hotspots. Given training data xn, n=1 . . . N, with label tn (+1 or −1 for two-class SVM). The dual form of the quadratic programming formulation of C-type SVM is given as follows.
-
max f(a)=Σn=1 N a n−½Σn=1 NΣm=1 N a n a m t n t m k(x n ,x m) (3) -
subject to -
0≦a n ≦C,∀n=1 . . . N, (4) -
Σn=1 N a n t n=0, (5) -
k(x n ,x m)=e (−γ∥xn −xm ∥2 ), (6) -
a=(a 1 , . . . ,a N)T, (7) - where C controls the trade-off between the slack variable penalty and the margin, k(xn, xm) is the Gaussian radial basis kernel function, and an is the Lagrange multiplier. The Gaussian radial basis kernel function is symmetric positive semi-definite thus leading to an optimal classification. In this embodiment, an imbalanced population may destroy the soft margin and degrade the training quality.
- Appropriate values of C and γ may result in a good training quality of an SVM kernel. Therefore, as shown in
FIG. 3 , the hotspot detection system uses a self-training process to iteratively adapt C and γ parameters. The initial values of C and γ are 1000 and 0.01, respectively. C and γ are doubled if the stopping criterion is not satisfied. The stopping criterion of iterative learning is that the number of self-training iterations exceeds a user-defined bound or the hotspot/non-hotspot detection accuracy rate (with respect to the training data) exceeds a user-defined training accuracy, say 90%, or some other value. - A testing layout contains a tremendous number of sites that need to be evaluated. In one embodiment, to avoid time-consuming full-layout scanning, the hotspot detection system may extract only possible layout clips based on the polygon distribution. In other embodiments, the hotspot detection system may extract additional layout clips.
-
FIG. 7A illustrates polygon dissection occurring during layout clip extraction according to an embodiment. In this embodiment, each layout polygon is first horizontally sliced into rectangles. The rectangles are then cut into smaller pieces if their widths or heights are greater than the hotspot core side length (lc inFIG. 2 ). -
FIG. 7B illustrates a layout clip including the polygon inFIG. 7A according to an embodiment. As shown inFIG. 7B , a core and an ambit are set with respect to the bottom left corner of each rectangle. The hotspot detection system extracts the corresponding layout clip if the polygon distribution within this clip meets the user-specified requirements; otherwise, the clip is discarded. In some embodiments, the user specified requirements may specify a polygon density (total polygon area/clip area), a polygon count, distances between the clip boundary and the bounding box that covers all polygon rectangles in the clip, etc. For example, the polygon density may be at least or equal to 0.3, the polygon count may be greater than 5, and distances between the clip boundary and the bounding box that covers all polygon rectangles in the clip may be shorter than 35% of the hotspot ambit length. The polygon distribution may be a polygon density, a polygon count, a distances between the clip boundary and the bounding box that covers all polygon rectangles in the clip (indicated by four arrows inFIG. 7B ), etc. The user-specified requirements are positively correlated to the information of hotspot training data. It can be seen that if the polygon distribution requirements are met, each polygon must be included by at least one layout clip. Moreover, the possible misalignment between an extracted clip and an actual hotspot can be compensated by data shifting that occurs during population balancing. - In one embodiment, the hotspot detection system may include software modules implemented in the C++ programming language with a GDSII library Anuvad and the SVM library LIBSVM. In this embodiment, the hotspot detection system includes two Intel Xeon 2.3 GHz CPUs and with 64 GB memory.
- Experiments were conducted on six 32 nm and 28 nm industrial designs released by J. A. Torres, ICCAD-2012 CAD contest in fuzzy pattern matching for physical verification and benchmark suite, In Proc. ICCAD, pp. 349-350, 2012, http://cad_contest.cs.nctu.edu.tw/CAD-contest-at-ICCAD2012/problems/p3/p3.html, as listed in Table 1, with a highly imbalanced population between hotspot and non-hotspot training patterns. #hs means number of hotspots, while #nhs means number of non-hotspots. The core size is 1.2×1.2 um2, while the clip size is 4.8×4.8 um2 for this benchmark suite. Three sets of experiments were performed to compare the overall performance of the hotspot detection system with the 2012 CAD contest winners, demonstrate the effectiveness of a multiple SVM kernel training and hotspot filtering, and show rapid training convergence of the hotspot detection system.
-
TABLE 1 1012 CAD Contest at ICCAD Benchmark Statistics Training data Testing Layout Name #hs #nhs Name #hs area (um2) process MX_benchmark1_clip 99 340 Array_Benchmark1 226 12516 32 nm MX_benchmark2_clip 176 5285 Array_Benchmark2 499 106954 28 nm MX_benchmark3_clip 923 4643 Array_Benchmark3 1847 122565 28 nm MX_benchmark4_clip 98 4452 Array_Benchmark4 192 82010 28 nm MX_benchmark5_clip 26 2716 Array_Benchmark5 42 49583 28 nm MX_blind_partial 55 224975 32 nm - In the first set of experiments, the hotspot detection system is compared with the 2012 CAD contest winners at ICCAD. Table 2 summarizes the experimental results. Overall, the hotspot detection system outperforms the first place winner on accuracy, false alarm, and the hit/extra rate. For the Array_benchmark3, compared with the third place winner, the hotspot detection system has lower accuracy but with a significantly lower false alarm.
-
TABLE 2 Comparison with 2012 CAD Contest Winners Testing Layout (Training Data) Methods #hit #extra accuracy hit/ extra Runtime Array_Benchmark1 1st place 212 1826 93.81% 1.16E−01 0 m 05.1 s (MX_benchmark1_clip) 2nd place 98 188 43.36% 5.21E−01 1 m 50.2 s 3rd place 157 728 69.47% 2.16E−01 0 m 06.7 s Hotspot 214 1493 94.69% 1.43E−01 0 m 38.1 s Det. Sys. Array_Benchmark2 1st place 489 20383 98.00% 2.40E−02 8 m 11.9 s (MX_benchmark2_clip) 2nd place 108 548 21.64% 1.97E−01 23 m 40.8 s 3rd place 337 5878 67.54% 5.73E−02 6 m 10.2 s Hotspot 490 11834 98.20% 4.14E−02 3 m 54.4 s Det. Sys. Array_Benchmark3 1st place 1696 20764 91.82% 8.17E−02 18 m 44.00 s (MX_benchmark3_clip) 2nd place 1491 9579 80.73% 1.56E−01 118 m 56.8 s 3rd place 1840 71328 99.62% 2.58E−02 7 m 58.1 s Hotspot 1697 13850 91.88% 1.23E−01 14 m 57.7 s Det. Sys. Array_Benchmark4 1st place 161 3726 83.85% 4.32E−02 1 m 15.9 s (MX_benchmark4_clip) 2nd place 124 956 64.58% 1.30E−01 21 m 57.9 s 3rd place 152 13582 79.17% 1.14E−02 1 m 42.9 s Hotspot 165 3664 85.94% 4.50E−02 5 m 56.3 s Det. Sys. Array_Benchmark5 1st place 39 2014 92.86% 1.94E−02 0 m 26.6 s (MX_benchmark5_clip) 2nd place 26 31 61.90% 8.39E−01 5 m 25.6 s 3rd place 20 245 47.62% 8.16E−02 0 m 40.0 s Hotspot 39 1205 92.86% 3.24E−02 0 m 20.0 s Det. Sys. - In the second set of experiments, as listed in Table 3, the effectiveness of the hotspot detection system is demonstrated. ‘Single SVM’ means the baseline SVM which uses one single huge SVM kernel (i.e., without topological classification and hotspot filtering); ‘ours_wo_filtering’ means the hotspot detection system using multiple SVM kernel training without hotspot filtering (i.e., with topological classification but without hotspot filtering); ‘ours’ means the hotspot detection system including hotspot filtering. In the experiments, the following parameters are used to demonstrate the flow of the hotspot detection system: (1) the respective initial values of C and γ of the hotspot detection system's SVM kernel are 1000 and 0.01; (2) the stopping criterion of self-training is 90% accuracy; (3) data shifting is 120 nm (=lc/10); (4) the maximum distance between the clip boundary and the bounding box of clip extraction is 1440 nm; (5) the minimum overlapping of clip merging is 20%; and (6) the separating distance of core reframing is 1150 nm. First of all, the hotspot detection system's critical features are effective. For example, a single SVM achieves over 78% accuracy for Array_benchmark3 and Array_benchmark5. Secondly, the hotspot detection system topological classification and population balancing work well, and thus the hotspot detection system's multiple SVM kernel learning has adequate fuzziness and delivers very high accuracy, 85.9˜98.2%. Thirdly, the hotspot detection system's hotspot filtering greatly reduces the false alarm for all cases without sacrificing accuracy.
-
TABLE 3 Detailed Comparison of Hotspot Detection Features Testing Layout (Training Data) Methods #hit #extra accuracy Runtime Array_Benchmark1 1st place 212 1826 93.81% 0 m 05.1 s (MX_benchmark1_clip) Single SVM 164 1126 72.57% 0 m 02.7 s Hotspot Det. Sys. 214 2729 94.69% 0 m 37.0 s w/o filtering Hotspot Det. Sys. 214 1493 94.69% 0 m 38.1 s Array_Benchmark2 1st place 489 20383 98.00% 8 m 11.9 s (MX_benchmark2_clip) Single SVM 288 2828 57.72% 3 m 42.9 s Hotspot Det. Sys. 490 22775 98.20% 3 m 22.0 s w/o filtering Hotspot Det. Sys. 490 11834 98.20% 3 m 54.4 s Array_Benchmark3 1st place 1696 20764 91.82% 18 m 44.0 s (MX_benchmark3_clip) Single SVM 1600 31811 86.63% 7 m 42.8 s Hotspot Det. Sys. 1697 51067 91.88% 13 m 34.2 s w/o filtering Hotspot Det. Sys. 1697 13850 91.88% 14 m 57.7 s Array_Benchmark4 1st place 161 3726 83.85% 1 m 15.9 s (MX_benchmark4_clip) Single SVM 119 1388 61.98% 0 m 26.7 s Hotspot Det. Sys. 165 5936 85.94% 5 m 52.4 s w/o filtering Hotspot Det. Sys. 165 3664 85.94% 5 m 56.3 s Array_Benchmark5 1st place 39 2014 92.86% 0 m 26.6 s (MX_benchmark5_clip) Single SVM 33 1227 78.57% 0 m 13.0 s Hotspot Det. Sys. 39 2136 92.86% 0 m 18.9 s w/o filtering Hotspot Det. Sys. 39 1205 92.86% 0 m 20.0 s MX_blind partial 1st place 51 66818 92.73% 2 m 31.7 s (MX_benchmark1_clip) Single SVM 38 31148 69.09% 1 m 18.1 s Hotspot Det. Sys. 51 89254 92.73% 2 m 59.7 s w/o filtering Hotspot Det. Sys. 51 55080 92.73% 5 m 04.6 s - In the third set of experiments, the impact of training data on accuracy is shown in Table 4. For this table, ‘data’ refers the ratio of the used training pattern count over the whole training pattern count. Table 4 indicates that using different training data may achieve higher accuracy and lower false alarm, e.g., Array_benchmark2 and MX_blind_partial. Secondly, there is a rapid convergence of training quality for the hotspot detection system. Additionally, the hotspot detection system may use a small amount of training data to achieve high accuracy, especially for Array_benchmark3 and Array_benchmark5, thus shortening the runtime.
-
TABLE 4 Accuracy and Training Data Testing Layout (Training Data) Methods Data #hit #extra accuracy Runtime Array_Benchmark1 1st place 100.0% 212 1826 93.81% 0 m 05.1 s (MX_benchmark1_clip) Hotspot 75.0% 214 1476 94.69% 0 m 54.1 s Det. Sys. Array_Benchmark2 1st place 100.0% 489 20383 98.00% 8 m 11.9 s (MX_benchmark2_clip) Hotspot 0.6% 494 18.256 99.00% 4 m 16.5 s Det. Sys. Array_Benchmark3 1st place 100.0% 1696 20764 91.82% 18 m 44.0 s (MX_benchmark3_clip) Hotspot 1.0% 1712 16565 92.69% 6 m 09.0 s Det. Sys. Array_Benchmark4 1st place 100.0% 161 3726 83.85% 1 m 15.9 s (MX_benchmark4_clip) Hotspot 97.0% 164 2946 85.42% 1 m 15.2 s Det. Sys. Array_Benchmark5 1st place 100.0% 39 2014 92.86% 0 m 26.6 s (MX_benchmark5_clip) Hotspot 95.0% 40 1320 95.24% 0 m 19.3 s Det. Sys. MX_blind partial 1st place 100.0% 50 49223 90.91% 15 m 04.9 s (MX_benchmark1_clip) Hotspot 100.0% 52 43810 94.55% 15 m 05.8 s Det. Sys. -
FIG. 8 is a high-level block diagram illustrating an embodiment of an environment for hotspot spot detection. The environment includes a client device 100 connected by anetwork 802 to ahotspot detection system 800. Here only one client device 100 and hotspot detection system are illustrated, but there may be multiple instances of each of these entities. For example, there may be hundreds of user devices 100 in communication with multiplehotspot detection systems 800. - The
network 802 provides a communication infrastructure between the user device 100 and thehotspot detection system 800. Thenetwork 802 is typically the Internet, but may be any network, including but not limited to a Local Area Network (LAN), a Metropolitan Area Network (MAN), a Wide Area Network (WAN), a mobile wired or wireless network, a private network, a virtual private network, or some combination thereof. - The
client device 850 is a computing device that executes computer program modules that allow a user to upload data to thehotspot detection system 800. For example, in some embodiments, theclient device 850 uploads a layout for an integrated circuit to thehotspot detection system 800. Additionally, the modules allow a user to receive identified hotspots or some other information from thehotspot detection system 800. Theclient device 850 might be, for example, a personal computer, a tablet computer, a laptop computer, or other type of network-capable device. - The
hotspot detection system 800 processes layouts to identify one or more hotspots. In some embodiments, a user uploads a layout directly from a user, processes the layout to identify hotspots, and presents the identified hotspots to the user. In alternate embodiments, thehotspot detection system 800 receives layouts from theclient device 850, processes the layout to identify hotspots, and provides the identified hotspots to theclient device 850. - The
hotspot detection system 800 is comprised of modules including adetection database 805, ascaling module 810, aclassification module 815, afeature extraction module 820, atraining module 825 and anevaluation module 830. Some embodiments of thehotspot detection system 800 have different modules than those described here. Similarly, the functions can be distributed among the modules in a different manner than is described here. In some embodiments, thehotspot detection system 800 is configured to perform some or all of the functions described above with reference toFIG. 3 . - The
detection database 805 is a database including hotspot training data, non-hotspot training data, one or more testing layouts, one or more clips, or some combination thereof. As discussed with reference toFIG. 3 above, the hotspot training data contains a plurality of different patterns that are known to produce hotspots. Likewise, the non-hotspot training data contains a plurality of patterns that are known not to produce hotspots. - The
scaling module 810 scales non-hotspot training data, hotspot training data, or some combination thereof. Thescaling module 810 may retrieve non-hotspot training data and/or hotspot training data from thedetection database 805 and/or some other entity (e.g., system administrator). In some embodiments, thescaling module 810 is configured to upsample and/or downsample the hotspot training data, the non-hotspot training data, or some combination thereof. For example, thescaling module 810 may upsample the hotspot training data to an intermediate size (e.g., such that the hotspot training data set and the non-hotspot training data set are equal size). In some embodiments, thescaling module 810 may upsample the hotspot training data and/or the non-hotspot training data by slightly shifting (e.g., upwards, downwards, leftwards, rightwards, rotating the data item, moving some edge in the data item, or some combination thereof) each data item, and storing the newly shifted data item as a separate data item in the upsampled hotspot training data and/or non-hotspot training data. - In some embodiments, the
scaling module 810 is configured to downsample the hotspot training data, the non-hotspot training data, or some combination thereof. For example, thescaling module 810 may filter out duplicative patterns in the training data. Thescaling module 810 is configured to provide the scaled training data to theclassification module 815. Scaled training data may be the hotspot training data and/or the non-hotspot training data, that has been upsampled, downsampled, not modified (e.g., no upsampling/downsampling of the data), or some combination thereof. - The
classification module 815 classifies training data according to its topologies. Theclassification module 815 receives the hotspot training data, non-hotspot training data, or some combination thereof from thescaling module 810. The hotspot training data and/or non-hotspot training may or may not have been scaled (e.g., upsampled and/or downsampled). Theclassification module 815 classifies hotspot training data into ‘N’ hotspot clusters according to their topologies. Likewise, theclassification module 815 classifies the non-hotspot training data into ‘n’ non-hotspot clusters according to their topologies. Theclassification module 815 groups non-hotspot patterns with the same topology into a single non-hotspot cluster. Thus, for each topology, there is an associated non-hotspot cluster. Theclassification module 815 selects the centroid of the classified non-hotspot patterns associated with the cluster to represent the associated non-hotspot cluster. In some embodiments, theclassification module 815 discards (e.g., using the scaling module 810) the rest of the non-hotspot patterns within this cluster, because they have same or very similar data information as the centroid. In alternate embodiments, theclassification module 810 may downsample (e.g., randomly select) the non-hotspot data before topological classification. In some embodiments, theclassification module 815 performs some or all of the functions discussed in detail above in the section titled “Topological Classification” to classify the hotspot training data, non-hotspot training data, or some combination thereof. Theclassification module 815 provides the hotspot clusters and non-hotspot clusters to thefeature extraction module 820. - The
feature extraction module 820 extracts critical features from hotspot clusters, non-hotspot clusters, or some combination thereof. The critical features may be topological and/or non-topological. Thefeature extraction module 820 performs some or all of the functions discussed in detail above in the section titled “Critical Feature Extraction” to extract critical features from the hotspot training data, non-hotspot training data, or some combination thereof. Thefeature extraction module 820 provides the critical features to thetraining module 825. - The
training module 825 creates a plurality of kernels configured to identify hotspots using the critical features received from thefeature extraction module 820. Thetraining module 825 creates a kernel for each hotspot cluster using the extracted critical features of the hotspot cluster and the critical features extracted from some, or all of, the non-hotspot training data. The kernels may be constructed based on a SVM model, an artificial neural network, some other machine learning model, or some combination thereof. - The
training module 825 may train kernels to a determined training level. Thetraining module 825 may use an iterative training process that trains kernels until a threshold value is reached. The threshold value may be set such that the training completes when one or more parameters are achieved. A parameter may be, e.g., a hotspot detection accuracy rate, time take, number of training cycles, etc. Thetraining module 825 performs some or all of the functions discussed in detail above in the section titled “Iterative Multiple SVM-Kernel Learning” to train the kernels for hotspot detection. - The
evaluation module 830 generates one or more clips from a testing layout. The testing layout may be received from a user of thehotspot detection system 800, received from one or more client devices 100, or some combination thereof. Theevaluation module 830 may retrieve the testing layout from thedetection database 805. Theevaluation module 830 performs some or all of the functions discussed in detail above in the section titled “Layout Clip Extraction” to extract clips from a testing layout. In some embodiments, theevaluation module 830 uses some, or all of, the geometrical information extracted from the hotspot clusters and/or the non-hotspot clusters to identify whether an extracted layout clip is likely to contain a hotspot. Additionally, in some embodiments, if the clip includes patterns that are known not to be hotspots, theevaluation module 830 discards the clip. - The
evaluation module 830 then evaluates clips using the trained kernels to identify hotspot cores. Each of the trained kernels is configured to identify a particular hotspot topology. Theevaluation module 830 uses some or all of the trained kernels to identify hotspot cores in the clips. In some embodiments, theevaluation module 830 may filter out any redundancy in the identified hotspot cores Additionally, theevaluation module 830 may merge a plurality of hotspot cores into a merging region (i.e., the minimum bounding box covering all hotspot cores in a region) if the hotspot cores overlap. In some embodiments, theevaluation module 830 may reframe a merging region containing a plurality of hotspot cores (e.g., more than 4). This is discussed above with reference toFIG. 3 . Theevaluation module 830 may present the identified hotspots to the user and/or provide the identified hotspots to the client device 100. - Turning now to a discussion of the implementation of the entities discussed above,
FIG. 9 is a high-level block diagram illustrating anexample computer 900 for implementing one or more of the entities shown inFIG. 8 . Thecomputer 900 includes at least oneprocessor 902 coupled to achipset 904. Thechipset 904 includes amemory controller hub 920 and an input/output (I/O)controller hub 922. Amemory 906 and agraphics adapter 912 are coupled to thememory controller hub 920, and adisplay 918 is coupled to thegraphics adapter 912. Astorage device 908, aninput interface 914, aspeaker 926, andnetwork adapter 916 are coupled to the I/O controller hub 922. Other embodiments of thecomputer 900 have different architectures. - The
storage device 908 is a non-transitory computer-readable storage medium such as a hard drive, compact disk read-only memory (CD-ROM), DVD, or a solid-state memory device. Thememory 906 holds instructions and data used by theprocessor 902. Theinput interface 914 is a touch-screen interface, a mouse, track ball, or other type of pointing device, a keyboard, a microphone, or some combination thereof, and is used to input data into thecomputer 900. Thegraphics adapter 912 displays images and other information on thedisplay 918. Thenetwork adapter 916 couples thecomputer 900 to one or more computer networks. - The
computer 900 is adapted to execute computer program modules for providing functionality described herein. As used herein, the term “module” refers to computer program logic used to provide the specified functionality. Thus, a module can be implemented in hardware, firmware, and/or software. In one embodiment, program modules are stored on thestorage device 908, loaded into thememory 906, and executed by theprocessor 902. The type ofcomputer 900 used by thehotspot detection system 800 can vary depending upon the embodiment and the processing power required by thehotspot detection system 800. For example, thehotspot detection system 800 may includemultiple computers 900 communicating with each other through a network such as in a server farm to provide the functionality described herein.Such computers 900 may lack some of the components described above, such asgraphics adapters 912 and displays 918. - Some portions of the above description describe the embodiments in terms of algorithmic processes or operations. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs comprising instructions for execution by a processor or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of functional operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combinations thereof. In one embodiment, a software module is implemented with a computer program product comprising a non-transitory computer-readable medium containing computer program code, which can be executed by a computer processor for performing any or all of the steps, operations, or processes described.
- As used herein any reference to “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
- Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. It should be understood that these terms are not intended as synonyms for each other. For example, some embodiments may be described using the term “connected” to indicate that two or more elements are in direct physical or electrical contact with each other. In another example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The embodiments are not limited in this context.
- As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
- In addition, use of the “a” or “an” are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the disclosure. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.
- Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs for a system and a process for identifying hotspots. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the described subject matter is not limited to the precise construction and components disclosed herein and that various modifications, changes and variations which will be apparent to those skilled in the art may be made in the arrangement, operation and details of the method and apparatus disclosed herein.
Claims (20)
1. A computer implemented method for hotspot detection using a hotspot detection system, comprising:
defining a clip to represent a portion of an integrated circuit topology; and
evaluating the clip using a plurality of kernels wherein the kernels identify different topologies that indicate a potential for a hotspot to occur.
2. The method of claim 1 , wherein each of the kernels processes all of the extracted clips to identify hotspots.
3. The method of claim 1 further comprising performing hotspot filtering.
4. The method of claim 1 further comprising merging identified hotspot cores into several regions wherein a merging region is the minimum bounding box covering all hotspot cores in this region.
5. The method of claim 1 further comprising:
receiving the layout from a client device connected to the hotspot detection system; and
providing the identified hotspots to the client device.
6. A computer implemented method comprising:
classifying a set of hotspot training data into a plurality of hotspot clusters according to their topologies, where the hotspot clusters are associated with different hotspot topologies;
classifying a set of non-hotspot training data into a plurality of non-hotspot clusters according to their topologies, where the non-hotspot clusters are associated with different topologies;
extracting topological and non-topological critical features from the hotspot clusters and centroids of the non-hotspot clusters, wherein the topological critical features are geometry related features that characterize a cluster and the non-topological critical features are lithographic processes related features that characterize a cluster; and
creating a plurality of kernels configured to identify hotspots, where each kernel is constructed using extracted critical features of the centroids of the non-hotspot clusters and extracted critical features from one of the hotspot clusters, and each kernel is configured to identify hotspot topologies different from hotspot topologies that the other kernels are configured to identify.
7. The method of claim 6 , further comprising:
upsampling the hotspot training data to a first data size,
wherein classifying a set of non-hotspot training data into a plurality of non-hotspot clusters according to their topologies comprises downsampling the non-hotspot training data to a second data size.
8. The method of claim 6 , wherein:
the hotspot training data comprises a plurality of hotspot data items, and
upsampling the hotspot training data comprises:
data shifting each hotspot data item to create one or more associated derivative data items, wherein each hotspot data item and its associated one or more derivative data items form a different hotspot cluster.
9. The method of claim 8 , wherein data shifting comprises:
shifting a hotspot data item upwards, downwards, leftwards, rightwards, rotating the hotspot data item, moving some edge in the data item, or some combination thereof.
10. The method of claim 6 , wherein the plurality of kernels use a support vector machine learning model.
11. The method of claim 6 , further comprising:
iteratively training the plurality of kernels until a stopping criterion is satisfied, the stopping criterion being a hotspot detection accuracy rate.
12. The method of claim 6 , wherein classifying a set of hotspot training data into a plurality of hotspot clusters according to their topologies comprises:
clustering the hotspot training data using string-based classifications into a plurality of intermediate hotspot clusters; and
creating one or more hotspot clusters from each intermediate hotspot cluster using density-based classification.
13. The method of claim 6 , wherein classifying a set of non-hotspot training data into a plurality of non-hotspot clusters according to their topologies comprises:
clustering the non-hotspot training data using string-based classifications into a plurality of intermediate non-hotspot clusters; and
creating one or more non-hotspot clusters from each intermediate non-hotspot cluster using density-based classification.
14. The method of claim 6 , further comprising:
receiving a portion of a testing layout; and
evaluating, by the plurality of kernels, the portion to identify one or more hotspots, where each kernel evaluates the portion to identify whether a hotspot the kernel is configured to identify is present in the portion.
15. The method of claim 6 , further comprising:
filtering the identified one or more hotspots to remove redundancy in the identified hotspots.
16. A non-transitory computer readable medium having embedded thereon a program, the program being executable by a processor for performing a method comprising:
classifying a set of hotspot training data into a plurality of hotspot clusters according to their topologies, where the hotspot clusters are associated with different hotspot topologies;
classifying a set of non-hotspot training data into a plurality of non-hotspot clusters according to their topologies, where the non-hotspot clusters are associated with different topologies;
extracting topological and non-topological critical features from the hotspot clusters and centroids of the non-hotspot clusters, wherein the topological critical features are geometry related features that characterize a cluster and the non-topological critical features are lithographic processes related features that characterize a cluster; and
creating a plurality of kernels configured to identify hotspots, where each kernel is constructed using the extracted critical features of the centroids of the non-hotspot clusters and the extracted critical features from one of the hotspot clusters, and each kernel is configured to identify hotspot topologies different from hotspot topologies that the other kernels are configured to identify.
17. The computer readable medium of claim 16 , further comprising:
upsampling the hotspot training data to a first data size, and
wherein classifying a set of non-hotspot training data into a plurality of non-hotspot clusters according to their topologies comprises downsampling the non-hotspot training data to a second data size.
18. The computer readable medium of claim 16 , wherein:
the hotspot training data comprises a plurality of hotspot data items, and
upsampling the hotspot training data comprises:
data shifting each hotspot data item to create one or more associated derivative data items, wherein each hotspot data item and its associated one or more derivative data items form a different hotspot cluster.
19. The computer readable medium of claim 18 , wherein data shifting comprises:
shifting a hotspot data item upwards, downwards, leftwards, rightwards, rotating the hotspot data item, moving some edge in the data item, or some combination thereof.
20. The computer readable medium of claim 16 , further comprising:
iteratively training the plurality of kernels until a stopping criterion is satisfied, the stopping criterion being a hotspot detection accuracy rate.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/287,921 US20140358830A1 (en) | 2013-05-30 | 2014-05-27 | Lithographic hotspot detection using multiple machine learning kernels |
US16/432,514 US11403564B2 (en) | 2013-05-30 | 2019-06-05 | Lithographic hotspot detection using multiple machine learning kernels |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361828915P | 2013-05-30 | 2013-05-30 | |
US14/287,921 US20140358830A1 (en) | 2013-05-30 | 2014-05-27 | Lithographic hotspot detection using multiple machine learning kernels |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/432,514 Continuation US11403564B2 (en) | 2013-05-30 | 2019-06-05 | Lithographic hotspot detection using multiple machine learning kernels |
Publications (1)
Publication Number | Publication Date |
---|---|
US20140358830A1 true US20140358830A1 (en) | 2014-12-04 |
Family
ID=51986293
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/287,921 Abandoned US20140358830A1 (en) | 2013-05-30 | 2014-05-27 | Lithographic hotspot detection using multiple machine learning kernels |
US16/432,514 Active 2036-03-23 US11403564B2 (en) | 2013-05-30 | 2019-06-05 | Lithographic hotspot detection using multiple machine learning kernels |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/432,514 Active 2036-03-23 US11403564B2 (en) | 2013-05-30 | 2019-06-05 | Lithographic hotspot detection using multiple machine learning kernels |
Country Status (3)
Country | Link |
---|---|
US (2) | US20140358830A1 (en) |
CN (2) | CN104217224B8 (en) |
TW (1) | TWI554824B (en) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140325290A1 (en) * | 2013-04-30 | 2014-10-30 | Hewlett-Packard Development Company, L.P. | Hotspot identification |
US20150112649A1 (en) * | 2013-10-18 | 2015-04-23 | International Business Machines Corporation | Clustering Lithographic Hotspots Based on Frequency Domain Encoding |
US20150213374A1 (en) * | 2014-01-24 | 2015-07-30 | International Business Machines Corporation | Detecting hotspots using machine learning on diffraction patterns |
US9500945B1 (en) * | 2015-06-09 | 2016-11-22 | Globalfoundries Singapore Pte. Ltd. | Pattern classification based proximity corrections for reticle fabrication |
WO2017176356A3 (en) * | 2016-02-11 | 2018-02-15 | William Marsh Rice University | Partitioned machine learning architecture |
TWI647528B (en) * | 2016-07-12 | 2019-01-11 | 荷蘭商Asml荷蘭公司 | Method and system for performance metrics of computational analysis of visual design layouts |
WO2019132901A1 (en) * | 2017-12-27 | 2019-07-04 | Intel Corporation | Generating a machine learning model to place srafs |
US10409165B2 (en) * | 2014-12-15 | 2019-09-10 | Asml Netherlands B.V. | Optimization based on machine learning |
US10539881B1 (en) | 2018-09-24 | 2020-01-21 | International Business Machines Corporation | Generation of hotspot-containing physical design layout patterns |
US10546246B2 (en) | 2015-09-18 | 2020-01-28 | International Business Machines Corporation | Enhanced kernel representation for processing multimodal data |
US10621302B2 (en) * | 2018-06-27 | 2020-04-14 | International Business Machines Corporation | Classification and localization of hotspots in integrated physical design layouts |
US20200133115A1 (en) * | 2018-10-30 | 2020-04-30 | Taiwan Semiconductor Manufacturing Co., Ltd. | Photo mask data correction method |
US10762618B1 (en) * | 2019-02-14 | 2020-09-01 | United Microelectronics Corp. | Mask weak pattern recognition apparatus and mask weak pattern recognition method |
US10831976B1 (en) | 2019-05-30 | 2020-11-10 | International Business Machines Corporation | Predicting local layout effects in circuit design patterns |
KR20200139840A (en) * | 2016-05-12 | 2020-12-14 | 에이에스엠엘 네델란즈 비.브이. | Identification of hot spots or defects by machine learning |
US11194949B1 (en) * | 2017-02-22 | 2021-12-07 | Synopsys, Inc. | Predictor-guided cell spreader to improve routability for designs at advanced process nodes |
AT524013A2 (en) * | 2019-02-25 | 2022-01-15 | D2S Inc | Methods and systems for classifying features in electronic designs |
US11301748B2 (en) * | 2018-11-13 | 2022-04-12 | International Business Machines Corporation | Automatic feature extraction from aerial images for test pattern sampling and pattern coverage inspection for lithography |
US11823423B2 (en) | 2019-02-25 | 2023-11-21 | Center For Deep Learning In Electronics Manufacturing, Inc. | Methods and systems for compressing shape data for electronic designs |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017108432A1 (en) | 2015-12-22 | 2017-06-29 | Asml Netherlands B.V. | Apparatus and method for process-window characterization |
EP3392712A1 (en) * | 2017-04-21 | 2018-10-24 | IMEC vzw | A method for analyzing design of an integrated circuit |
KR102550350B1 (en) * | 2017-09-08 | 2023-07-04 | 에이에스엠엘 네델란즈 비.브이. | Training methods for machine learning assisted optical proximity error correction |
US11022966B1 (en) * | 2017-12-15 | 2021-06-01 | Synopsys, Inc. | Method of modeling e-beam photomask manufacturing process using image-based artificial neural networks |
CN108053397B (en) * | 2017-12-19 | 2022-04-26 | 上海集成电路研发中心有限公司 | Method for detecting photoetching weak point by adopting support vector machine |
TWI738169B (en) * | 2019-01-29 | 2021-09-01 | 荷蘭商Asml荷蘭公司 | Method for determining a training pattern for a layout patterning process and related computer program product |
CN113454532A (en) * | 2019-02-21 | 2021-09-28 | Asml荷兰有限公司 | Method of training a machine learning model to determine optical proximity correction of a mask |
CN115885216A (en) * | 2020-08-19 | 2023-03-31 | Asml荷兰有限公司 | System, product, and method for image-based pattern selection |
CN113674235B (en) * | 2021-08-15 | 2023-10-10 | 上海立芯软件科技有限公司 | Low-cost photoetching hot spot detection method based on active entropy sampling and model calibration |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6246472B1 (en) * | 1997-07-04 | 2001-06-12 | Hitachi, Ltd. | Pattern inspecting system and pattern inspecting method |
US20030109952A1 (en) * | 2001-12-11 | 2003-06-12 | Hitachi, Ltd. | Method and apparatus for inspecting defects in a semiconductor wafer |
US20050256669A1 (en) * | 2004-04-30 | 2005-11-17 | Tadashi Mitsui | Measurement system and method and computer program for processing measurement data |
US20060111849A1 (en) * | 2002-08-02 | 2006-05-25 | Schadt Eric E | Computer systems and methods that use clinical and expression quantitative trait loci to associate genes with traits |
US20070185656A1 (en) * | 2003-05-30 | 2007-08-09 | Rosetta Inpharmatics Llc | Computer systems and methods for identifying surrogate markers |
US20070245281A1 (en) * | 2006-04-14 | 2007-10-18 | Riepe Michael A | Placement-Driven Physical-Hierarchy Generation |
US20090324107A1 (en) * | 2008-06-25 | 2009-12-31 | Gannon Technologies Group, Llc | Systems and methods for image recognition using graph-based pattern matching |
US20100127185A1 (en) * | 2008-11-17 | 2010-05-27 | Ims Nanofabrication Ag | Method for maskless particle-beam exposure |
US7823099B2 (en) * | 2007-05-31 | 2010-10-26 | Synopsys, Inc. | Lithography suspect spot location and scoring system |
US20110161895A1 (en) * | 2009-12-29 | 2011-06-30 | Mentor Graphics Corporation | Retargeting Based On Process Window Simulation |
US7987150B1 (en) * | 2007-02-09 | 2011-07-26 | Siglaz | Method and apparatus for automated rule-based sourcing of substrate microfabrication defects |
US20110209107A1 (en) * | 2010-02-24 | 2011-08-25 | Katsuyoshi Kodera | Mask-layout creating method, apparatus therefor, and computer program product |
US20120254333A1 (en) * | 2010-01-07 | 2012-10-04 | Rajarathnam Chandramouli | Automated detection of deception in short and multilingual electronic messages |
US20130031522A1 (en) * | 2011-07-26 | 2013-01-31 | Juan Andres Torres Robles | Hotspot detection based on machine learning |
US20130061184A1 (en) * | 2011-09-02 | 2013-03-07 | International Business Machines Corporation | Automated lithographic hot spot detection employing unsupervised topological image categorization |
US20130091479A1 (en) * | 2011-10-06 | 2013-04-11 | Rami Fathy Salem | Parameter Matching Hotspot Detection |
US20130163851A1 (en) * | 2011-12-21 | 2013-06-27 | Michele Dalla-Torre | System, method and computer program product for classification within inspection images |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2371240C (en) * | 1999-05-25 | 2011-08-09 | Stephen D. Barnhill | Enhancing knowledge discovery from multiple data sets using multiple support vector machines |
US8078552B2 (en) * | 2008-03-08 | 2011-12-13 | Tokyo Electron Limited | Autonomous adaptive system and method for improving semiconductor manufacturing quality |
US8578313B2 (en) * | 2008-04-24 | 2013-11-05 | Synopsys, Inc. | Pattern-clip-based hotspot database system for layout verification |
US8381152B2 (en) * | 2008-06-05 | 2013-02-19 | Cadence Design Systems, Inc. | Method and system for model-based design and layout of an integrated circuit |
US8260728B1 (en) * | 2008-12-12 | 2012-09-04 | Qurio Holdings, Inc. | System and method for influencing behavior in a distributed virtual environment |
CN101482926B (en) * | 2009-02-19 | 2011-06-15 | 北京大学 | Extensible self-adapting multi-core classification method |
NL2008311A (en) * | 2011-04-04 | 2012-10-08 | Asml Netherlands Bv | Integration of lithography apparatus and mask optimization process with multiple patterning process. |
US8504949B2 (en) * | 2011-07-26 | 2013-08-06 | Mentor Graphics Corporation | Hybrid hotspot detection |
US8490030B1 (en) | 2012-06-01 | 2013-07-16 | Synopsys, Inc. | Distance metric for accurate lithographic hotspot classification using radial and angular functions |
US8601419B1 (en) | 2012-11-05 | 2013-12-03 | Synopsys, Inc. | Accurate process hotspot detection using critical design rule extraction |
-
2014
- 2014-05-27 US US14/287,921 patent/US20140358830A1/en not_active Abandoned
- 2014-05-29 TW TW103118882A patent/TWI554824B/en active
- 2014-05-30 CN CN201410240890.3A patent/CN104217224B8/en active Active
- 2014-05-30 CN CN201810720254.9A patent/CN109242108B/en active Active
-
2019
- 2019-06-05 US US16/432,514 patent/US11403564B2/en active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6246472B1 (en) * | 1997-07-04 | 2001-06-12 | Hitachi, Ltd. | Pattern inspecting system and pattern inspecting method |
US20030109952A1 (en) * | 2001-12-11 | 2003-06-12 | Hitachi, Ltd. | Method and apparatus for inspecting defects in a semiconductor wafer |
US20060111849A1 (en) * | 2002-08-02 | 2006-05-25 | Schadt Eric E | Computer systems and methods that use clinical and expression quantitative trait loci to associate genes with traits |
US20070185656A1 (en) * | 2003-05-30 | 2007-08-09 | Rosetta Inpharmatics Llc | Computer systems and methods for identifying surrogate markers |
US20050256669A1 (en) * | 2004-04-30 | 2005-11-17 | Tadashi Mitsui | Measurement system and method and computer program for processing measurement data |
US20070245281A1 (en) * | 2006-04-14 | 2007-10-18 | Riepe Michael A | Placement-Driven Physical-Hierarchy Generation |
US7987150B1 (en) * | 2007-02-09 | 2011-07-26 | Siglaz | Method and apparatus for automated rule-based sourcing of substrate microfabrication defects |
US7823099B2 (en) * | 2007-05-31 | 2010-10-26 | Synopsys, Inc. | Lithography suspect spot location and scoring system |
US20090324107A1 (en) * | 2008-06-25 | 2009-12-31 | Gannon Technologies Group, Llc | Systems and methods for image recognition using graph-based pattern matching |
US20100127185A1 (en) * | 2008-11-17 | 2010-05-27 | Ims Nanofabrication Ag | Method for maskless particle-beam exposure |
US20110161895A1 (en) * | 2009-12-29 | 2011-06-30 | Mentor Graphics Corporation | Retargeting Based On Process Window Simulation |
US20120254333A1 (en) * | 2010-01-07 | 2012-10-04 | Rajarathnam Chandramouli | Automated detection of deception in short and multilingual electronic messages |
US20110209107A1 (en) * | 2010-02-24 | 2011-08-25 | Katsuyoshi Kodera | Mask-layout creating method, apparatus therefor, and computer program product |
US20130031522A1 (en) * | 2011-07-26 | 2013-01-31 | Juan Andres Torres Robles | Hotspot detection based on machine learning |
US20130061184A1 (en) * | 2011-09-02 | 2013-03-07 | International Business Machines Corporation | Automated lithographic hot spot detection employing unsupervised topological image categorization |
US20130091479A1 (en) * | 2011-10-06 | 2013-04-11 | Rami Fathy Salem | Parameter Matching Hotspot Detection |
US20130163851A1 (en) * | 2011-12-21 | 2013-06-27 | Michele Dalla-Torre | System, method and computer program product for classification within inspection images |
Non-Patent Citations (5)
Title |
---|
Ding et al, "High performance lithographic hotspot detection using hierarchically refined machine learning", Asia and South Pacific Design Automation Conference {ASPDAC) 2011, Jan. 25-28, 2011, Pacifico Yokohama, Yokohama, Japan * |
Ding et al, "High Performance Lithography Hotspot Detection with Successively Refined Pattern Identifications and Machine Learning", IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 30, NO. 11, NOVEMBER 2011 * |
Ding et al, "Machine learning based lithographic hotspot detection with critical-feature extraction and classification", Published in: International Conference on IC Design and Technology, 2009. ICICDT '09. IEEE, Date of Conference: 18-20 May 2009 * |
Ma, et al, "Automatic hotspot classification using pattern-based clustering", Design for Manufacturability through Design-Process Integration II, edited by Vivek K. Singh, Michael L Rieger, Proc. of SPIE Vol. 6925, 692505, (2008) * |
Xu et al, "Accurate Detection for Process-Hotspots with Vias and Incomplete Specification", 2007 IEEE * |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9195535B2 (en) * | 2013-04-30 | 2015-11-24 | Hewlett-Packard Development Company, L.P. | Hotspot identification |
US20140325290A1 (en) * | 2013-04-30 | 2014-10-30 | Hewlett-Packard Development Company, L.P. | Hotspot identification |
US20150112649A1 (en) * | 2013-10-18 | 2015-04-23 | International Business Machines Corporation | Clustering Lithographic Hotspots Based on Frequency Domain Encoding |
US9626459B2 (en) * | 2014-01-24 | 2017-04-18 | International Business Machines Corporation | Detecting hotspots using machine learning on diffraction patterns |
US20150213374A1 (en) * | 2014-01-24 | 2015-07-30 | International Business Machines Corporation | Detecting hotspots using machine learning on diffraction patterns |
US10409165B2 (en) * | 2014-12-15 | 2019-09-10 | Asml Netherlands B.V. | Optimization based on machine learning |
US11029605B2 (en) | 2014-12-15 | 2021-06-08 | Asml Netherlands B.V. | Optimization based on machine learning |
US9500945B1 (en) * | 2015-06-09 | 2016-11-22 | Globalfoundries Singapore Pte. Ltd. | Pattern classification based proximity corrections for reticle fabrication |
US10546246B2 (en) | 2015-09-18 | 2020-01-28 | International Business Machines Corporation | Enhanced kernel representation for processing multimodal data |
WO2017176356A3 (en) * | 2016-02-11 | 2018-02-15 | William Marsh Rice University | Partitioned machine learning architecture |
US11922313B2 (en) | 2016-02-11 | 2024-03-05 | William Marsh Rice University | Partitioned machine learning architecture |
KR102376200B1 (en) * | 2016-05-12 | 2022-03-18 | 에이에스엠엘 네델란즈 비.브이. | Identification of hot spots or defects by machine learning |
KR20200139840A (en) * | 2016-05-12 | 2020-12-14 | 에이에스엠엘 네델란즈 비.브이. | Identification of hot spots or defects by machine learning |
US10896282B2 (en) | 2016-07-12 | 2021-01-19 | Asml Netherlands B.V. | Visualization performance metrics of computational analyses of design layouts |
TWI647528B (en) * | 2016-07-12 | 2019-01-11 | 荷蘭商Asml荷蘭公司 | Method and system for performance metrics of computational analysis of visual design layouts |
US11194949B1 (en) * | 2017-02-22 | 2021-12-07 | Synopsys, Inc. | Predictor-guided cell spreader to improve routability for designs at advanced process nodes |
WO2019132901A1 (en) * | 2017-12-27 | 2019-07-04 | Intel Corporation | Generating a machine learning model to place srafs |
US10621302B2 (en) * | 2018-06-27 | 2020-04-14 | International Business Machines Corporation | Classification and localization of hotspots in integrated physical design layouts |
US10539881B1 (en) | 2018-09-24 | 2020-01-21 | International Business Machines Corporation | Generation of hotspot-containing physical design layout patterns |
US20200133115A1 (en) * | 2018-10-30 | 2020-04-30 | Taiwan Semiconductor Manufacturing Co., Ltd. | Photo mask data correction method |
US10866506B2 (en) * | 2018-10-30 | 2020-12-15 | Taiwan Semiconductor Manufacturing Co., Ltd. | Photo mask data correction method |
US11662657B2 (en) | 2018-10-30 | 2023-05-30 | Taiwan Semiconductor Manufacturing Company, Ltd. | Photo mask data correction method |
US11360379B2 (en) | 2018-10-30 | 2022-06-14 | Taiwan Semiconductor Manufacturing Co., Ltd. | Photo mask data correction method |
US11301748B2 (en) * | 2018-11-13 | 2022-04-12 | International Business Machines Corporation | Automatic feature extraction from aerial images for test pattern sampling and pattern coverage inspection for lithography |
US10762618B1 (en) * | 2019-02-14 | 2020-09-01 | United Microelectronics Corp. | Mask weak pattern recognition apparatus and mask weak pattern recognition method |
US11263496B2 (en) | 2019-02-25 | 2022-03-01 | D2S, Inc. | Methods and systems to classify features in electronic designs |
AT524013A2 (en) * | 2019-02-25 | 2022-01-15 | D2S Inc | Methods and systems for classifying features in electronic designs |
US11823423B2 (en) | 2019-02-25 | 2023-11-21 | Center For Deep Learning In Electronics Manufacturing, Inc. | Methods and systems for compressing shape data for electronic designs |
US10831976B1 (en) | 2019-05-30 | 2020-11-10 | International Business Machines Corporation | Predicting local layout effects in circuit design patterns |
Also Published As
Publication number | Publication date |
---|---|
CN109242108A (en) | 2019-01-18 |
CN104217224B (en) | 2018-07-17 |
CN104217224B8 (en) | 2018-11-23 |
TWI554824B (en) | 2016-10-21 |
CN104217224A (en) | 2014-12-17 |
US20190287021A1 (en) | 2019-09-19 |
US11403564B2 (en) | 2022-08-02 |
TW201510636A (en) | 2015-03-16 |
CN109242108B (en) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11403564B2 (en) | Lithographic hotspot detection using multiple machine learning kernels | |
Yu et al. | Machine-learning-based hotspot detection using topological classification and critical feature extraction | |
US10621727B1 (en) | Label and field identification without optical character recognition (OCR) | |
Tang et al. | Deeply-supervised recurrent convolutional neural network for saliency detection | |
Vicente et al. | Leave-one-out kernel optimization for shadow detection | |
US8892562B2 (en) | Categorization of multi-page documents by anisotropic diffusion | |
US20160098619A1 (en) | Efficient object detection with patch-level window processing | |
US20160179923A1 (en) | Adaptive trajectory analysis of replicator dynamics for data clustering | |
US20160306971A1 (en) | Automated identification and reverse engineering of malware | |
Gao et al. | Accurate lithography hotspot detection based on PCA-SVM classifier with hierarchical data clustering | |
Liu et al. | Adversarial perturbation attacks on ML-based CAD: A case study on CNN-based lithographic hotspot detection | |
JP2012500428A (en) | Segment print pages into articles | |
Dudjak et al. | An empirical study of data intrinsic characteristics that make learning from imbalanced data difficult | |
Zhu et al. | Finding the samples near the decision plane for support vector learning | |
WO2021169499A1 (en) | Network bad data monitoring method, apparatus and system, and storage medium | |
US20170213071A1 (en) | Face detection method and apparatus | |
Fraz et al. | Exploiting colour information for better scene text detection and recognition | |
Aggarwal et al. | Zernike moments-based Gurumukhi character recognition | |
Mostafa et al. | Multi-selection method for physical design verification applications | |
Feild | Improving text recognition in images of natural scenes | |
Li et al. | Comic image understanding based on polygon detection | |
US20160217386A1 (en) | Computer implemented classification system and method | |
US11442579B2 (en) | Method and electronic device for accidental touch prediction using ml classification | |
US20210232931A1 (en) | Identifying adversarial attacks with advanced subset scanning | |
Maratea et al. | Asymmetric kernel scaling for imbalanced data classification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SYNOPSYS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHIANG, CHARLES C.;YU, YEN-TING;LIN, GENG-HE;AND OTHERS;REEL/FRAME:032974/0152 Effective date: 20140521 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |