Machine Learning-Based Layout Nudging for Design Rule Compliance

JP7686886B2Active Publication Date: 2025-06-02X DEVELOPMENT LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024525707
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-11-01
Filing Date
2022-08-30
Publication Date
2025-06-02
Estimated Expiration
2042-08-30

AI Technical Summary

Technical Problem

Integrated circuit layouts face challenges in complying with vendor-specific design rules due to limited access to proprietary optical lithography system data, making it difficult to train machine learning models effectively for design rule compliance and manufacturability.

Method used

Employing machine learning models, particularly artificial neural networks, to identify non-compliant layouts and generate compliant layouts by segmenting integrated circuit designs into patches, applying transformations to correct violations, and using sparse datasets for training, with optional physical or functional simulations for functional consistency.

Benefits of technology

Enhances the ability to produce functionally consistent and manufacturable integrated circuit layouts that adhere to design rules, reducing human expertise requirements and improving computational efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000021_0000
    Figure 00000021_0000
  • Figure 00000022_0000
    Figure 00000022_0000
  • Figure 00000022_0001
    Figure 00000022_0001
Patent Text Reader

Abstract

The goal is to produce a functionally consistent, manufacturable integrated circuit layout. [0005] Embodiments of a system and method for generating an integrated circuit layout are described herein. A computer-implemented method for generating an integrated circuit layout includes receiving a first layout of an integrated circuit, segmenting the first layout into a plurality of distinct patches, each patch of the plurality of patches describing a discrete portion of the first layout, identifying non-compliant patches of the plurality of patches, the non-compliant patches violating design rules governing the manufacture of the integrated circuit, generating a transformation of the non-compliant patch using a machine learning model, and generating a second layout using the transformation and the first layout, the second layout complying with the design rules.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of U.S. Patent Application No. 17 / 516,476, filed November 1, 2021, the contents of which are incorporated herein by reference.

[0002] FIELD OF THEINVENTION The present disclosure relates generally to integrated circuit design, and more particularly, but not exclusively, to techniques for producing functionally consistent, manufacturable integrated circuit layouts that comply with vendor process node design rules. [Background technology]

[0003] Modern integrated circuit layouts contain multiple physical or material layers. Each layer is represented in the layout as a binary mask. The mask indicates the locations where photoresist material will be exposed during wafer fabrication. In this way, the mask describes the presence or absence of material in a semiconductor integrated circuit. The fabrication of an integrated circuit typically involves multiple deposition and removal steps, each of which can be described by one or more binary masks. The overall layout describes the locations of conductive, semiconductive, and insulating materials deposited in the semiconductor layers and can be accurate to the order of nanometers. Fabrication errors can therefore impair the functionality of the integrated circuit and affect the yield of the manufacturing process.

[0004] Each semiconductor manufacturing system imposes constraints on an integrated circuit layout that result from manufacturing process variations and the need for the integrated circuit to function as designed. To be manufacturable on a given system, referred to as a "vendor process node," the layout must conform to design rules specific to that system. The design rules encode the constraints imposed by the process node as logic that can be automated, for example, in software (referred to as "electronic design automation" and "design rule checking"). In an illustrative example, an integrated circuit layout may be limited by the resolution of the optical lithography process that creates the nanoscale geometry of the physical integrated circuit.

[0005] Machine learning models are trained in a variety of ways, including supervised learning using labeled training sets. Integrated circuit design presents challenges for the development of machine learning models due to the full involvement of human expertise in the design process and limited access to proprietary optical lithography system data on which the design rules are based. As a result, training data is limited to publicly available compliant layouts, for example, for unsupervised methods to train classifier models. In some cases, limited datasets of labeled compliant and non-compliant layouts are made available by manufacturers to enable supervised learning techniques. Thus, there is a need for techniques to train and deploy machine learning models to identify non-compliant integrated circuit layouts and generate compliant layouts that preserve circuit functionality. [Brief description of the drawings]

[0006] Non-limiting and non-exhaustive embodiments of the present invention are described with reference to the following figures, in which like reference numerals refer to like parts throughout the various views unless otherwise specified. Not all instances of elements are necessarily labeled, so as to avoid cluttering the drawings where appropriate. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles described. [Figure 1]FIG. 1 is a schematic diagram of an exemplary system for generating functionally consistent, manufacturable integrated circuit layouts in compliance with semiconductor manufacturing system design rules, in accordance with an embodiment of the present disclosure. [Diagram 2] FIG. 1 is a schematic diagram illustrating an example process for generating a compliant second layout of an integrated circuit from a first layout using a machine learning model, according to an embodiment of the present disclosure. [Diagram 3] FIG. 1 is a schematic diagram illustrating an example process for training a machine learning model to generate a compliant second layout, according to an embodiment of the present disclosure. [Figure 4] FIG. 1 is a schematic diagram illustrating an example technique for generating labeled training data from a layout file, according to an embodiment of the present disclosure. [Diagram 5] FIG. 13 is a block flow diagram illustrating data flow in an exemplary process for training a machine learning model to generate a compliant second layout, according to an embodiment of the present disclosure. [Figure 6] FIG. 1 is a block flow diagram of an exemplary process for generating a functionally consistent, manufacturable integrated circuit layout in compliance with semiconductor manufacturing system design rules, in accordance with an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0007] Described herein are embodiments of systems and methods for generating functionally consistent, manufacturable integrated circuit layouts that comply with semiconductor manufacturing system design rules using machine learning models. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the embodiments. However, one of ordinary skill in the art will recognize that the techniques described herein may be practiced without one or more of the specific details, or with other methods, components, materials, etc.

[0008] References throughout this specification to "one embodiment" or "an embodiment" mean that a particular feature, structure, or characteristic described in connection with an embodiment is included in at least one embodiment of the invention. Thus, the appearances of the phrases "in one embodiment" or "in an embodiment" in various places throughout this specification do not necessarily all refer to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

[0009] Each vendor process node imposes constraints on the integrated circuit layout resulting from variability in the manufacturing process, resolution limitations, and wafer limitations, as well as the need for the integrated circuit to function as designed. To be manufacturable on a given system, the layout must conform to the design constraints specific to that system. Design rules encode the constraints imposed in the manufacturing process as logic that can be automated, for example, in software (referred to as "electronic design automation" and "design rule checking"). In an illustrative example, the integrated circuit layout may be limited by the resolution of the optical lithography process that creates the nanoscale geometry of the physical integrated circuit.

[0010] Characteristic dimensions of integrated circuit layout features have progressively decreased in scale, from the 22 nm process node in 2012, to the 14 nm process node in 2014, to the 10 nm process node in 2017, with single nanometer and sub-nanometer process nodes in development. Each advancement comes with additional complexities, such as multi-layer layouts, interlayer structures, vertical features, and dimensions approaching the physical limits of deposition system operating windows. As a result, design rules are becoming increasingly difficult for human designers to understand as the number and complexity of design constraints increase.

[0011] Typical approaches to design rule checking and correction of circuit layouts rely on human designer expertise coupled with fixed algorithms to identify second layout features. Such approaches become impractical when the level of interaction between design constraints results in highly coupled design rules. Training machine learning models based on design rules presents an alternative approach. Machine learning models, such as artificial neural networks, are well suited for systems with many interrelated parameters, but integrated circuit designs represent a challenge to the development of machine learning models due to the full involvement of human expertise in the design process and limited access to the proprietary optical lithography system data on which the design rules are based. Thus, there is a need for techniques to train and deploy machine learning models to identify non-compliant integrated circuit layouts, generate one or more variations of manufacturable second layouts, and modify the layouts with or without human supervision to generate compliant layouts that retain the circuit functionality of the initial layout.

[0012] An embodiment of a system and method for generating functionally consistent and manufacturable integrated circuit layouts includes techniques for generating a training set of labeled data using a sparse data set of compliant layout files, referred to as a "perturbation" of the compliant layout, training an artificial neural network using the training set, deploying the trained machine learning model to identify design rule violations, and generating a transformation of the non-compliant "first" layout to generate a compliant "second" layout. In an illustrative example, a first layout of an integrated circuit is submitted to a computer system for validation, e.g., by a human designer. The computer system segments the first layout into separate patches and validates each patch against the design rules. The non-compliant patches are processed, and the system generates a transformation of the non-compliant patch using a machine learning model trained against a particular set of design rules. The transformation is applied to the first layout to output a second layout that complies with the design rules.

[0013] The techniques described herein may be amenable to additional design optimization in that the transformations may be small enough to maintain functional consistency with the performance characteristics of the first layout. In some cases, however, the machine learning methods applied to generate the transformations and / or the second layout may be repeated during the optimization process, e.g., after multiple optimization updates are completed. The machine learning methods may also be complemented with physical or functional simulations to improve functional consistency as a technique for maintaining the performance of the integrated circuit.

[0014] Advantageously, the techniques described herein improve design rule checking of integrated circuit layouts, at least in part, by incorporating one or more specific data preparation techniques for generating labeled training sets, for which labeled data would otherwise be unavailable. Furthermore, machine learning models can be retrained as new training data is prepared, in contrast to fixed algorithm techniques. Thus, the described systems and methods represent adaptive tools that can be developed for any semiconductor manufacturing process, from which only sparse data is available, which represents a substantial improvement in the performance, robustness, and computational and human resource demands of integrated circuit designs.

[0015] 1 is a schematic diagram of an exemplary system 100 for generating functionally consistent, manufacturable integrated circuit layouts in compliance with semiconductor manufacturing system design rules, according to an embodiment of the present disclosure. The exemplary system 100 includes one or more servers 105, one or more client computing devices 110, one or more semiconductor manufacturing systems 115, and a network 120. The server(s) 105 include a first database 125 of training data 130, a second database 135 of design rules 140, one or more trained machine learning models 145, and one or more untrained machine learning models 150 encoded in software 155. As part of the software 155, the server(s) 105 include instructions for training and / or deploying the models 145-150 using computer circuitry 160. In some embodiments, the server(s) 105 further includes a third database 165 that stores layout files 170, also referred to as integrated circuit layout files, which may be stored in one or more database file formats, including but not limited to GDSII or OASIS.

[0016] The following description focuses on embodiments of the present disclosure that implement a networked system for training and / or deploying machine learning models 145-150 as part of a system for generating integrated circuit layouts compliant with design rules 140. However, it is contemplated that some embodiments of the present disclosure include some or all of the processes being implemented on a client computing device(s) 110, such as a laptop or personal computer. For example, training of the untrained model 150 may be implemented using server(s) 105, while the trained model 145 may be transferred to the client computing device 110 via the network 120 and deployed directly on the client computing device 110. Similarly, components of the exemplary system 100 may be hosted and / or stored on a distributed computing system (e.g., a cloud system) rather than a unitary system. For example, the first database 125, the second database 135, the third database 165, and / or the computer circuitry 160 may be implemented across distributed computing such that portions of the training data 130, the design rules 140, the software 155, and / or the layout files 170 may be stored or executed by the distributed system in one or more physical locations.

[0017] In an illustrative example of the operation of the exemplary system 100, a user of a client computing device 110 prepares a layout 210 (see FIG. 2 ) that describes an integrated circuit to be manufactured using a manufacturing system 115. The layout 210 is checked using automated design rule checking software, which may be stored and / or hosted on the client computing device 110. Additionally or alternatively, the layout 210 may be transferred over the network 120 to the server(s) 105, where the design rule checking engine is hosted and / or stored on the server(s) 105. If the layout 210 complies with the design rules 140 corresponding to the manufacturing system 115, the layout 210 may be transferred to the manufacturing system 115 for use in manufacturing a physical integrated circuit, for example, on a wafer-scale semiconductor manufacturing process.

[0018] The manufacturing system 115 is an example of a complex system in the pipeline between layout design and a semiconductor foundry that processes integrated circuit layouts and converts the layout data into mask data. The mask data is used to generate photomasks used in the photolithography process of physical semiconductor device manufacturing. In the context of the exemplary system 100, the manufacturing system(s) 115 are represented by a network interface computer (e.g., a server) for ease of visual description. Typically, multiple processes (e.g., reverse lithography, optical proximity correction, process correction code) are completed between "tape-out," which refers to the point at which a second layout of the design rules 140 for an integrated circuit is sent to the foundry, and the fabrication of a compliant integrated circuit on a wafer.

[0019] However, if the layout 210 violates the design rules 140, the layout 210 cannot be manufactured. Instead, the software 155 implements the trained model(s) 145 to generate a transformed layout 235 and preserve the features of the layout 210. The transformed layout 235 is then output. Outputting may include, but is not limited to, transferring over the network 120 to the manufacturing system(s) 115 and / or storing the transformed layout 235 as a layout file 170 in the third database 165. In some embodiments, the transformed layout 235 is transmitted to the manufacturing system(s) 115 and used to manufacture semiconductor wafers. In some embodiments, both the first layout 210 and the second layout 235 are stored as layout files 170 in the third database 165.

[0020] However, in some embodiments, updated and / or new design rules 140 are received from manufacturing system(s) 115, e.g., the untrained model 150 is trained for a new manufacturing system 115 for which the trained model 145 is not yet available. Also, because semiconductor processing technology improves periodically as new devices and technologies are developed, it is contemplated that the example system 100 supports retraining of the trained model 145 and preparation of new models 145-150 with changes to the design rules 140.

[0021] As described in more detail in the following paragraphs, the trained model 145 processes the layout 210 and generates a global transformation that describes one or more transformations to be applied to the layout 210 to make it comply with the design rules 140, thereby generating the transformed layout 235. Once generated, the layout 210 and the transformed layout 235 may be stored as training data 130 and / or transferred to other components of the example system 100.

[0022] 2 is a schematic diagram illustrating an example process 200 for generating a transformed layout 235 of an integrated circuit from a layout 210 using a machine learning model, according to an embodiment of the present disclosure. The example process 200 may be implemented by one or more components of the example system 100 of FIG. 1, including, but not limited to, the server(s) 105 and / or the client computing device(s) 110. The example process 200 includes operations 201-209 for accessing and / or receiving the layout 210, defining patches 215, generating one or more transformations 225, generating an output coordinate vector 230, and generating the transformed layout 235.

[0023] Although the exemplary process 200 is illustrated as a series of operations 201-209 implemented by a computer system, it should be understood that one or more of the operations 201-209 may be omitted, reordered, or separated. For example, in some embodiments, operations 201-203 are implemented by the client computing device(s) 110, and operations 205-209 are implemented by the server(s) 105. In some embodiments, the exemplary process 200 may be implemented as part of an interactive design environment, whereby a human user of the computer system may be presented with transformations to the layout 210 as it is being developed. The interactive design environment may be implemented as part of a user interface, such as an application hosted on the client computing device(s) 110 or the server(s) 105, that presents the output of the trained model 145 on a display, terminal, or through other electronic device. The exemplary process 200 may be integrated with existing design software to provide correction capabilities, thereby improving the performance of the software used to design integrated circuit layouts.

[0024] In operation 201, a computer system receives and / or accesses a layout 210. As shown, the layout 210 represents an integrated circuit in terms of planar geometric shapes called polygons 211 that describe photoresist patterns corresponding to the processing of metal, oxide, dielectric, or semiconductor layers that make up the material components of the physical integrated circuit. The layout 210 is a binary format file that describes one or more binary masks that together define the integrated circuit and are verified against design rules 140 for a particular manufacturing system 115.

[0025] In operation 203, the computer system segments the layout 210 to define a number of different patches 215. Each patch 215 describes a discrete portion of the layout 210. The patches 215 can be defined at multiple levels of granularity corresponding to different characteristic length scales. For example, fine patches can be defined at length scales where the design rules 140 address geometric limitations. In another example, coarse patches can be defined at length scales where the design rules 140 address process limitations. In this manner, multiple levels of granularity of the patches 215 can be used to prepare for transformation. The segmentation can apply different techniques to define the patches 215. In one example, the patches 215 describe different physical regions of an integrated circuit represented by the layout 210. In another example, the patches 215 describe different physical implementations of a logical function described by the layout 210 and implemented by the integrated circuit. In some embodiments, the layout 210 includes repeated implementations of a basic logical function such that a set of patches 215 is repeated multiple times within the layout. Advantageously, the local corrections 220 generated to correct one such patch 215 may be applied to other identical patches 215 , reducing the computational resource requirements of the example process 200 .

[0026] In operation 205, the patch 215 is checked against the design rules 140. In some embodiments, the design rules 140 include both local and global constraints. Examples of local constraints include, but are not limited to, one-layer and two-layer rules. One-layer rules include, for example, a width rule that specifies a minimum width of polygons 211 in the layout 210. In another example, a spacing rule specifies a minimum distance between two adjacent polygons 211. Two-layer rules, in contrast, specify a relationship between two layers. For example, an enclosure rule specifies that one type of object, such as a contact or via, is covered by a metal layer of a minimum thickness. As will be appreciated by those skilled in the art, nominal values ​​for width, spacing, and thickness are steadily decreasing as manufacturing technologies progress toward sub-nanometer process nodes. Thus, as manufacturing technologies improve, the design rules 140 impose increasingly precise limitations on the patch 215. In addition, it is understood that other design rules 140 are contemplated as part of the exemplary process 200. As previously described, design rules 140 generally specify geometric and / or connectivity constraints for layout 210 to account for variability in semiconductor manufacturing processes, resolution limits of optical processes, and to maintain functionality of the integrated circuit.

[0027] As part of operation 205, the computer system identifies one or more non-compliant patches 220 from the patches 215. The non-compliant patches 220 violate at least one design rule 140 governing the manufacturing of the integrated circuit. Identification of the non-compliant patches can be implemented using database files (e.g., GDSII, OASIS format layout files) directly, but can also be implemented using other file formats specific to design rule checking (DRC) software for automated (e.g., no human involvement) verification of layouts. In some embodiments, a trained model 145 is trained to classify the non-compliant patches 220. In an illustrative example, training includes using a design rule checking engine given the design rules 140, e.g., in the form of a DRC rule file that specifies manufacturer-supplied design rules in a machine-readable language. The DRC checking engine can read the GDSII file and the DRC rule file and report compliance of the design rules against the GDSII file. An output of the DRC checking engine can be used for training. The exemplary process 200 is shown with four non-compliant patches 220, however, it is understood that the number may vary between designs, such that the exemplary process 200 may include generating “N” local transformations 225, where “N” represents a positive integer.

[0028] In some embodiments, the trained model 145 is a convolutional network model that has been trained to input images 221 of non-compliant patches 220 and output transformations 225 that are predicted to transform the non-compliant patches 220 into compliant patches that comply with the design rules 140. In this context, the term “transformation” refers to a value, sequence of values, such as a vector, or a matrix of values ​​that can be combined with the layout 210 to generate the transformed layout 235. In an illustrative example, the transformation 225 can be a vector of scalar values ​​that identify the polygons 211 of the non-compliant patches 220, the edges and / or vertices of the polygons 211, and the extent of the transformation 225 in which the edges and / or vertices are modified. In this manner, the transformation can describe the modification of the layout 210 to generate the transformed layout 235 as an operator that can be applied to a numerical representation of the layout 210.

[0029] It should be appreciated that multiple machine learning model architectures can take in an image and output a vector of numerical values, of which a convolutional network is one example. In some embodiments, the trained model 145 includes a transformer model configured to receive an image or image type input, such as, for example, a vision transformer model. Alternatively to an image format input, the model input can include a vector of coordinates describing vertices and / or edges corresponding to a mask layout. Thus, the layout can be specified as a vector including the coordinates of polygons 211.

[0030] For vector-based inputs, the trained model 145 may be or include an encoder model trained to generate output vectors in a manner that reflects input symmetries, for example, but not limited to, by being order invariant with respect to the order of polygons 211 in the input vectors. In some embodiments, the trained model 145 may be or include one or more graph neural networks (GNNs). In operation, a GNN may use one edge type to connect corners of the same polygon, another edge type to encode polygons in the same layer, and a third edge type to encode layers in the same layout. In this manner, a GNN may be used to generate a transform 225 at one or more levels of granularity of the patch 210.

[0031] To facilitate inputting the non-compliant patches 220 into the trained model 145, operation 205 includes generating an image 211 for each non-compliant patch 220. In some embodiments, each image 221 is a binary image that represents the polygons 211 as true and the background as false.

[0032] The trained model 145 generates the transformation 225 by predicting one or more displacements or other modifications to be applied to one or more polygons 211 of the non-compliant patch 221 that will satisfy the design rules 140 and remain functionally consistent with the layout 210. In some embodiments, the trained machine learning model 145 generates the transformation 225 that describes the displacement of an edge of a single polygon 211, and the non-compliant patch 220 may include one or more polygons 211. In some embodiments, the transformation 225 describes the displacement of multiple edges corresponding to one or more polygons 211 in the non-compliant patch 220. In this context, the term "displacement" refers to a translation, rotation, or other modification applied to an edge. For example, the displacement may affect the dimensions and / or position of the polygon 211. In some embodiments, the transformation 225 describes adding a vertex to an edge, resizing the polygon 211, increasing or decreasing the number of edges in the polygon 211, or splitting an edge of the polygon 211. Preservation of functional consistency may be learned as part of training, as described in more detail with reference to FIG.

[0033] In some embodiments, the transform 225 is generated by the trained machine learning model 145 as a vector from an output layer of the trained machine learning model 145. For example, if the trained machine learning model 145 is a deep convolutional network, the model may include an input layer, an output layer, and one or more hidden layers. It will be understood by those skilled in the art that the number of layers, the number of neurons, whether the model is fully connected, as well as other aspects of the model architecture may be modified as part of developing the machine learning model 145-150. Additionally, the trained model 145 may incorporate hyperparameters as part of the model architecture, the tuning of which may form part of training the untrained machine learning model 150 to generate the transform 225 according to a particular set of design rules 140.

[0034] In some embodiments, the transformations 225 can be described by coordinate vectors that can describe a layer of the first layout affected by each transformation 225, a location of each transformation 225 within a layer, an extent of each transformation 225, an edge of polygon 211 of each non-compliant patch 225 (each transformation represents a displacement of an edge), or a combination thereof. In some embodiments, the coordinate vectors describe the transformations 225 for each non-compliant patch 220. Advantageously, the approach of generating coordinate vectors for the layout 210 rather than generating a complete output image reduces the size of the coordinate vectors, which can reduce the computational resource demands of operation 205 and facilitate subsequent operations of the example process 200 including the combination of multiple coordinate vectors to generate the transformed layout 235.

[0035] In some embodiments, multiple transformations 225 are generated as part of the exemplary process 200. For example, if the layout 210 includes multiple non-compliant patches 220, the operation 205 may result in multiple transformations 225 being applied to the multiple non-compliant patches 225. However, in some cases, the transformations 225 that make the individual non-compliant patches 220 compliant with the design rules 140 may be incompatible with each other. The transformations 225 may be incompatible with each other if the transformation to each respective polygon 211 results in a new violation of the design rules 140. In an illustrative example, a first polygon 211 in a first non-compliant patch 220 violates a width rule by being too narrow, and a second polygon 211 in a second, different non-compliant patch 220 violates a spacing rule by being too close to another polygon in the second non-compliant patch 220. Individually, each polygon 211 may be simply transformed by transforming one or more edges to address the associated design rule. However, when applied together, the first polygon and the second polygon are too close to each other and violate the spacing rules. The transforms 225 may also be incompatible with each other if modifications to each respective polygon 211 result in a functional inconsistency between the layout 210 and the transformed layout 235.

[0036] Thus, the example process 200 may include generating a global transformation 230 from the transformations 225 in act 207. If the layout 210 includes a single non-compliant patch 220, the global transformation 230 is a respective coordinate vector corresponding to the transformation 225, and act 207 includes identifying the coordinate vector of each transformation 225 using the global transformation 230. If act 205 includes generating multiple transformations 225 by the trained machine learning model 145, act 207 includes a technique for combining the individual transformations 225 to generate the global transformation 230. For example, the global transformation 230 may incorporate each transformation 225 or may incorporate a subset of the transformations 225.

[0037] In some embodiments, operation 207 includes a fixed algorithmic approach, such as a rule-based model 231, an object model, or other technique for selecting a subset of transformations 225 to incorporate into global transformations 230. For example, rule-based model 231 may include a subset of design rules 140 as part of a validation check to identify any mutually incompatible transformations 225. In some embodiments, rule-based model 231 also validates transformations 225 against global design rules 140 that impose constraints at a layout level rather than a local patch level. For example, global design rules 140 may include, but are not limited to, area constraints on a layout.

[0038] Additionally or alternatively, the rule-based model 231 may verify functional consistency after the transformations 225 are individually and / or collectively implemented. In some embodiments, verifying functional consistency at the patch level includes simulating the operation of components represented in the patch 211 before and after the transformations 225 are applied and comparing the resulting simulation results. In this manner, the rule-based model 231 can select which transformations 225 to use when generating the global transformations 230.

[0039] For example, if the patch 211 represents an individual functional unit of the layout 210, the simulation included in the rule-based model 231 may include a physical simulation of the functional unit. In some embodiments, the verification includes a physical simulation of the electromagnetic properties of the patch 211 as a technique for simulating interference effects between adjacent polygons 211. For example, a first polygon 211 represents a conductor that generates an electric field, and a proximal second polygon 211 represents a circuit element that capacitively cross-couples to a proximal second polygon 211 that represents another circuit element. In this manner, the verification of functional consistency as part of the rule-based model 231 may include design rules 140 and other rules, including but not limited to physical rules that correspond to meta-information describing functional aspects of the patch 210.

[0040] In some embodiments, operation 207 includes selecting transformations for use in generating global transformations 230 by an approach that focuses on the overall results of the design rule 140 checks of the intermediate layouts. For example, transformations 225 may be pooled and selected by techniques including simple majority voting, loopy belief propagation, or other software-implemented decision-making protocols. Such an approach may be iterative, involving multiple iterative cycles to determine whether individual transformations 225 affect the results of the design rule 140 checks and thus affect functional consistency.

[0041] In operation 209, the computer system generates a transformed layout 235 by applying a global transformation 230 to the layout 210. The global transformation 230 describes one or more transformations 225 to the layout 210, such that the transformed layout 235 is generated by transforming one or more polygons 211 in the layout 210. As previously described, the transformations may include, but are not limited to, displacement, shrinkage, stretching, or changing the number of vertices of the polygons 211. In this manner, the transformed layout 235 satisfies the design rules 140 and maintains the functionality of the layout 210.

[0042] 3 is a schematic diagram illustrating an example process 300 for training a machine learning model to generate a second layout 235, according to an embodiment of the present disclosure. The example process 300 may be implemented by one or more components of the example system 100 of FIG. 1 as a computer-implemented process, including, but not limited to, the server(s) 105 and / or the client computing device(s) 110. The example process 300 includes operations 301-309 for accessing and / or receiving a second layout file 170, defining a compliance patch 315, generating one or more perturbation vectors 320, generating a perturbation patch 325, and predicting an inverse transformation 330.

[0043] As previously discussed, the exemplary system 100 includes trained model(s) 145 developed for the design rules 140 from the untrained model(s) 150. It is understood that training techniques vary for different model architectures, including supervised, semi-supervised, unsupervised, or other approaches. Although the description of the exemplary process 300 focuses on supervised training using labeled training data, it should be understood that other approaches appropriate to the model architecture may be used if the models 145-150 incorporate additional and / or alternative architectures.

[0044] Although the exemplary process 300 is illustrated as a series of operations 301-309 implemented by a computer system, it should be understood that one or more of the operations 301-309 may be omitted, reordered, or separated. For example, in some embodiments, the operations 301-307 are implemented by a data preparation process that is separate from the operation 309, which includes training the untrained model(s) 150, as described in more detail with reference to FIG. 6. In some embodiments, the exemplary process 300 may be implemented as part of an interactive design environment, whereby a human user of a computer system may interact with the design rules 140, training data 130, untrained models 150, and / or layout files 170 during the development of the trained models 145.

[0045] At operation 301, the example process 300 includes accessing and / or receiving a layout file 170. The layout file 170 is an integrated circuit layout file that describes an integrated circuit in compliance with one or more sets of design rules 140. In the context of the example system 100, the accessing and / or receiving may include, for example, but is not limited to, accessing the layout file 170 from a third database 165, receiving the layout file 170 from a client computing device(s) 110, or receiving the layout file 170 from a manufacturing system(s) 115, where the untrained model 150 has been trained for compatibility with the design rules 140 for the manufacturing system(s) 115 using the layout file 170 provided directly by the manufacturing system(s) 115. It is contemplated that the exemplary process 300 can generate training data with or without the original design file provided by the manufacturing system(s) 115, for example, by training an untrained model 150 using the associated design rules 140.

[0046] In operation 303, the exemplary process 300 includes defining a compliance patch 315 using the layout file 170. As shown in FIG. 2, the compliance patch 315 can be defined to describe discrete sub-regions of the layout. The discrete portions can correspond to physical regions of an integrated circuit, such as areas of layers of the layout. Alternatively, the discrete portions may correspond to physical implementations of the logical functions described by the layout as implemented by the integrated circuit. For example, if the compliance patch 315 describes a combination of logic gates that are electronically coupled to provide a particular function, the individual logic gates may be physically separated within the integrated circuit. In some embodiments, the compliance patch 315 represents the design elements as polygons 316 defined by one or more edges along which a transformation may be addressed.

[0047] As part of the approach to generate training data for model training, the example process 300 may optionally include generating design pairs 321 from the second layout file 170. In this context, the design pairs 321 refer to a discrete set of training data including compliant patches 315, non-compliant patches 319, and perturbation vectors 320 that describe a perturbation of the compliant patches 315 that produces the non-compliant patches 319. The perturbation vectors 320 are functionally similar to the transformations 225 of FIG. 2, but are referred to as perturbation vectors to emphasize that the perturbation vectors produce the non-compliant patches 319 according to a particular set of design rules 140 (e.g., take the compliant patches 315 out of compliance with a particular design rule 140). In some embodiments, the data representing the design pairs 321 also includes an inverse perturbation vector 323, defined as a transformation that produces the compliant patches 315 from the non-compliant patches 319. As part of operation 305, defining the inverse perturbation vectors 323 includes a vector operation to directly determine the inverse of the perturbation vectors 320. In some embodiments, two or more inverse perturbation vectors 323 may describe a transformation that produces a compliant patch 315 from a non-compliant patch 319. A detailed description of perturbations is provided with reference to FIGS.

[0048] The example process 300 may optionally include storing the design pairs 321 as training data 130 in the first database 125. In this manner, the example process 300 may be implemented as a parallel process, where generating the design pairs 321 is separated from training the untrained model(s) 150. For example, the example process 300 may optionally separate operations 305 and 307 and may include accessing a training set of design pairs 321 from the first database 125.

[0049] In operation 307, the exemplary process 300 includes generating an image 325 (also referred to as a "non-compliant image") of the non-compliant patch 319, as described in more detail with reference to image 221 of FIG. 2. However, in contrast to the exemplary process 200, the non-compliant image 325 is not generated from the layout 210, but rather is synthesized from perturbations of the compliant patch 315. Similarly, the non-compliant image includes polygons 316, at least one of which violates a particular set of design rules 140. Training the untrained model 150 with the non-compliant image 325 enables prediction of a transformation 225 for a particular set of design rules 140.

[0050] In operation 309, the non-compliant image 325 is input to the untrained model 150. As described with reference to FIG. 2, the untrained model 150 includes a convolutional network model incorporating input and output layers and one or more hidden layers. As will be appreciated by one of ordinary skill in the art, the untrained model 150 may or may not be fully connected and may include a hidden layer structure (e.g., depth, number of neurons, connectivity, etc.) selected to best predict the inverse perturbation vector 323 without overfitting.

[0051] Operation 309 includes generating an inverse transform 330 using the untrained model 150. The untrained model 150 generates the inverse transform 330 as an output coordinate vector, as described in more detail with reference to FIG. 2, describing a transformation that can be applied to the non-compliant patch 319 to generate the compliant patch 315. The output of the untrained model 150 is referred to as the inverse transform 330 to highlight the relationship between the non-compliant patch 319 and the compliant patch 315, whose predictions are described by the perturbation vector 320 that is part of the supervised training of the untrained model 150.

[0052] Data generated as part of the exemplary process 300, including the design pair 321, the inverse transform 330, and / or the non-compliant image 325, may be stored in one or more data stores as part of a parallel and / or distributed computing process; thus, although the operations of the exemplary process are illustrated as discrete and serial sub-processes, it is contemplated that one or more of the operations 301-309 may be implemented in parallel on multiple processors, which may be physically separated on different physical systems.

[0053] 4 is a schematic diagram illustrating an example technique 400 for generating labeled training data from layout files 170, according to an embodiment of the present disclosure. The example technique 400 describes a computer-implemented process that allows a relatively sparse set of second layout files 170 to be used to generate training data 130. The example technique 400 includes defining a number of perturbation vectors 410, as described with reference to FIG. 3, as a way to generate a number of different second layouts 420 for use in training the untrained model(s) 150.

[0054] Although the exemplary technique 400 is shown at the layout level, it may be similarly applied at the patch level, at least in part because each perturbation 410 may describe the displacement of an edge in a polygon 315 in the transformed layout 235, the displacement of multiple edges in a polygon 315, the displacement of a polygon 315, the resizing of a polygon 315, the splitting of a polygon 315, the addition of one or more vertices to a polygon 315, or a combination thereof. In some embodiments, the perturbations 410 may describe transformations applied to multiple polygons 315. The polygons 315 are shown as rectangles, but may contain more than two vertices. Advantageously, implementing the exemplary technique 400 at the patch level, as shown in FIG. 3, reduces the risk of overfitting during model training by increasing the number of perturbations 410 for a given number of available layout files 170, as described in more detail with reference to FIG. 5, while also reducing the computational resource demands associated with processing and storing an entire layout file 170 into which a single edge in a single polygon 315 is transformed.

[0055] 4, a first perturbation 410-1 displaces one edge of one polygon 315 to increase the size of the polygon 315 to generate a first second layout 420-1. A second perturbation 410-2 displaces an edge of a different polygon 315 to generate a second second layout 420-2. A third perturbation 410-3, shown as the last of the "N" perturbations 410, where "N" is a positive integer, displaces an entire polygon 315 to generate a third second layout 420-3.

[0056] As part of the example technique 400, the perturbations 410 may implement a distribution of design rule 140 violations that substantially reproduce those observed in the first layout 210 received from the designer (e.g., via the client computing device(s) 110 of FIG. 1 ). Thus, the number of perturbations 410, represented by "N," is large enough to include examples of violations observed in the first layout 210, but concentrated enough to avoid biasing the training data 130 with design pairs 321 that do not reproduce meaningful violations.

[0057] In some embodiments, the perturbations 410 are limited to generate second layouts 420 that represent meaningful training data 130, for example by including a validation of functional consistency between the layout file 170 and the second layouts 420. Functional validation may form a sub-process of the exemplary technique 400 as part of data preparation for training of the model 150. In an exemplary example, the perturbations 410 may generate N second layouts 420, and a separate process may validate each of the N layouts and selectively remove second layouts 420 that are functionally inconsistent with the first layout 170. Advantageously, quality control of the training data 130 improves the accuracy and performance of the trained model 145 and reduces the time and computational resource demands for training the model(s) 145-150. If the patches 210 are defined at a level of granularity that does not allow validation of complete logical functionality, quality control of the training data 130 may include checking whether the perturbations 410 make or break connections within the patches 210.

[0058] FIG. 5 is a block flow diagram illustrating data flow in an exemplary process 500 for training the machine learning model 150 to generate a second layout, according to an embodiment of the present disclosure. The exemplary process 500 is implemented by one or more computer systems, such as the server(s) 105 and / or the client computing device(s) 110 of FIG. 1, and includes process blocks describing component operations of the exemplary processes 200-400 of FIGS. 3-4. In this manner, the exemplary process 500 focuses on the data flow involved in the training operation. Constituent process blocks that make up the exemplary process 500 include data storage 505, data preparation 510, perturbation 515, image generation 535, and prediction training 545. Blocks also include a perturbation generator 520, an image generator 540, and an objective function 560.

[0059] Data storage 505 includes training data 130, design rule data 140, and layout files 170 and is an example of databases 125, 135, and 165. As described with reference to Figure 1, data storage may be implemented as physical storage, distributed storage, or a combination thereof.

[0060] Data preparation 510 implements operations on layout files 170 to define compliant patches 315, as described in more detail with reference to Figures 2-3. For example, data preparation may include segmentation based on logical function, based on a predefined size of the patch, or a combination thereof. Layout files 170 may include publicly available second layouts, and may include proprietary layout files 170 prepared or provided by a foundry and stored in data storage 505.

[0061] In some embodiments, data preparation 510 also includes input / output operations to access layout files 170 from data storage 505, for example, as part of an automated (e.g., no human involvement) generation of training data 130. To that end, layout files 170, design rules 140, and / or training data 130 may be labeled with metadata that enables a computer system to identify layout files 170 that conform to a particular set of design rules 140 and to identify training data 130 with layout files 170 and / or design rules 140. While the types of design rules 140 may be consistent across manufacturing systems 115, variability between different sets of design rules 140 is significant, such that training data for a given set of design rules 140 is likely to be invalid for a different set of design rules 140. Similarly, the types of layout files 170 may vary across different manufacturing systems 115, for example, where the integrated circuits being described include different materials and / or different structures, such that some design rules 140 may not be applicable to some layout files 170. Advantageously, associating the training data 130, design rules 140, and layout files 170 can improve overall system performance through database structure optimization and reduction in overall data volume, for example, by accessing the appropriate layout file 170 corresponding to a particular design rule 140 and generating meaningful training data 130.

[0062] The perturbation 515 includes generating a transformation represented by the perturbation vector 320 and the inverse perturbation vector 323 as part of the design pair 321, as described with reference to Figures 3-4. The generator 520 may also implement operations for quality control, such as functional consistency between the transformed layout 235 and the second layout 420. For each patch, the generator 520 may implement an algorithm including one or more subtasks. For example, the subtasks may include, but are not limited to, determining whether to perturb a given patch, determining where and how to perturb the patch, and generating the perturbation vector 320. Determining whether to perturb a patch may include cross-referencing the patch with design pairs 321 already stored in the data storage 505. Because patches may be defined to represent repeatable units that appear multiple times in the transformed layout 235, the perturbation generator 520 may determine that the perturbation 515 of a given patch is redundant. Advantageously, such an approach reduces the overall computational resource demands of perturbation 515 by reducing the number of patches that are processed to generate a representative training set of design pairs 321.

[0063] Determining the perturbation may include determining the layer, edge, location, and extent of the perturbation. As described in more detail with reference to FIG. 2, each patch may be described with meta-information that associates the patch with the transformed layout 235 from which it was generated. The meta-information may include references to layers of a multi-layer layout, polygons in the patch, edges of the polygons, and / or location indicators or coordinates of objects described as part of the patch using, for example, a Cartesian coordinate system. It should be appreciated that multiple different approaches may be employed to describe the patch in the context of the transformed layout 235 and to describe the polygons / edges in the context of a given patch. Advantageously, adding metadata to the patch data may improve the performance of the example system 100 of FIG. 1, at least in part, by reducing the amount of training data generated and / or reducing quality control tasks and data selection for the training data 130.

[0064] The extent of a perturbation refers to a transformation applied to one or more edges, polygons, or other features of a given patch. For example, the extent may describe, but is not limited to, the number of pixels to displace an edge or polygon, the distance to displace an edge or polygon, or a resizing operation applied to a polygon. The extent may be described with reference to a patch, which is associated with the transformed layout 235 via meta-information. The generator 520 outputs a perturbation vector 320 that describes the extent of the perturbation applied to the patch. The perturbation vector 320 may be formatted to be compatible with a file format (e.g., GDSII, OASIS, etc.) used to describe the transformed layout 235. In some embodiments, the generator 520 also outputs an inverse perturbation vector 323 for use in training the untrained model 150.

[0065] Image generation 535 describes one or more operations for generating an image of a non-compliant patch using layout file 170 data and perturbation vector 320, as described in more detail with reference to FIG. 3. Image generator 540 may be or include an algorithm in software for receiving a layout file or other data format describing a given compliant patch, receiving a corresponding perturbation vector 320, and generating an image describing the perturbed patch for use in training untrained model 150. Image generation may include generating a binary mask in which polygons are represented as true values ​​and background is represented as false values. Image generator 540 may determine the size, location, and orientation of polygons in the image by combining perturbation vector 320 with transformed layout 235.

[0066] Once generated, the image data is passed to predictive training 545. Predictive training 545 includes inputting image data describing a given non-compliant patch to untrained model 150, outputting predicted inverse transform 330, and receiving training signal 565 from objective function 560. As described in more detail with reference to FIG. 3, untrained model 150 is configured to input an image and output a correction vector formatted for a given integrated circuit layout format. Similar to perturbation vector 320 and inverse perturbation vector 323, predicted inverse transform 330 describes a transformation to one or more polygons in an image generated by image generator 540 with reference to the transformed compliant patch output by perturbation 515. Untrained model 150 predicts the transformation of a non-compliant patch to a compliant patch based on a given design rule set 140.

[0067] The predictive training 545 outputs the inverse transform 330 to an objective function 560. The objective function 560 describes a loss function or other optimization algorithm that receives the inverse perturbation vector 323 and the inverse transform 330 as inputs. The inputs are compared, for example, by determining the difference between the two input vectors. The comparison can be used as a basis for generating a training signal 565. It should be understood that a number of different techniques can be used to train a machine learning model, some of which are more suitable for certain architectures and others for different architectures. Advantageously, the perturbation techniques described with reference to Figures 3-5 generate labeled training data 130, thereby facilitating supervised learning techniques that can be paired with rule-based models using design rules 140 to label the training data 130, for example, as part of automated (e.g., no human involvement) software for generating and storing the training data 130.

[0068] Multiple training signals 565 can be generated for a certain amount of training data 130 so that the untrained model 150 learns one or more parameters. Over multiple training intervals, the untrained model 150 can converge to a set of learned parameters that enable precise and accurate prediction of the inverse perturbation vector 323. At such time, the untrained model 150 can be considered trained and can be deployed, as described in more detail with reference to FIG. 2. It is understood that design rules, layout files 170, and other factors may change over time, which may motivate retraining of the trained model 145. In this manner, the untrained model 150 described in the context of the exemplary process 500 as initially trained can also represent a previously trained model 145 that has been retrained due to updates to the design rules 140 or with new training data.

[0069] 6 is a block flow diagram of an exemplary process 600 for generating a functionally consistent, manufacturable integrated circuit layout in compliance with semiconductor manufacturing system design rules 140, according to an embodiment of the present disclosure. The exemplary process 600 illustrates an example of operations implemented by a computer system (e.g., server(s) 105 of FIG. 1) as part of deploying trained model(s) 145, as described in more detail with reference to the exemplary process 200 of FIG. 2. The order in which some or all of the process blocks appear in the process 600 should not be considered limiting. Rather, one of ordinary skill in the art having the benefit of this disclosure will understand that some of the process blocks may be performed in various orders not illustrated, or even in parallel.

[0070] At block 605, the computer system receives a layout 210 describing an integrated circuit. The layout 210 may be received from a client computing device 110 over the network 120 or may be retrieved from storage, such as a third database 165 that stores layout files 170. The layout 210 may be formatted as an integrated circuit layout file, as is typically used during integrated design and verification of the layout against design rules 140 for a given semiconductor manufacturing system 115. The layout 210 describes the masks used to pattern photoresist. Photoresist is used during semiconductor processing to define areas of conductors, semiconductors, refractory materials, or other materials that are deposited or removed as part of integrated circuit fabrication during processing of a semiconductor wafer. The masks may be binary masks that describe each type of removal or deposition separately.

[0071] In block 610, the computer system segments the layout 210 into compliant patches 215. The segmentation may define a different patch for each layer of the layout 210. In an illustrative example, a layout for metal wires connecting to field effect transistors may include information describing both conductor and dielectric materials. Each layer of the layout described by a different mask may be constrained by a different set of design rules 140 such that different trained models 150 are prepared for different layers of the layout file describing the different masks, and the segmentation in block 610 proceeds by defining different patches for different layers of the layout 210. Additionally or alternatively, a trained model 145 may be trained using one set or subset of the design rules 140 and another trained model 145 may be trained using a different set or subset of the design rules 140 with which the transformed layout 235 is trained through implementation of a pooling and / or voting scheme. Because the layout 210 can include multiple layers, patches can be labeled with meta-information to track location within a layer and identify the layer in which each patch occurs. Similarly, meta-information can be generated to identify polygons, edges, and locations within each patch. Such meta-information facilitates the generation of coordinate vector(s) 230 during the evolution of the trained model 145, such as via rule-based model(s) 231.

[0072] Following the definition of the patch, the computer system identifies non-compliant patches at block 615. Identifying non-compliant patches includes selecting, receiving, or accessing associated design rules 140 and validating the non-compliant patches against the associated design rules 140 using, for example, a design rule checking engine configured to receive the layout file and generate Boolean outputs such as "compliant" and "non-compliant", "true" and "false". As described in more detail with reference to FIGS. 2-4, the validation may include local design rule checks for polygon size, spacing, position, or combinations thereof as part of one-layer rules and / or two-layer rules. Identifying non-compliant patches in this manner may also include storing identifier information and / or patch data in a temporary system for passing to an image generation and prediction subsystem, as described in more detail with reference to FIG. 2.

[0073] At block 620, the computer system generates a transformation 225 for each non-compliant patch 220, where each respective transformation 225 is predicted to transform the non-compliant patch 220 into a compliant patch that complies with the design rules 140. As described in more detail with reference to FIGS. 1-2 , generating the transformation 225 includes generating an image 221 of the non-compliant patch 220 and inputting the image 221 to a trained model(s) 145 that is trained to output the transformation 225 for each non-compliant patch 220. In some embodiments, a single trained model 145 is used for the image 221. In some embodiments, multiple trained models 145 are used for different subsets of the design rules 140.

[0074] At block 625, the computer system generates an output coordinate vector 230 that describes the transformation of the first layout 201 to the transformed layout 235. The output coordinate vector 230 includes at least a subset of the transformations 225 and describes layer, edge, location, and range information for applying each transformation to the first layout, for example, with respect to polygons 211. Generating the output coordinate vector 230 may include one or more rule-based models 231 or other fixed algorithms configured to select the subset of the transformations 225 for inclusion in the output coordinate vector 230. As described in more detail with reference to FIG. 2, the rule-based method may include algorithmic decision-making routines and physical simulations to validate the output coordinate vector 230 against design rules 140, including global design rules on the layout level, as well as to validate functional consistency between the layout 210 and the transformed layout 235.

[0075] At block 630, the computer system generates the transformed layout 235. Generating the transformed layout 235 may include applying the output coordinate vector 230 to the layout 210 such that the transformations 225 included in the output coordinate vector 230 are implemented. In this manner, polygons 211 of the layout 210 that violate the design rules 140 are transformed (e.g., displaced, resized, etc.) according to the output of the trained model(s) 145. In some embodiments, generating the transformed layout 235 includes validating the second layout for functional consistency with the layout 210 against the design rules 140. For example, one or more operations may be simulated using the layout 210 and using the transformed layout 235, and the resulting outputs may be compared for functional consistency. If the transformed layout 235 does not satisfy the design rules 140 or does not preserve functional consistency, the example process 600 may include repeating one or more process blocks, and a new transformed layout 235 may be generated.

[0076] In some embodiments, the exemplary process 600 includes outputting the transformed layout 235. The output operation includes, but is not limited to, storing the transformed layout 235 as a layout file 170 in a data storage, such as the third database 165. In some embodiments, the output operation can be implemented as part of an interactive design environment, whereby a human user of the computer system can be presented with the transformation to a design during the development of the layout 210. This can include integrating the trained model 145 output into a user interface environment used to develop the design. For example, the output can include presenting the transformed layout 235 on a display of the computer system (e.g., the client computing device 110 of FIG. 1). The output operation can also include outputting the transformed layout 235 to the semiconductor manufacturing system(s) 115, as described in more detail with reference to FIG. 1. The semiconductor manufacturing system(s) 115 can implement intermediate processes between tape-out and manufacturing compliant integrated circuits according to the transformed layout 235, such as reverse lithography.

[0077] The processes described above are described with respect to computer software and hardware. The techniques described may constitute machine-executable instructions embodied in a tangible or non-transitory machine (e.g., computer) readable storage medium that, when executed by a machine, causes the machine to perform the operations described. Additionally, the processes may be embodied in application specific integrated circuits ("ASICs") or other hardware.

[0078] A tangible machine-readable storage medium includes any mechanism that provides (i.e., stores) information in a non-transitory form accessible to a machine (e.g., a computer, a network device, a personal digital assistant, a manufacturing tool, any device having a set of one or more processors, etc.). For example, machine-readable storage media include recordable / non-recordable media (e.g., read-only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, etc.).

[0079] The above description of illustrated embodiments of the invention, including what is described in the Abstract, is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Although specific embodiments and examples for the invention have been described herein for illustrative purposes, those skilled in the art will recognize that various modifications are possible within the scope of the invention.

[0080] These modifications can be made to the invention in light of the above detailed description. In general, the terms used in the following claims should not be construed to limit the invention to the specific embodiments disclosed herein. Rather, the scope of the invention should be determined entirely by the following claims, which are to be construed in accordance with established doctrines of claim interpretation.

Claims

1. 1. A computer-implemented method for generating an integrated circuit layout, the computer-implemented method comprising: Receiving a first layout for an integrated circuit; Segmenting the first layout into a plurality of distinct patches, each patch of the plurality of patches describing a discrete portion of the first layout; identifying a non-compliant patch among the plurality of patches, the non-compliant patch violating a design rule governing manufacture of the integrated circuit; generating a transformation of the non-compliant patch using a machine learning model; generating a second layout using the transformation and the first layout, the second layout conforming to the design rules.

2. the non-compliant patch is a first patch, the transformation is a first transformation, and the design rule is a first design rule; and the computer-implemented method further comprises: identifying a second patch of the plurality of patches, the second patch violating a second design rule governing the manufacturing of the integrated circuit, the second patch being different from the first patch; generating a second transformation of the second patch using the machine learning model; and generating a global transformation using the first transformation and the second transformation; The computer-implemented method of claim 1 , wherein generating the second layout comprises modifying the first layout using the global transformation.

3. Generating the global transformation comprises: inputting the first transformation and the second transformation into a rule-based model configured to preserve a function of the integrated circuit; selecting, via the rule-based model, for inclusion in the global transformation, the first transformation, the second transformation, or both the first transformation and the second transformation; and generating the global transformation using the rule-based model.

4. The computer-implemented method of claim 1 , wherein the non-compliant patch defines a plurality of polygons, and the transformation describes a modification of a polygon of the plurality of polygons relative to the first layout.

5. The computer-implemented method of claim 4 , wherein the transformation describes a displacement of an edge of the polygon, an introduction of a gap in the edge, or an introduction of a vertex in the edge.

6. The machine learning model is a convolutional network model, and generating the transformation comprises: inputting an image of the non-compliant patch into the convolutional network model trained to predict the transformation from the image; and predicting the transformation using the convolutional network model.

7. and further comprising training the machine learning model, the training comprising: accessing a training set of design pairs, each design pair including a compliant patch, a non-compliant patch, and a perturbation vector describing a perturbation of the compliant patch to produce the non-compliant patch; inputting a non-compliant image of the non-compliant patch into the machine learning model; predicting an inverse transform using the machine learning model; and generating a training signal using the inverse transform and the perturbation vector; and modifying one or more learned parameters of the machine learning model using the training signal.

8. receiving a second layout file associated with a set of design rules for the integrated circuit manufacturing process; defining a plurality of compliant patches using the second layout file, each compliant patch of the plurality of compliant patches complying with the set of design rules; generating a perturbation patch using a compliance patch of the plurality of compliance patches; determining that the perturbed patch violates one or more design rules of the set of design rules; defining the perturbation vector linking the compliance patch and the perturbation patch; The computer-implemented method of claim 7 , further comprising: generating a design pair from the set of design pairs using the compliance patch, the perturbation patch, and the perturbation vector.

9. The computer-implemented method of claim 1 , wherein the non-compliant patch describes a physical region of the integrated circuit.

10. The computer-implemented method of claim 1 , wherein the non-compliant patch describes a physical implementation of a logical function described by the first layout and implemented by the integrated circuit.

11. The computer-implemented method of claim 1 , wherein the transformation describes a layer of the integrated circuit affected by the transformation, a location of the transformation in the layer, and an extent of the transformation.

12. The computer-implemented method of claim 11 , wherein the transformation is addressed at edges of polygons of the non-compliant patch.

13. The computer-implemented method of claim 1 , wherein the first layout and the second layout are functionally consistent.

14. The computer-implemented method of claim 1 , further comprising outputting the second layout to a display as part of an interactive design environment.

15. The computer-implemented method of claim 1 , wherein identifying the non-compliant patches comprises checking the plurality of patches against the design rules using a design rule checking engine.

16. At least one machine-accessible storage medium providing instructions that, when executed by a machine, cause the machine to perform operations, the operations including: Receiving a first layout for an integrated circuit; Segmenting the first layout into a plurality of distinct patches, each patch of the plurality of patches describing a discrete portion of the first layout; identifying a non-compliant patch among the plurality of patches, the non-compliant patch violating a design rule governing manufacture of the integrated circuit; generating a transformation of the non-compliant patch using a machine learning model; and generating a second layout using the transformation and the first layout, the second layout conforming to the design rules.

17. the non-compliant patch is a first patch, the transformation is a first transformation, the design rule is a first design rule, and the instructions, when executed by the machine, cause the machine to: identifying a second patch of the plurality of patches, the second patch violating a second design rule governing the manufacturing of the integrated circuit, the second patch being different from the first patch; generating a second transformation of the second patch using the machine learning model; and generating a global transform using the first transform and the second transform; 17. The at least one machine-accessible storage medium of claim 16, wherein generating the second layout comprises modifying the first layout using the global transformation.

18. Generating the global transformation comprises: inputting the first transformation and the second transformation into a rule-based model configured to preserve a function of the integrated circuit; selecting, via the rule-based model, for inclusion in the global transformation, the first transformation, the second transformation, or both the first transformation and the second transformation; and generating the global transformation as an output of the rule-based model.

19. 17. At least one machine-accessible storage medium according to claim 16, wherein the non-compliant patch defines a plurality of polygons, and the transformation describes the displacement of an edge of a polygon of the plurality of polygons, the introduction of a gap in the edge, or the introduction of a vertex in the edge.

20. Generating the transformation comprises: inputting an image of the non-compliant patch into a convolutional network model trained to predict the transformation from the image; and predicting the transformation using the convolutional network model.