Model form determinations for optical proximity correciton (OPC) models for electronic design automation (EDA) design flows
A multi-stage feature selection process for OPC models in EDA design flows addresses inefficiencies in conventional methods, improving computational efficiency and accuracy by sequentially selecting kernels, enhancing the performance of OPC models.
Patent Information
- Application Number
- PCT/US2024/037059
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-08
- Publication Date
- 2026-01-15
AI Technical Summary
Conventional feature selection techniques for machine learning models in electronic design automation (EDA) design flows, particularly for optical proximity correction (OPC) models, are prone to errors, personal bias, and computational inefficiencies, leading to sub-optimal performance and accuracy.
A multi-stage feature selection process is employed, comprising a single feature ranking process followed by a multi-feature selection process, to determine an optimal model form for OPC models, reducing computational complexity from O(N^2) to O(N) and improving accuracy by sequentially considering candidate kernels based on a ranked list.
This approach enhances the efficiency, accuracy, and performance of OPC models by effectively selecting kernels, reducing computational latency and improving model training, thereby enhancing EDA design flows.
Smart Images

Figure US2024037059_15012026_PF_FP_ABST
Abstract
Description
MODEL FORM DETERMINATIONS FOR OPTICAL PROXIMITY CORRECITON (OPC) MODELS FOR ELECTRONIC DESIGN AUTOMATION (EDA) DESIGN FLOWSBACKGROUND
[0001] Electronic circuits, such as integrated circuits, are used in nearly every facet of modern society, from automobiles to microwaves to personal computers. Design of circuits may involve many steps, known as a "design flow." The particular steps of a design flow are often dependent upon the type of microcircuit being designed, its complexity, the design team, and the circuit fabricator or foundry that will manufacture the circuit. Electronic design automation (EDA) applications support the design and verification of circuits prior to fabrication. EDA applications may implement various EDA procedures, e.g., functions, tools, or features to analyze, test, or verify a circuit design at various stages of the design flow.BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Certain examples are described in the following detailed description and in reference to the drawings.
[0003] Figure 1 shows an example of a computing system that supports model form determinations for optical proximity correction (OPC) models for electronic design automation (EDA) design flows.
[0004] Figure 2 shows an example model form determination for OPC models according to the present disclosure.
[0005] Figure 3 shows an example kernel selection process via a multi-stage feature selection process according to the present disclosure.
[0006] Figure 4 shows an example of logic that a computing system may implement to support performance of a multi-feature selection process according to the present disclosure.
[0007] Figure 5 shows an example of logic that a computing system may implement to support model form determinations for OPC models for EDA design flows.
[0008] Figure 6 shows an example of a computing system that supports model form determinations for OPC models for EDA design flows.DETAILED DESCRIPTION
[0009] Electronic circuits, such as integrated circuits (ICs), are used in nearly every facet of modem society, from automobiles to microwaves to personal computers. The design, verification, physical manufacture, and analysis of circuit devices often involve several steps, sometimes referred to as a "design flow" or “EDA design flow.” As used herein, an EDA design flow may include any steps taken in the design, manufacture, or analysis of circuits. The particular steps of a design flow are dependent upon various factors, such as the type of integrated circuit being designed, its complexity, the design team, and the integrated circuit fabricator (e.g., foundry) that will manufacture the physical circuit. Typically, software and hardware tools can verify the circuit designs at various stages of the design flow, for example through complex rule checks, software-based simulations, hardware-based emulation, and various other techniques supported by modem EDA technology. These steps of a design flow aid in the discovery of errors in circuit designs, and allow design teams and engineers to correct or otherwise improve the designs prior to, during, or after physical manufacture.
[0010] Several steps are common to most design flows of IC design. Initially, the specification for a new circuit can be transformed into or otherwise generated as a logical design. Logical designs are sometimes referred to as a register transfer level (RTL) description of a circuit. With logical designs, a circuit can be described in terms of both the exchange of signals between hardware registers and the logical operations that are performed on those signals. The logical design typically employs a Hardware Design Language (HDL), such as the Very high-speed integrated circuit Hardware Design Language (VHDL). The logic of the circuit is then analyzed to confirm that thedesign will accurately perform the functions desired for the circuit. This analysis is sometimes referred to as "functional verification."
[0011] After the accuracy of the logical design is confirmed through functional verification, a logical design can be converted into a device design by synthesis software. The device design, which is typically in the form of a schematic or netlist, can describe the specific electronic devices (e.g., transistors, resistors, and capacitors) that form the circuit design, along with the interconnections between these electronic devices. This device design generally corresponds to the level of representation displayed in conventional circuit diagrams. The relationships between the electronic devices are then analyzed to confirm that the circuit described by the device design will correctly perform the desired functions. This analysis is sometimes referred to as "formal verification." Additionally, preliminary timing estimates for portions of the circuit are often made at this stage, using an assumed characteristic speed for each device, and incorporated into the verification process.
[0012] Once the electronic devices components and their interconnections are established, the design can again be transformed in a design flow. In particular, the next transformation may be to a physical design that describes specific geometric elements that form the circuit design. This type of physical version of a circuit design is often referred to as a "layout" design or “physical layout” (and may simply be referred to as a “layout”). The geometric elements, which typically are polygons, define the shapes that will be created in various layers of material to physically manufacture the circuit. Automated place and route tools can be used to define or generate the physical layouts, especially for wires that will be used to interconnect the circuit devices in the physical representation of the circuit design. Each layer of a circuit can have a corresponding layer representation in the layout design, and the geometric shapes described in a layer representation will define the relative locations of the circuit elements that will make up the circuit device (e.g., of transistors, resistors, capacitors, etc.). For example, shapes in the layer representation of a metal layer will define the locations of the metal wires used to connect the circuit devices.
[0013] Integrated circuit layout descriptions can be provided in many different formats. The Graphic Data System II (GDSII) format is a popular format for transferring and archiving two-dimensional graphical IC layout data. Among other features, GDSII contains a hierarchy of structures, each structure containing layoutelements (e.g., polygons, paths or poly-lines, circles and textboxes). Other layout formats include an open-source format named Open Access, Milkyway by Synopsys, Inc., EDDM by Siemens EDA (formerly Mentor Graphics Corporation), and the Open Artwork System Interchange Standard (OASIS) format proposed by Semiconductor Equipment and Materials International (SEMI). These various industry formats are used to define the geometrical information in IC layout designs that are employed to manufacture integrated circuits. Once the circuit design is finalized, the layout portion of the design can be used by fabrication tools to manufacture the device using a photolithographic process.
[0014] Typically, a designer will perform a number of verification processes on the layout design. For example, the layout design may be analyzed to confirm that it accurately represents the circuit devices and their relationships described in the device design. In this process, a layout-versus-schematic (LVS) tool can extract a netlist from the layout design and compare it with the netlist taken from the circuit schematic. LVS can be augmented by formal equivalence checking, which checks whether two circuits perform exactly the same function without demanding isomorphism.
[0015] The layout design also may be analyzed to confirm that it complies with various design requirements, such as minimum spacings between geometric elements and minimum linewidths of geometric elements. Such checks may be part of a design rule checking (DRC) process performed on layout design. DRC tools can take, as an input, a physical layout (e.g., in the GDSII or OASIS standard format) as well as a rule deck which specifies the specific rule checks to perform on the layout design. As checks in a DRC process can be specific to a particular circuit fabrication process, rule decks are typically provided by a foundry or circuit manufacturer specifying the particular rules that circuit designs must adhere to for circuit fabrication via the foundry (e.g., at a specified technology node or specific fabrication process parameters). Put another way, foundry-provided rule decks can include a list of rules specific to the semiconductor fabrication process employed by the foundry or otherwise selected for use in circuit manufacture. As such, a set of rules for a particular fabrication process can be referred to as a run-set, rule deck, or just a deck. An example format used for implementation of rule decks is the Standard Verification Rule Format (SVRF) by Siemens EDA (formerly Mentor Graphics Corporation).
[0016] There are many different fabrication processes for manufacturing a circuit, but most processes include a series of steps that deposit layers of different materials on a substrate, expose specific portions of each layer to radiation, and then etch the exposed (or non-exposed) portions of the layer away. For example, a simple semiconductor device component could be manufactured by the following steps. First, a positive-type epitaxial layer is grown on a silicon substrate through chemical vapor deposition. Next, a nitride layer is deposited over the epitaxial layer. Then specific areas of the nitride layer are exposed to radiation, and the exposed areas are etched away, leaving behind exposed areas on the epitaxial layer, (i.e., areas no longer covered by the nitride layer). The exposed areas then are subjected to a diffusion or ion implantation process, causing dopants, for example phosphorus, to enter the exposed epitaxial layer and form charged wells. This process of depositing layers of material on the substrate or subsequent material layers, and then exposing specific patterns to radiation, etching, and dopants or other diffusion materials, is repeated a number of times, allowing the different physical layers of the circuit to be manufactured.
[0017] Each time that a layer of material is exposed to radiation, a photomask (mask) must be created to expose only the desired areas to the radiation, and to protect the other areas from exposure. The mask is created from circuit layout data. That is, the geometric elements described in a physical layout define the relative locations or areas of the circuit wafer that will be exposed to radiation through the mask. A mask or reticle writing tool is used to create the mask based upon the design layout, after which the mask can be used in a photolithographic process for fabrication of physical circuits. One or more resolution enhancement techniques (RETs) are often employed to improve the resolution of the image that the mask forms on the substrate during the photolithographic process. One of these techniques is optical proximity correction (OPC). OPC can be rule-based, model-based, or both. In rule-based OPC, the proximity effects are characterized, and specific solutions are devised for specific geometric configurations. The layout design is then searched using a DRC tool or a geometric-based software engine to find these geometric configurations. Once they are found, the specific solutions are applied. After physical manufacture, an EDA design flow may include analysis of fabricated circuits, for example for hotspot detections, root cause analyses, and other circuit analysis processes that can be usedto detect fabrication issues and improve manufacturing yields. Through various steps of a design flow, the design, manufacture, and fabrication of circuits can be performed and supported through EDA technology.
[0018] While various steps of a design flow are described herein, circuit manufacture processes continue to evolve and may include any additional or alternative flow steps. Moreover, the intricacy of each step in a design flow is immense, especially as circuit designs continue to increase in complexity and the transistors and other devices that form a circuit are merely a few atoms wide. As such, accurate and effective design flow steps may increase the efficiency of circuit design and improvements at any given step in the design flow can yield significant benefits.
[0019] With advances in modem technology, machine learning has become increasingly prevalent in various steps of EDA design flows. As used herein, ML models for EDA design flows may refer to any model that is trained or used to support any aspect of circuit design, verification, manufacture, or analysis. Examples of ML models for EDA design flows include ML models in model-based OPC processes, such as OPC models (e.g., etch models or resist models) that can be configured to predict behaviors, values, or characteristics of lithography or etch processes. As other examples, ML models for EDA design flows can be used to down-sample datasets, especially as datasets used in EDA design flows can contain immense amounts of circuit data. For example, clustering ML models can provide capabilities to effectively down select candidate hotspot locations determined through low precision imaging processes, which may result in increased defect confirmation rates for subsequent high precision imaging process verifications. ML models for EDA design flows may also provide predictive capabilities with limit datasets, e.g., defect detection and root causes analyses early in the lifecycle of a technology node with low number of manufactured circuits and measured values thereof. While some examples have been provided, ML models can be used for any aspect or step in EDA design flows.
[0020] One challenge in the use of ML models for EDA design flows is feature selection. As used herein, a feature may refer to any measurable or distinct property. Features may thus take the form of circuit properties (e.g., layout or geometry characteristics), location data, quantified design aspects, and such. In some instances, features may take the form of computations or processes applied to input data or circuit data. An example of such features can be in the form of convolutionkernels (and their corresponding kernel parameters) used in etch or resists models for OPC processes. Such kernel features may be expressed as the kernel itself or a property of the kernel, e.g., kernel density computed for convolving various circuit locations of a circuit design with the kernel. For datasets extracted from circuit designs or manufactured circuits, as well as datasets otherwise relevant to EDA design flows, the number of features applicable to such datasets can be immense.
[0021] Selecting a feature set by which to train ML models for EDA design flows can significantly impact the performance, accuracy, reliability, and efficiency of such ML models. Use of inappropriate feature inputs for training ML models for EDA design flows may adversely affect the model build and its prediction capabilities. Overfitting can result from training ML models with irrelevant features unrelated to the particular value, characteristic, or property ML models are configured to predict or output. Feature overfitting can be particularly severe if the data volume of a training dataset is limited, which may be case in various semiconductor contexts in which ML models for EDA design flows are used. Additionally or alternatively, if a critical feature is not provided for training, the ML model may fail to accurately generate a predictive output and accuracy limitations may arise.
[0022] Another benefit of effective feature set selection is the ability to reduce data volume requirements and improve performance. If the feature set used to train a ML model includes critical features that impact output accuracy without other extraneous or irrelevant features, the amount of data used to train and subsequently use the ML model can be reduced significantly. For EDA processes that can, at times, involve immense amounts of circuit data, proper feature selection can yield significant computational latency improvements. Lack of critical features selected for training can also impact root cause analyses or other downstream applications. Unsupervised and semi-supervised machine learning methods may be more susceptible to training through an improper feature set, further enforcing a need for effective feature selection. Supervised machined learning techniques may require large volumes of training data in order to identify and remove irrelevant features. Effective feature selection can result in improvements of ML models for EDA design flows and overcome various limitations of unsupervised, semi-supervised, and supervised ML techniques.
[0023] Conventional feature selection techniques exist for training of ML models. For many OPC models (e.g., etch models and resists models), manual feature selection is performed based on best practices and user experience. Such manual selections can be prone to error or personal bias. Other conventional feature selection methods include filter methods and wrapper methods. Filter feature selection methods can be supported via statistical measures or using prediction rules to evaluate individual features of a dataset for ML model training. Such methods are typically limited to univariate feature selection and can thus fail to account for feature interactions, ranking redundant features highly, and produce final feature sets that are sensitive to ranking. As such, single feature ranking methods (by themselves) can provide sub- optimal results for feature selections. Wrapper feature selection methods can support multi-feature analyses. Examples of such features selection processes include forward selection, backwards elimination, and exhaustive search algorithms. However, these processes may suffer from performance issues. While such multifeature processes can compare multiple different features during selection processes, each may be computationally expensive, with run times on the order of O(N2), O(2N), or higher. For EDA datasets with a large number of features, the runtime limitations of conventional feature selection processes may be computationally infeasible or prohibitively expensive.
[0024] The problem of feature selection may be particularly applicable to OPC models, which may include any type of model used in OPC processes. Example of OPC models include etch models, resist models, mask models, and more, including any models that simulate or generate predictive outputs for etching processes, lithography processes, and the like. OPC model performance that more accurately and efficiently models etching and lithography processes may improve EDA design flows. Many OPC models use a set of kernels, and model functions utilize different kernels to process (e.g., convolve) input data. The specific kernels used by a model may be referred to as a model form. Thus, training a model with a given set of kernels may refer to or include configuring the model (e.g., functions thereof) such that the model uses the kernels to process data and generate an output. Selection of an appropriate model form (e.g., kernel set) fortraining OPC models remains challenging.
[0025] The disclosure herein may provide systems, methods, devices, and logic for model form determinations for OPC models for EDA design flows. As describedherein, the model form determination technology of the present disclosure may provide capabilities to select kernels for training OPC models for EDA design flow. The selected kernels may be determined from a generic kernel library, and kernel selection may be performed through a multi-stage feature selection process. The multi-stage feature selection processes of the present disclosure may include a single feature ranking process that generates a ranked list of candidate kernels and a multi-feature selection process that sequentially considers the candidate kernels in an order specified by the ranked list. The single feature ranking process may provide individual kernel considerations, and the ranked list may guide a sequential order for the multifeature selection process.
[0026] Instead of comparing every candidate kernel with every other candidate kernel (which result in high computational requirements and latency), the multi-feature selection process of the present disclosure may sequentially consider individual candidate kernels in a sequence specified by the ranked list. Such a multi-feature selection process can improve performance, potentially significantly so by reducing run times to an order of O(N) instead of O(N2), O(2N), or higher as with conventional methods. The multi-stage feature processes of the present disclosure can detect and remove irrelevant or redundant features and may reduce feature sensitivity limitations in single feature ranking techniques. Thus, the model form determination technology of the present disclosure can provide kernel selection capabilities for training of OPC models for EDA design flows with improved efficiency, accuracy, and performance as compared to conventional techniques.
[0027] These and other aspects of the model form determination technology according to the present disclosure as well as various technical benefits are described in greater detail herein.
[0028] Figure 1 shows an example of a computing system 100 that supports model form determinations for OPC models for EDA design flows. The computing system 100 may take the form of a single or multiple computing devices such as application servers, compute nodes, desktop or laptop computers, smart phones or other mobile devices, tablet devices, embedded controllers, and more. In some implementations, the computing system 100 hosts, instantiates, executes, supports, or implements an EDA application that supports circuit design and analysis, and may accordinglyprovide or implement any of the model form determination technology described herein.
[0029] As an example implementation to support any combination of the model form determination technology described herein, the computing system 100 shown in Figure 1 includes a model form determination engine 110. The computing system 100 may implement the model form determination engine 110 (including components thereof) in various ways, for example as hardware and programming. The programming for the model form determination engine 110 may take the form of processor-executable instructions stored on a non-transitory machine-readable storage medium and the hardware for the model form determination engine 1 10 may include a processor to execute those instructions. A processor may take the form of single processor or multi-processor systems, and in some examples, the computing system 100 implements multiple engines using the same computing system features or hardware components (e.g., a common processor or a common storage medium).
[0030] In operation, the model form determination engine 110 may determine a model form for an OPC model for an EDA design flow, including by accessing a generic kernel library comprised of a multiple kernels applicable to the OPC model and wherein the multiple kernels have varying kernel parameters, accessing a set of circuit locations and measured values for the circuit locations, performing a feature selection process for multiple kernels of the generic kernel library as applied to the circuit locations to determine selected kernels from the generic kernel library, and determining the model form based on the selected kernels. In operation, the model form determination engine 110 may further train the OPC model with the determined model form, e.g., by configuring a model function of the OPC model with the kernels of the determined model form.
[0031] These and other aspects of model form determination technology according to the present disclosure are described in greater detail next. Many of the examples presented herein are described with reference to model form determinations for OPC models, such as etch models or resist models used in OPC processes. However, the model form determination technology of the present disclosure may be applied to model form determinations of any model type, not only OPC models. Kernel selection and model form determinations according ot the present disclosure may be applied tomachine learning models used in any step or process of an EDA design flow or otherwise relevant to circuit design.
[0032] Figure 2 shows an example model form determination for OPC models according to the present disclosure. In the example of Figure 2, the model form determination engine 110 may calibrate an OPC model through determination of a model form for the OPC model. As noted herein, a model form may refer to a set of kernels used by an OPC model, and thus the model form determination engine 110 may determine a model form as a set of selected kernels by which to train (e.g., configure) an OPC model. As used herein, training of an OPC model may be understood to include any operation to configure the ML model with selected kernels or input kernels for the OPC ML model to use. Training OPC models with selected kernels and training OPC models with model forms are used interchangeably herein, can include any operation by which an OPC model receives or otherwise uses kernels of a model form.
[0033] To support the various model form determination technology described herein, the model form determination engine 110 may access input data. Input data may be in the form of generic kernel library 210, a set of circuit locations 220, measured values 230 for the circuit locations 220, or any combination thereof. The generic kernel library 210 may refer to any set of kernels that can be used to calibrate or train an OPC model. The specific kernels that are part of a generic kernel library 210 may be specific to a type of OPC model that the model form determination engine 110 is to determine a model form for. As an illustrative example, for an etch model, the generic kernel library 210 may include kernel types are specific to etch models, such as Gaussian kernels, visibility kernels, curvature kernels, etc. Each type of kernel may perform a different function or process input data (e.g., a circuit location of an input layer) in a manner specifically for or relevant to the OPC model.
[0034] In some implementations, the generic kernel library 210 may include multiple kernels of the same type, each with differing kernel parameters. Non-linear parameters of kernels may include effective space (es) and offset (u) parameters, each of which may define the convolution or processing characteristics of using the kernel to process input data. For example, diffusion processes can be expressed or modeled through Gaussian distributions (e.g., of a standard normalization) through convolving a Gaussian kernel and circuit locations of input circuit layer. Such adiffusion process can output a diffused image. The speed or range of the diffusion process can be controlled through non-linear parameter values of the Gaussian kernel. “Larger” kernels may refer to kernels with larger effective space values and vice versa for “smaller” kernels. Positional offsets of kernel convolution processes can be set as well, through the offset parameter of kernels. Through such parameter values, different kernels of the same kernel type can model variations in the same OPC- relevant process. The range of parameter values that can be set for kernels (including effective space and offset parameter values) is near limitless, and thus the number of kernels that can be considered for the model form of an OPC model is immense.
[0035] The model form determination engine 110 may access a generic kernel library 210 with a predefined number of kernels (e.g., 300). In some implementations, the model form determination engine 110 may itself generate, form, or curate the generic kernel library 210. The model form determination engine 110 may do so to ensure kernels of any relevant type for calibrating a particular OPC model type (e.g., etch models) are included, and with a varying or representative range of kernel parameters that are applicable to the OPC model type. As such, the generic kernel library 210 may be comprised of a multiple kernels applicable to a given OPC model and the multiple kernels may have a representative range of kernel parameters relevant to the given OPC model. In some examples, the generic kernel library 210 (or portions thereof) may be user-selected or user-provided kernels. The model form determination engine 110 may determine a model form for training an OPC model through selected kernels determined from the generic kernel library 210.
[0036] As other examples of input data, the model form determination engine 110 may access a set of circuit locations 220. The set of circuit locations 220 may be referred to as gauges, and each circuit location may include, represent, or refer to a window that surrounds a point in a circuit design. As such, circuit locations may be represented as a 10 nanometer (nm) by 10nm window that surrounds a point of interest, and each circuit location may be a circuit design window at a different point in the circuit design. The window size and point locations may be user-specified, sampled via other steps in the EDA design flow, or otherwise determined. As yet another example, the model form determination engine 110 may access measured values 230 as input data. The measured values 230 may specify physically-measured values of an OPC-related value that an OPC model is configured to predict or generatean output for. As an example, the measured values 230 may take the form of etch bias measurements or etch critical dimension values for various circuit locations of a circuit design, e.g., as physically measured through or during manufacture of physical circuits of the circuit design. The measured values 230 may serve as labels or label data for the various kernels and circuit locations 220, and may thus support supervised or semi-supervised learning or validations for OPC models calibrated through selected kernels and determined model forms.
[0037] The model form determination engine 110 may access the generic kernel library 210, the set of circuit locations 220, the measured values 230, or any combination thereof, in any suitable manner. For example, the model form determination engine 110 may load such data from a memory, receive such data over a network connection, or obtain such data via user input. From the generic kernel library 210, the set of circuit locations 220, and the measured values 230, the model form determination engine 110 may generate an input dataset 240 through which to perform a kernel selection process. In some implementations, the model form determination engine 110 may do so through computation of kernel density values, doing so in any suitable or conventional manner. For example, the model form determination engine 110 may compute kernel densities for each of the multiple kernels of the generic kernel library 210 at each of the circuit locations 220. Each computed kernel density may, in effect, serve as a feature value (e.g., a measurable property) attributable to a particular kernel at a particular circuit location through which the model form determination engine 110 may assess and select kernels for training of an OPC model.
[0038] As an illustrative example, the generic kernel library 210 may include three hundred (300) different kernels and the set of circuit locations 220 may include two hundred fifty (250) different windows of circuit data of an input layer. To generate an input dataset 240, the model form determination engine 110 may apply (e.g., convolve) each of the three hundred different kernels at each of the two hundred fifty different circuit locations and compute the corresponding density value for each convolution. In such an example, the model form determination engine 110 may compute seventy- five thousand (75,000) kernel density values, which the model form determination engine 110 may include in the input dataset 240. As another element of the input dataset 240, the model form determination engine 110 may append or otherwiseinclude the measured values 230 for the circuit locations 220 as part of the input dataset 240. The specific type of measured values included in the input dataset 240 may be configurable. For etch models, the model form determination engine 110 may select measured etch bias or etch critical dimension values as the measured values 230, which may be physically measured via or after circuit manufacture.
[0039] Thus, the model form determination engine 110 may generate an input dataset 240 comprised of computed kernel densities for circuit locations and labels in the form of measured values. The model form determination engine 110 may provide this input dataset 240 as an input to a kernel selection process, by which the model form determination engine 110 may determine selected kernels from the generic kernel library 210 through which to determine a model form for an OPC model. In the example of Figure 2, the model form determination engine 110 determines the selected kernels 250 for the input dataset 240, doing so through performance of a kernel selection process. Any suitable kernel selection process is contemplated herein, and the model form determination engine 110 may implement or use any suitable machine-learning feature selection algorithm to determine the selected kernels (e.g., as features of the feature selection algorithm). In particular, the model form determination engine 110 may implement or utilize a multi-stage feature selection process to perform the kernel selection, as described in greater detail herein.
[0040] Through the selected kernels 250, the model form determination engine 110 may train an OPC model, such as the OPC model 260 of Figure 2. For example, the model form determination engine 110 may configure the OPC model 260 with a model form determined through the selected kernels 250. In some implementations, the model form determination engine 110 may determine the model form for the OPC model 260 directly as the selected kernels 250 determined through the kernel selection process. In some implementations, the model determination engine 110 may determine a model form for training the OPC model 260 based on the selected kernels 250 by performing a tuning process to adjust kernel parameters of the selected kernels 250. Such a tuning may include adjusting any non-linear parameter of the selected kernels 250. In some implementations, the model for determination engine 110 may tune the effective size or offset kernel parameters of one or more of the selected kernels 250, e.g., when such tuning or adjustments would improve an evaluation metric of the OPC model 260.
[0041] The model form determination technology described herein may support the use, training, and validation for machine learning technologies of any type or implementation. In some implementations, the model form determination engine 110 may itself implement or apply any suitable machine learning capability, algorithm, or technique to train or construct the OPC model 260. In that regard, the model form determination engine 110 may train ML models via any type of unsupervised, supervised, or semi-supervised machine learning techniques. Neural networks, monotonic machine learning models, cluster-based ML technologies, matrix models, reinforced learning models, or any other suitable machine learning implementations are contemplated herein, and the model form determination engine 110 may construct or train any type of ML model accordingly and in support of any aspect of EDA design flows. In any suitable manner, the model form determination engine 110 may train the OPC model 260 with a model form determined through the selected kernels 250.
[0042] Turning again to the kernel selection process, the model form determination engine 110 may support or perform the selection process through a multi-stage feature selection process. Example features of such a multi-stage feature selection process are described in greater detail next with reference to Figure 3.
[0043] Figure 3 shows an example kernel selection process via a multi-stage feature selection process according to the present disclosure. The example technical aspects of Figure 3 are described through the model form determination engine 110 as an illustrative implementation. In the example of Figure 3, the model form determination engine 110 may access the input dataset 240. In some instances, the model form generation engine 110 may itself generate the input dataset 240, e.g., as kernel densities computed via the multiple kernels of a generic kernel library 210 applied to a set of circuit locations 220, as measured values 230 for the circuit locations, or combinations thereof. Any suitable mechanism by which the model form determination engine 110 can read or load a dataset may be utilized to access the input dataset 240.
[0044] In some implementations, the input dataset 240 may include measured values 230 that an OPC model is configured to predict or generate an output for. Such measured values may act as label values for the input dataset 240, e.g., for training of an OPC model through supervised or semi-supervised learning techniques. For example, OPC input datasets for an etch ML model may include measured values foretch values for various circuit locations of a circuit design, such as etch bias measurements, critical dimension measurements, etc. at some or all of the circuit locations 220.
[0045] As described herein, the model form determination engine 110 may intelligently perform a kernel selection process for the input dataset 240 through a multi-stage feature selection process. According to the present disclosure, a multistage feature selection process may comprise two stages: (1 ) a single feature ranking process followed by (2) a multi-feature selection process, each of which are described in turn.
[0046] In Figure 3, the model form determination engine 110 performs a first stage of the multi-stage feature selection process through a single feature ranking process. The model form determination engine 110 may perform the single feature ranking process on the input dataset 240 to obtain a ranked list 310 of candidate kernels. The ranked list 310 generated by the model form determination engine 110 may be in the form of any listing that sequentially ranks kernels of the input dataset 240. In doing so, the model form determination engine 110 may access, employ, implement, perform, or use any suitable univariate feature determination technology to perform the single feature ranking process, including via existing single feature ranking processes. Example methods, techniques, algorithms that the model form determination engine 110 may employ or implement include Shapley value-based feature importance determinations, SHAP (SHapley Addition exPlanations) techniques, mutual information-based features selection, filter selection methods, or any other suitable single feature process that produces a feature ranking, in this case for kernels based on kernel density values and measured values. The model form determination engine 110 may implement any such technique, process, or single feature ranking technology to perform the single feature ranking process and generate the ranked list 310 of candidate kernels.
[0047] The kernels determined by the model form determination engine 110 through the single feature ranking process may be referred to as candidate features That is, the model form determination engine 110 may further process the candidate kernels to determine a final set of selected kernels through which to train an OPC model. This may be the case as a ranked list output from the first stage of the multi-stage feature selection process may be inadequate, limited, or deficient. As explained herein, singlefeature selection processes may face various limitations, including failing to account for multi-feature interactions, generating high rankings for multiple redundant features, and producing final feature sets that are sensitive to ranking. The model form determination engine 110 may further process the ranked list 310 generated through the first stage of the multi-stage feature selection process to address various weaknesses of single feature selection processes. In particular, the model form determination engine 110 may perform a second stage of the multi-stage feature selection process via a multi-stage feature selection process.
[0048] In the example of Figure 3, the model form determination engine 110 may use the ranked list 310 generated from the single feature selection process as an input to the multi-feature selection process. Through the multi-feature selection process, the model form determination engine 110 may determine a set of selected kernels 250 from the ranked list 310. The selected kernels 250 may specify a specific set of kernels from which to determine a model form for an OPC model, such as the OPC model 260 shown in Figure 2. In some implementations, the model form determination engine 110 may train the OPC model 260 via a model form determined through the selected kernels 250, e.g., by configuring the OPC model 260 with the selected kernels 250.
[0049] Returning to a second stage of the multi-stage feature selection process, various example technical aspects of the multi-feature selection process are described in further detail. The model form determination engine 110 may perform the multifeature selection process by sequentially processing the candidate kernels in the ranked list 310 and in an order specified by the ranking of the ranked list 310. In performing the multi-feature selection process, the model form determination engine 110 may maintain an interim kernel set, which may refer to a set of candidate kernels that the model form determination engine 110 has determined to be part of a set of selected kernels to use to train an OPC model for an EDA design flow (e.g., through a model form determined from the selected kernels). The interim kernel set may be referred to as “interim” during performing of the multi-feature selection process, as sequential consideration of candidate kernels according to the ranked list 310 may result in adding of additional candidate kernels to the interim kernel set. The interim kernel set may become final after consideration of the candidate kernels completes. After considering some (e.g. , a threshold number) or all of the candidate kernels in the ranked list 310, the model form determination engine 110 may complete performanceof the multi-feature selection process by determining the final set of selected kernels 250 by which to train an OPC model as the candidate kernels included in the interim kernel set.
[0050] To further illustrate, the model form determination engine 110 may start at the top of the ranking (e.g., starting with the highest ranked candidate kernel, also referred to as the rank 1 candidate kernel) specified in ranked list 310. Then, the model form determination engine 110 may sequentially consider each successive candidate kernel (e.g., from rank 2, to rank 3, to rank 4, and so forth), and add a currently- considered candidate kernel to the interim kernel set if doing so would improve training of the OPC model with the interim kernel set. That is, the model form determination engine 110 may add (e.g., keep) a given candidate kernel in the interim kernel set responsive to a determination that adding the given candidate kernel to the interim kernel set improves an evaluation metric for training the OPC model for the EDA design flow with the interim kernel set.
[0051] These and various other example technical aspects of a multi-feature selection process according to the present disclosure are described in greater detail next with reference to Figure 4.
[0052] Figure 4 shows an example of logic that a computing system may implement to support performance of a multi-feature selection process according to the present disclosure. For example, the computing system 100 may implement the logic 400 as hardware, executable instructions stored on a machine-readable medium, or as a combination of both. The computing system 100 may implement the logic 400 via the model form determination engine 110, through which the computing system 100 may perform or execute the logic 300 to perform a multi-feature selection process according to the present disclosure, e.g., as a second stage of a multi-stage feature selection process for kernel selection for OPC models. The following description of the logic 400 is provided using the model form determination engine 110 performing a multi-feature selection process for the ranked list 310 of candidate kernels through which determine a model form to train the OPC model 260 of Figure 2 as illustrative examples. The technical capabilities of the logic 400 may be consistently implemented for any ranked list, OPC model, EDA design flow, or any other relevant context.
[0053] Through performing a multi-feature selection process, the model form determination engine 110 may access the ranked list 310 of candidate kernels, forexample as an input provided to the second stage of a multi-stage feature selection process as described herein. The ranked list 310 may be generated from a first step of the multi-stage feature selection process, e.g., via a single feature ranking process. In performing the multi-stage feature selection process, the model form determination engine 110 may maintain an interim kernel set and do so while sequentially considering the candidate kernels in an order specified by the ranked list 310 from the first stage of the multi-stage feature selection process. As part of maintaining the interim kernel set, the model form determination engine 110 may add an initial candidate kernel from the ranked list to the interim kernel set (402). The initial candidate kernel may be a highest ranked candidate kernel in the ranked list 310, e.g., the rank 1 candidate kernel specified in the ranked list 310.
[0054] The single feature ranking process performed by the model form determination engine 110 may provide an importance or impact ranking of kernels of the generic kernel library (e.g., based on SHAP, mutual information, or any other suitable technique). The model form determination engine 110 may set a highest- ranked candidate kernel from the ranked list 310 as part of the interim kernel set for the multi-feature selection process. The highest ranked candidate kernel may indicate a high criticality or importance in terms of training the OPC model 260 for the EDA design flow, and thus the model form determination engine 110 may include the highest ranked candidate kernel from the ranked list 310 as an initial candidate kernel added to the interim kernel set. By doing so, the model form determination engine 110 may ensure that a critical or high importance feature is included in the determined selected kernels 250 to train the OPC model 260.
[0055] The model form determination engine 110 may then determine whether there are any remaining candidate kernels to consider in the ranked list (404). Such a determination may serve as an end criterion for consideration of candidate kernels in the ranked list 310 for the multi-feature selection process. As noted herein, the model form determination engine 110 may perform the multi-feature selection process for some or all of the candidate kernels in the ranked list 310. Each consideration of a candidate kernel in the ranked list 310 may be referred to as a consideration iteration of the multi-feature selection process. In some implementations, responsive to a determination that all of the candidate kernels in the ranked list 310 have been considered (and thus no candidate kernels remain to consider), the model formdetermination engine 110 may cease the candidate kernel considerations and perform no further consideration iterations. In some implementations, the model form determination engine 110 may consider some, but not all, of the candidate kernels in the ranked list 310. For example, a threshold number parameter value may specify a fixed number (e.g., the top 25) candidate kernels of the ranked list to consider for a determined set selected kernels through which to train an OPC model for an EDA design flow. The threshold number may be predetermined, user-specified, or otherwise controlled by the model form determination engine 110. After the threshold number of candidate kernels have been considered, the model form determination engine 110 may cease the candidate kernel considerations.
[0056] If candidate kernels remain for consideration in the ranked list 310, the model form determination engine 110 may perform a next consideration iteration. For a given consideration iteration, the model form determination engine 110 may add a next candidate kernel from the ranked list into the interim kernel set (406). The model form determination engine 110 may do so by identifying a next candidate kernel in the ranking specified by the ranked list 310, e.g., the next sequence number in the ranked list 310 following that of the candidate kernel considered in the previous consideration iteration. In each consideration iteration, the model form determination engine 110 may assess whether adding the next candidate kernel to the interim kernel set would improve an evaluation metric for training the OPC model 260 as compared to an evaluation metric for training the OPC model 260 without the next candidate kernel added to the interim kernel set. Thus, in a given consideration iteration, the model form determination engine 110 may perform an assessment for training the OPC model 260 for the EDA design flow through the interim kernel set with the next candidate kernel added (408).
[0057] Any suitable evaluation metric may be implemented, determined, computed, or applied by the model form determination engine 110 to assess training effectiveness of the OPC model 260, including conventional model evaluation techniques. In that regard, the model form determination engine 110 may implement any suitable or conventional model evaluation techniques, technologies, or processes to assess model trainings and model accuracy. Example evaluation metrics and technology include F1 scores, precision, or recall values. In some implementations, the evaluation metric may be a root mean square (RMS) value, difference, or error between predictedvalues generated by the OPC model 260 for the EDA design flow and measured values for the EDA design flow, e.g., the measured values 230 for the circuit locations 220. Measured values may refer to physically-measured values or actual measured values for a dataset, and the difference between the predicted values of a trained OPC model 260 and the actually-measured values for the input data may be the evaluation metric employed by the model form determination engine 110 (e.g., expressed as RMS error / RSME). Measured values (e.g., the measured values 230) may be specified as part of a validation dataset, within the input dataset 240 itself, or combinations of both. Thus, such validation or input datasets may allow testing of the OPC model 260 trained with different model forms (e.g., kernel sets) in order to assess whether the predictive capabilities or generated outputs of the OPC model 260 have improved or not.
[0058] An example is provided for a given consideration iteration through an illustrative evaluation metric example of an RMS value (e.g., difference or RMS error) between model-predicted and actually-measured values. In this example, the model form determination engine 110 may compare (1 ) the RMS value of training the OPC model 260 with the interim kernel set including the next candidate kernel with (2) the RMS value of training the OPC model 260 with an interim kernel set without the next candidate kernel added. If the RMS value of the OPC model trained with an interim kernel set that includes the next candidate kernel is better than (e.g., lower RMS) than that of training the OPC model 260 with an interim kernel set that does not include the next candidate kernel, then the model form determination engine 110 may determine that adding this next candidate kernel to the interim kernel set would improve the performance, accuracy, or training of the OPC model 260. In such cases, the model form determination engine 110 may determine to add the next candidate kernel to the interim kernel set. However, if the RMS value of the OPC model trained with an interim kernel set that includes the next candidate kernel is worse than (e.g., higher RMS) than that of training the OPC model 260 with an interim kernel set that does not include the next candidate kernel, then the model form determination engine 110 may determine that adding the next candidate kernel to the interim kernel set would worsen the accuracy of the OPC model 260. In such cases, the model form determination engine 110 may determine not to add this next candidate kernel to the interim kernel set, for example by discarding this next candidate kernel from the interim kernel set.
[0059] An example implementation of such is shown in the logic 400 in which the model form determination engine 110 may determine whether or not an improved evaluation metric (e.g., improved RMS) is achieved (410) by adding the next candidate kernel to the interim kernel set. Responsive to a determination that the evaluation metric does not improve, the model form determination engine 110 may discard the next candidate kernel considered in this current consideration iteration, e.g., by removing the next candidate kernel from the interim kernel set (412) and thus discarding the next candidate kernel. Responsive to a determination that the evaluation metric does improve (e.g., improved or lower RMS), the model form determination engine 110 may add the next candidate kernel considered through this current consideration iteration to the interim kernel set, e.g., by keeping the next candidate kernel in the interim kernel set (414).
[0060] Keeping the next candidate kernel in the interim set may simply involve proceeding to a next step in the logic 400, determining not to discard the next candidate kernel of this current consideration iteration from the interim kernel set, or by taking no action since the next candidate kernel of this current consideration iteration was already previously added to the interim kernel set prior to evaluation metric computations. Then, the model form determination engine 110 may determine whether any candidate kernels remain in the ranked list 310 for consideration (404). If no candidate kernels remain for consideration (e.g., all or a threshold number of candidate kernels have been considered), then, the model form determination engine 110 may finalize the selected kernels 250 through which to train the OPC model 260, e.g., by determining the interim kernel set as the selected kernels 250 for the OPC model 260 for the EDA design flow (416). The model form determination engine 110 may then determine a model form for the OPC model 260 through the selected kernels 250.
[0061] Through the consideration iterations described above, the model form determination engine 110 may sequentially consider candidate kernels in an order specified by the ranked list 310. Some illustrative examples are provided to further explain various technical aspects of this second stage of the multi-stage feature selection process. In the consideration iteration immediately after adding the highest ranked candidate kernel to the interim kernel set, the model form determination engine 110 may perform a consideration iteration for the second highest ranked candidatekernel in the ranked list, also referred to herein as the rank 2 candidate kernel. Thus, in this consideration iteration, the model form determination engine 110 may add the rank 2 candidate kernel to the interim kernel set and perform an assessment for training the OPC model 260 with an interim kernel set including the rank 1 and rank 2 candidate kernels.
[0062] In this consideration iteration, the model form determination engine 110 may determine whether the OPC model 260 trained with an interim kernel set consisting of the rank 1 and rank 2 candidate kernels has a better RMS value (as an illustrative evaluation metric) than the RMS value for the OPC model 260 trained with an interim kernel set consisting of only the rank 1 candidate kernel. If not, the model form determination engine 110 may discard (e.g., remove) the rank 2 candidate kernel from the interim kernel set. If so, the model form determination engine 110 may add (e.g., keep) the rank 2 candidate kernel in the interim kernel set. And if so, after this example consideration iteration, the interim kernel set may thus consist of the rank 1 and rank 2 candidate kernels. In this example, the model form determination engine 110 may determine that the interim kernel set comprised of the highest ranked candidate kernel and a second highest ranked candidate kernel has an improved evaluation metric for training the OPC model for the EDA design flow than that of the interim kernel set comprising only the highest ranked candidate kernel (and thus without the second highest ranked candidate kernel). Responsive to such a determination, the model form determination engine 110 may add the second highest ranked candidate kernel to the interim kernel set, e.g., by keeping the second highest ranked candidate kernel in the interim kernel set (in the case the second highest ranked candidate kernel was added in an earlier step of the consideration iteration).
[0063] Next, the model form determination engine 110 may proceed to consider subsequent candidate kernels in an order specified by the ranked list 310, e.g., the rank 3 candidate kernel in a next consideration iteration, then the rank 4 candidate kernel in a following consideration iteration, and so forth. Note that for any given consideration iteration following that of the rank 2 candidate kernel, the model form determination engine 110 need not recompute the evaluation metric (e.g., RMS value) for the interim kernel set without the next candidate kernel added. This may be the case since the RMS value for the interim kernel set without the next candidate kernel added may have been necessarily computed in a previous consideration iteration.
[0064] For example, in the continuing example presented herein, the model form determination engine 110 may perform a consideration iteration for a rank 3 candidate kernel in which the previous consideration iteration added the rank 2 candidate kernel to the interim kernel set. Since the RMS value for training the OPC model 260 with an interim kernel set that includes the rank 2 candidate kernel was computed in the previous consideration iteration, that RMS value can be used as a comparison in the current consideration iteration for the rank 3 candidate kernel. Thus, for a given consideration iteration (aside from the first performed consideration iteration), the model form determination engine 110 need only compute an evaluation metric for training the OPC model 260 with an interim set that has the next candidate kernel added, in this case, the rank 3 candidate kernel. The model form determination engine 110 may then compare the evaluation metric computed for the current consideration iteration with that from a previous consideration iteration. It can be understood that the compared evaluation metric from a previous consideration iteration will be the better of the two evaluation metrics compared in the previous iteration (e.g., lower RMS value from the evaluation metric comparison in the previous consideration iteration). As such, for each of the consideration iterations in the multi-feature selection process (aside from that for the rank 2 candidate kernel), the model form determination engine 110 may need only compute the evaluation metric for training the OPC model 260 with the next candidate kernel added to the interim kernel set.
[0065] In any manner consistent with those described herein, the model form determination engine 110 may perform consideration iterations to sequentially consider the successive kernels of a ranked list with an interim feature set maintained for the multi-feature selection process. By sequentially comparing individual kernels with those in an interim kernel set, the model form determination engine 110 may ensure that only candidate kernels that improve training (e.g., accuracy) of an OPC model for an EDA design flow (e.g., as measured through RMSE) are added to the interim kernel set. Such a sequential consideration may yield performance improvements, as this second stage of the multi-stage feature selection process can be performed in O(N) time, where N is the number of kernels in the ranked list 310 or the threshold number of candidate kernels that are considered. By sequencing through candidate kernels in a ranked order, the model form determination engine 110 may ensure that higher criticality or important individual kernels are considered earlierin the stage, and lower-criticality kernels are considered later. Doing so may ensure critical kernels are first added to the interim kernel set and then later compared with lesser critical kernels for assessing OPC model performance.
[0066] Through any of the various aspects described herein, the model form determination technology of the present disclosure may improve kernel selections for the training of OPC models for EDA design flows. OPC models for EDA design flows trained with the selected kernels determined through the model form determination technology presented herein may provide increased accuracy or efficiency, and the run-time for such kernel selections may be improved as compared to conventional multi-feature selection techniques. The trained OPC models for EDA design flows may be used for any suitable manner or application. Trained etch or resist models with kernels and model forms determined through the model form determination technology described herein may be used to predict etch values (e.g., bias or critical dimensions) or otherwise support OPC processes. Any suitable application of the OPC models trained accordingly is contemplated herein, as is the physical manufacture of circuits with circuit designs produced through EDA design flows that utilize any of the OPC models described herein and trained with selected kernels.
[0067] Figure 5 shows an example of logic 500 that a system may implement to support model form determinations for OPC models for EDA design flows. For example, the computing system 100 may implement the logic 500 as hardware, executable instructions stored on a machine-readable medium, or as a combination of both. The computing system 100 may implement the logic 500 via the model form determination engine 110, through which the computing system 100 may perform or execute the logic 500 as a method to support model form determinations according to the present disclosure. The following description of the logic 500 is provided using the model form determination engine 110 as an example. However, other implementation options by computing systems are possible.
[0068] In implementing the logic 500, the model form determination engine 110 may determine a model form for an OPC model for an EDA design flow (502), including by accessing a generic kernel library comprised of a multiple kernels applicable to the OPC model (502) and wherein the multiple kernels have varying kernel parameters, accessing a set of circuit locations and measured values for the circuit locations (504), performing a feature selection process for multiple kernels of the generic kernel libraryas applied to the circuit locations to determine selected kernels from the generic kernel library (506), and determining the model form based on the selected kernels (508). In implementing the logic 500, the model form determination engine 110 may further train the OPC model with the determined model form (510).
[0069] The logic 500 shown in Figure 5 provides an illustrative example by which a computing system 100 may support model form determinations for OPC models for EDA design flows according to the present disclosure. Additional or alternative steps in the logic 500 are contemplated herein, including according to any of the various descriptions herein for the model form determination engine 110.
[0070] Figure 6 shows an example of a computing system 600 that supports model form determinations for OPC models for EDA design flows. The computing system 600 may include a processor 610, which may take the form of a single or multiple processors. The processor(s) 610 may include a central processing unit (CPU), microprocessor, or any hardware device suitable for executing instructions stored on a machine-readable medium. The computing system 600 may include a machine- readable medium 620. The machine-readable medium 620 may take the form of any non-transitory electronic, magnetic, optical, or other physical storage device that stores executable instructions, such as the model form determination instructions 622 shown in Figure 6. As such, the machine-readable medium 620 may be, for example, Random Access Memory (RAM) such as a dynamic RAM (DRAM), flash memory, spin-transfer torque memory, an Electrically-Erasable Programmable Read-Only Memory (EEPROM), a storage drive, an optical disk, and the like.
[0071] The computing system 600 may execute instructions stored on the machine- readable medium 620 through the processor 610. Executing the instructions (e.g., the model form determination instructions 622) may cause the computing system 600 to perform or implement any of the model form determination technology described herein, including according to any aspect of the model form determination engine 110.
[0072] For example, execution of the model form determination instructions 622 by the processor 610 may cause the computing system 600 to determine a model form for an OPC model for an EDA design flow, including by accessing a generic kernel library comprised of a multiple kernels applicable to the OPC model and wherein the multiple kernels have varying kernel parameters, accessing a set of circuit locations and measured values for the circuit locations, performing a feature selection processfor multiple kernels of the generic kernel library as applied to the circuit locations to determine selected kernels from the generic kernel library, and determining the model form based on the selected kernels. Execution of the model form determination instructions 622 by the processor 610 may cause the computing system 600 to train the OPC model with the determined model form.
[0073] Any additional or alternative aspects of the model form determination technology as described herein may be implemented via the model form determination instructions 622.
[0074] The systems, methods, devices, and logic described above, including the model form determination engine 110, may be implemented in many different ways in many different combinations of hardware, logic, circuitry, and executable instructions stored on a machine-readable medium. For example, the model form determination engine 110 may include circuitry in a controller, a microprocessor, or an application specific integrated circuit (ASIC), or may be implemented with discrete logic or components, or a combination of other types of analog or digital circuitry, combined on a single integrated circuit or distributed among multiple integrated circuits. A product, such as a computer program product, may include a storage medium and machine-readable instructions stored on the medium, which when executed in an endpoint, computer system, or other device, cause the device to perform operations according to any of the description above, including according to any features of the model form determination engine 110.
[0075] The processing capability of the systems, devices, and engines described herein, including the model form determination engine 110, may be distributed among multiple system components, such as among multiple processors and memories, optionally including multiple distributed processing systems or cloud / network elements. Parameters, databases, and other data structures may be separately stored and managed, may be incorporated into a single memory or database, may be logically and physically organized in many different ways, and may be implemented in many ways, including data structures such as linked lists, hash tables, or implicit storage mechanisms. Programs may be parts (e.g., subroutines) of a single program, separate programs, distributed across several memories and processors, or implemented in many different ways, such as in a library (e.g., a shared library).
[0076] While various examples have been described above, many more implementations are possible.
Claims
CLAIMS1 . A method comprising: by a computing system: determining a model form for an optical proximity correction (OPC) model for an electronic design automation (EDA) design flow, including by: accessing a generic kernel library comprised of a multiple kernels applicable to the OPC model and wherein the multiple kernels have varying kernel parameters; accessing a set of circuit locations and measured values for the circuit locations; performing a feature selection process for multiple kernels of the generic kernel library as applied to the circuit locations to determine selected kernels from the generic kernel library; and determining the model form based on the selected kernels; and training the OPC model with the determined model form.
2. The method of claim 1 , further comprising: computing kernel densities for each of the multiple kernels of the generic kernel library at each of the circuit locations; and providing the computed kernel densities for each of the multiple kernels of the generic kernel library as well as the measured values for the circuit locations as an input dataset for the feature selection process.
3. The method of claim 2, wherein performing the feature selection process for the input dataset comprises performing a multi-stage feature selection process that includes a single feature ranking process and a multi-feature selection process.
4. The method of claim 3, comprising: performing the single feature ranking process on the input dataset to obtain a ranked list of the candidate kernels for the input dataset; and performing a multi-feature selection process that sequentially considers the candidate kernels in an order specified by the ranked list.
5. The method of claim 4, wherein performing the multi-feature selection process that sequentially considers the candidate kernels in the order specified by the ranked list comprises: maintaining an interim kernel set during sequential consideration of the candidate kernels in the order specified by the ranked list; and adding a given candidate kernel to the interim kernel set responsive to a determination that adding the given candidate kernel to the interim kernel set improves an evaluation metric for training the OPC model with the interim kernel set.
6. The method of claim 5, wherein the evaluation metric comprises a root mean square (RMS) value between predicted values for the circuit locations by the OPC model and the measured values for the circuit locations.
7. The method of any of claims 1-6, wherein determining the model form based on the selected kernels comprises performing a tuning process to adjust kernel parameters of the selected kernels.
8. A system comprising: a processor; and a non-transitory machine-readable medium comprising instructions that, when executed by a processor, cause a computing system to: determine a model form for an optical proximity correction (OPC) model for an electronic design automation (EDA) design flow, including by: accessing a generic kernel library comprised of a multiple kernels applicable to the OPC model and wherein the multiple kernels have varying kernel parameters; accessing a set of circuit locations and measured values for the circuit locations; performing a feature selection process for multiple kernels of the generic kernel library as applied to the circuit locations to determine selected kernels from the generic kernel library; and determining the model form based on the selected kernels; andtrain the OPC model with the determined model form.
9. The system of claim 8, wherein the instructions, when executed, further cause the computing system to: compute kernel densities for each of the multiple kernels of the generic kernel library at each of the circuit locations; and provide the computed kernel densities for each of the multiple kernels of the generic kernel library as well as the measured values for the circuit locations as an input dataset for the feature selection process.
10. The system of claim 9, wherein the instructions, when executed, cause the computing system to perform the feature selection process for the input dataset by performing a multi-stage feature selection process that includes a single feature ranking process and a multi-feature selection process.11 . The system of claim 10, wherein the instructions, when executed, cause the computing system to: perform the single feature ranking process on the input dataset to obtain a ranked list of candidate kernels for the input dataset; and perform a multi-feature selection process that sequentially considers the candidate kernels in an order specified by the ranked list.
12. The system of claim 11 , wherein the instructions, when executed, cause the computing system to perform the multi-feature selection process that sequentially considers the candidate kernels in the order specified by the ranked list by: maintaining an interim kernel set during sequential consideration of the candidate kernels in the order specified by the ranked list; and adding a given candidate kernel to the interim kernel set responsive to a determination that adding the given candidate kernel to the interim kernel set improves an evaluation metric for training the OPC model with the interim kernel set.
13. The system of claim 12, wherein the evaluation metric comprises a root mean square (RMS) value between predicted values for the circuit locations by the OPC model and the measured values for the circuit locations.
14. The system of any of claims 8-13, wherein the instructions, when executed, cause the computing system to determine the model form based on the selected kernels by performing a tuning process to adjust kernel parameters of the selected kernels.
15. A non-transitory machine-readable medium comprising instructions that, when executed by a processor, cause a computing system to perform a method according to any of claims 1-7.
Citation Information
Patent Citations
Optical proximity correction modeling with density-based gauge weighting
US11023644B1
Reinforcement learning for multi-domain problems
US20200027021A1
Method for training machine learning model to determine optical proximity correction for mask
US20220137503A1