Cross mask error enhancement function (MEEF)-based optical proximity correction (OPC) for curvilinear masks
Cross-MEEF-based OPC for curvilinear masks addresses the inefficiencies in conventional OPC by utilizing cross-MEEF and Jacobian matrices to optimize mask adjustments, enhancing EPE convergence and fabrication accuracy for complex circuit designs.
Patent Information
- Application Number
- PCT/US2025/017753
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-28
- Filing Date
- 2025-02-28
- Publication Date
- 2025-09-04
AI Technical Summary
Conventional optical proximity correction (OPC) methods struggle to effectively handle curvilinear masks, which are increasingly used in modern circuit designs due to their complex geometries, leading to inefficiencies in mask data generation and fabrication accuracy.
The implementation of cross-mask error enhancement function (MEEF)-based OPC for curvilinear masks using cross-MEEF matrices and Jacobian matrices to optimize mask adjustments, considering the impact of multiple fragment movements on target points, thereby improving the accuracy and efficiency of OPC processes.
Enhances the convergence of edge placement errors (EPE) in OPC iterations, allowing for more precise fabrication of complex circuit designs by accounting for the interactions between curvilinear mask fragments, thus improving the overall design and manufacturing process.
Smart Images

Figure US2025017753_04092025_PF_FP_ABST
Abstract
Description
202403216 CROSS MASK ERROR ENHANCEMENT FUNCTION (MEEF)-BASED OPTICAL PROXIMITY CORRECTION (OPC) FOR CURVILINEAR MASKS CROSS-REFERENCE TORELATEDAPPLICATION
[0001] This application claims priority to U.S. provisional patent application no.63 / 558,848, filed on February 28, 2024, and titled “CROSS MASK ERROR ENHANCEMENT FUNCTION (MEEF)-BASED OPTICAL PROXIMITY CORRECTION (OPC) FOR CURVILINEAR MASKS,” the contents of which are incorporated herein by reference in their entirety. BACKGROUND
[0002] Electronic circuits, such as integrated circuits, are used in nearly every facetof 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 circuit 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
[0003] Certain examples are described in the following detailed description and inreference to the drawings.
[0004] Figure 1 shows an example of a computing system that supports cross-maskerror enhancement function (MEEF)-based optical proximity correction (OPC) for curvilinear masks to the present disclosure.202403216
[0005] Figure 2 shows an example flow for generation of a cross-MEEF matrixaccording to the present disclosure.
[0006] Figure 3 shows another example flow for generation of a cross-MEEF matrixaccording to the present disclosure.
[0007] Figure 4 shows an example of logic that a system may implement to supportcross-MEEF-based OPC for curvilinear masks.
[0008] Figure 5 shows an example of a computing system that supports cross-MEEF-based OPC for curvilinear masks. DETAILED DESCRIPTION
[0009] Electronic circuits, such as integrated circuits (ICs), are used in nearly everyfacet of modern society, from automobiles to microwaves to personal computers. The design, verification, and physical manufacture of circuit devices often involve several steps, sometimes referred to as a "design flow." 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 modern 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, thespecification for a new circuit can be transformed into or other 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 the design will accurately perform the functions desired for the circuit. This analysis is sometimes referred to as "functional verification."202403216
[0011] After the accuracy of the logical design is confirmed through functionalverification, 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 areestablished, 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 differentformats. 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 layout elements (e.g., polygons, paths or poly-lines, circles and textboxes). Other layout formats include an open-source format named Open Access, Milkyway by Synopsys,202403216 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 thelayout 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 extracts a netlist from the layout design and compares 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 withvarious 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, butmost 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 the202403216 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. 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 manufactureprocesses 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 circuit202403216 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] Optical Proximity Correction (OPC) has played an important role in the designand validation of circuit designs and semiconductor manufacturing processes. In many design flows, OPC is a major and necessary step in the data preparation and the generation of mask data for wafer target. OPC can involve generation of mask data from a physical layout of a circuit design, and simulations of radiation through the mask data unto a wafer. Target points on the wafer are measured to determine the accuracy by which the mask data etches the wafer. Displacements between a target point and simulations results can indicate errors in the etching process, and such displacement values are sometimes referred to as edge placement errors. Through multiple iterations of simulation and mask data adjustments, OPC processes can seek to reduce EPE and converge at a mask data solution that accurately etches the desired physical contours on a target wafer.
[0020] In some conventional OPC methods, the incremental move of each fragmentis determined only by the edge placement error (EPE) or the signal value of the resistsurface at the single target point that is uniquely associated to this undergoingfragment. However, this association is non-physical, and any movement of a single fragment on the mask impacts more than one target point on the wafer. As such, over time, OPC has evolved from rule-based routings to model-based correctionoperations. In model-based OPC processes, the change of EPE at a target point onthe wafer is a consequence of the position updates of multiple fragments. Put another way, multiple different fragment movements surrounding a target location may impact the movement of an edge fragment at the target location, and thus impacts the EPE of the target location. Therefore, the usefulness of model-based OPC through matrices is apparent, which can consider the impact of the move of each fragment on some or all target points on the wafer. Matrix-based OPC can be implemented within the traditional OPC framework as a supplemental or helper function. In practice, some benefits of matrix OPC features are readily observed for rectilinear or Manhattan polygons. For example, matrix-based OPC can make the “feedback” parameter tuning202403216 easier, can make resolving the conflict of EPE and MRC easier, and can overall allow EPE convergence within fewer OPC iterations.
[0021] As technology nodes of circuit designs continue to shrink, the challenge ofOPC solutions to generate suitable mask data to properly fabricate increasingly complex circuit designs has grown. Moreover, different OPC challenges may arise based on evolving mask representations in modern circuit design. Curvilinear masks have been increasingly adopted and used in mask synthesis. Curvilinear masks allow for the use of any angle between polygon edges of mask designs (in contrast to rectilinear masks that require Manhattan shapes or 90° angles between polygon edges). As used herein, curvilinear masks may refer to any mask, mask design, or mask representation in which mask shapes / polygons can be curvilinear in which edges can intersect at any angle. OPC processes for curvilinear masks is a field of ongoing development with various technical challenges.
[0022] The disclosure herein may provide systems, methods, devices, and logic forcross-mask error enhancement factor (MEEF)-based OPC for curvilinear masks. The various technical features presented herein be collectively referred to as curvilinear OPC technology, and the disclosure may provide various cross MEEF-based techniques by which OPC for curvilinear masks can be performed with improved efficiency and effectiveness. In particular, the curvilinear OPC technology of the present disclosure may extend the use of cross-MEEF matrices for use in model- based OPC processes performed for curvilinear masks. These and other aspects of curvilinear OPC technology according to the present disclosure and the technical benefits of such curvilinear OPC technology are described in greater detail herein.
[0023] Figure 1 shows an example of a computing system that supports cross-MEEF-based OPC for curvilinear masks according to the present disclosure. Thecomputing 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 or EDA system that supports circuit design and analysis, and may accordingly provide or implement any of the curvilinear OPC technology described herein.202403216
[0024] As an example implementation to support any combination of the curvilinearOPC technology described herein, the computing system 100 shown in Figure 1 includes an curvilinear OPC engine 110. The computing system 100 may implement the curvilinear OPC engine 110 (including components thereof) in various ways, for example as hardware and programming. The programming for the curvilinear OPC engine 110 may take the form of processor-executable instructions stored on a non- transitory machine-readable storage medium and the hardware for the curvilinear OPC engine 110 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).
[0025] In operation, the curvilinear OPC engine 110 may access a curvilinear maskand a cross-MEEF matrix for the curvilinear mask. The curvilinear mask may berepresented through a set of vertices and the cross-MEEF matrix may specify EPEchanges to the set of vertices of the curvilinear mask when a given vertex of the set of vertices of the curvilinear mask is moved by a distance unit. In operation, the curvilinear OPC engine 110 may also perform an OPC operation using the cross- MEEF matrix. Any suitable OPC operation is contemplated herein.
[0026] These and other aspects of curvilinear OPC technology of the presentdisclosure are described in greater detail next.
[0027] The mask error enhancement factor (MEEF) is commonly understood as theEPE change on a wafer caused by globally sizing up the mask polygons by one unit.Some definitions are provided herein. Let ^^ be a polygon-represented mask, and ^^or ^^ (^^, ^^) be its transmission function, where (^^, ^^) are the coordinates of a point onthe mask. It is assumed that 0 ≤ ^^ (^^, ^^) ≤ 1. In other words, the mask is assumed tohave a gray-scale tone, extended from the binary tone mask assumption. Let ^^ = ^^(^^,^^; ^^) be the aerial image of the mask ^^, evaluated at a wafer point (^^, ^^), and ^^ = ^^(^^,^^; ^^) the resist image obtained from an image transformation from the aerial image ^^.The ariel image I may thus provide bit or pixel map of light intensity at different points on a wafer for a given mask and light source, which can be normalized to light intensity values between 0 and 1 inclusive. It is assumed that the simulated contour from themask ^^ will be given by the thresholding operator, i.e., ^^^^^^^^^^^^^^ = {(^^, ^^): ^^(^^, ^^; ^^) =202403216^^0}, where the threshold ^^0 is a constant calibrated together with the resist model: ^^ →^^.
[0028] One critical metric for the quality of contours is EPE, which measures thedistance from a target point to the contours on the wafer along a pre-assigned direction, called site. For OPC iterations, it is common to identify a set of target points{^^^^ = (^^^^ , ^^^^): ^^ = 1, … ^^} from the drawn target layer, together with the sites {^^^^ : ^^ = 1,… ^^} uniquely associated to these target points, where ^^ is the number of target pointsin consideration. The goal of the OPC procedure is to find a mask whose EPE converges to zero or nearly to zero. To this end it is important to know or to find an estimate of the response of the contour or EPE at a target point when perturbing the position of each fragment or vertex on the mask. This aids in the understanding of a MEEF matrix (also referred to as a cross-MEEF matrix).
[0029] In the Manhattan mask case, the polygons on a mask can be characterizedwith the edges of polygons, ^^ = {^^^^: ^^ = 1, ⋯ , ^^} with ^^ being the number of fragments.Here it can be understood that ^^^^ is the ^^-th individual fragment in the fragmentcollection. For some OPC algorithms, the assumption of the 1:1 correspondencebetween the mask fragments ^^^^ and the wafer target points ^^^^ is made and hence ^^= ^^. The fragmentation of masks is usually initiated by a set of rules applied on targetpolygons on the wafer. During a given OPC iteration, each fragment ^^^^ can be allowedto move only in a direction normal to itself.
[0030] However, in a physical sense, the correspondence between the wafer targetpoints {^^ ^^ ^^^^}^^=1 and the mask fragments {^^}^^=1 need not necessarily be limited to a 1:1relationship. Such correspondence can be defined by a matrix, in which ^^ and ^^ canbe the same or different. As used herein,can denote the signed distance of thecurrent position of a fragment ^^^^ from its initial position, with its sign positive if the moveis outwards from the polygon and negative otherwise. For each ^^ = 1, ⋯ , ^^, the EPEat the target point ^^^^ , denoted as ^^^^^^(^^^^), is a function of multi-variables ^^1, ⋯ , ^^^^,or ^^^^^^(^^^^ ) = ^^^^ (^^1, ⋯ , ^^^^). As such, the cross-MEEF of a mask can be defined to bethe matrix: crosswith the row index ^^ = 1, ⋯ , ^^ for the wafer target points and the column index ^^ = 1,⋯ , ^^ for the mask polygon fragments.202403216
[0031] The cross-MEEF matrix can be evaluated or generated via brute-force bymoving one fragment a time. That is, fix a displacement unit value for ^^0. For each ^^ =1, ⋯ , ^^, generate one perturbed mask by moving ^^^^ with ^^^^ ← ^^^^ + ^^0 while keepingall other fragments unchanged, followed by a forward simulation on the perturbedmask. Then, measurement of the EPE changes at all target points ^^1, ⋯ , ^^^^ canprovide a divided difference approximationThis gives ^^ ≈ ( 1α0 ∆^^^^^^(^^^^))^^^^ and the equality holds as Δ^^ → 0. For example, it ispossible to set ^^0 to be 2 nanometers (nm), 1 nm, or 0.5 nm for the purpose ofgenerating a cross-MEEF matrix ^^. As an improvement to brute-force techniques, itis possible to move a set of fragments at a time, not necessarily only a single fragment a time, provided that the fragments in this selected set are mutually away from eachother, e.g., separated by a threshold distance (e.g., 1.0 ^^^^ for some cases).Alternatively, with some approximation techniques, the computation of the cross-MEEF matrix ^^ can be significantly sped up.
[0032] It can follow that for each wafer target point ^^ = 1, … ^^, the total differentialequation can be expressed as:This can be expressed equivalently in matrix notation as: ∆^^^^^^ = ^^∆^^where ∆^^^^^^ and ∆^^ are column vectors made with (Δ^^^^^^(^^^^))^^ and (Δ^^^^)^^, and theequality sign holds in the limit sense.
[0033] The equation above can indicate a principal linear part of the relationshipbetween EPE changes and mask perturbation, and thus provides a more comprehensive view of how to estimate the incremental moves of the mask edges to make the EPE converge to zero for each OPC iteration. However, in somecircumstances, the cross-MEEF matrix ^^ is poorly or ill-conditioned, and inverting thecross-MEEF matrix ^^ in a simple and direct way is infeasible.
[0034] As another observation, the equation above provides a formula for thecalculation of the MEEF if all components or instances of Δ^^ are set to 1. The typical202403216meaning of the MEEF at wafer point ^^ is given by^^^^^^ ^^^^^^^^ ^^^^^^^^ =⋯Such a computation of the MEEF may be computationally expensive.
[0035] Another method for computation of a cross-MEEF matrix involves applicationof a chain rule. In such a computation, the i-th target point with respect to the j-thfragment can be expressed as: ^^^^^^^^^^≈(^^^^) / ^^^^^^^^^^(^^) ^^^^i^^
[0036] Thus, an approximation that≈ ^^^^^^ / ^^^^^^^^^^(^^i) follows. Sincetransformation ^^ → ^^ is, in essence, a quadratic operator, fast algorithms are possiblefor computing the Jacobian ^^, and hence for the cross-MEEF matrix ^^, any of whichthe curvilinear OPC engine 110 may implement.
[0037] There are different ways to understand and for the curvilinear OPC engine110 to carry out the incremental mask updates for curvilinear masks during OPC iterations. If the curvilinear polygons on the mask are represented as edges whose positions are moved only in a direction normal to the edge’s orientation, with obvious and necessary justification in the fragment length, then the definitions and calculation equations of the cross-MEEF matrix and the Jacobian matrix for a curvilinear mask can be expressed through the equations above, particularly for OPC verification applications. The curvilinear OPC engine 110 may implement any of the described techniques in support of the generation or use of cross-MEEF and Jacobian matrices for curvilinear masks.
[0038] However, the curvilinear OPC engine 110 may make some changes if thecurvilinear polygons of a mask are represented as vertices instead of edges. In this case, the characterizations of the geometries on the wafer, such as target points, sites, and EPE, can be similar to those for Manhattan masks, but the mask characterizationsdiffer. For example, let a curvilinear mask be represented by polygon vertices, e.g., ^^= {^^^^ ∶ ^^ = 1, ⋯ , ^^}. The curvilinear OPC engine 110 may specify, represent, or set adirectional vector ^^^^ for each vertex ^^^^, pointing outwards from the polygon (e.g.,normal to the polygon in an outward direction at each vertex ^^^^). For example, thedirectional vector ^^^^ can be copied from the site assigned to the wafer target point ^^^^,or can coincide with the angular bisector of the angle conformed from ^^^^ and its202403216 preceding and succeeding vertices. The mask update is to be made by moving (e.g.,perturbing) each of the polygon vertices ^^^^ along ^^^^. This introduces a definition forcross-MEEF matrices for curvilinear masks represented as vertices as follows:where ^^ = 1, ⋯ , ^^ and ^^ = 1, ⋯ , ^^ are the row index and column index respectively.For curvilinear masks, the cross-MEEF matrix can be generated through brute force, e.g., by moving one vertex at a time and computing curvilinear polygon displacements, e.g., in a consistent manner as described herein but for vertex movements instead of edge fragment movements. As another feature of the present disclosure, elements ofthe cross-MEEF matrix Xij can be approximated as follows:
[0039] As described herein, the curvilinear OPC engine 110 may support use ofcross-MEEF or Jacobian matrices for curvilinear masks. The curvilinear OPC engine 110 may implement any of the above-described technology, and in any combination thereof, whether individually, in combination, or in further combination with any of the various curvilinear OPC technology features described herein. As another aspect of the curvilinear OPC technology of the present disclosure, the curvilinear OPC engine 110 may support generation of cross-MEEF matrices and Jacobian matrices in various ways, example features of which are described next.
[0040] Figure 2 shows an example flow for generation of a cross-MEEF matrixaccording to the present disclosure. In the example of Figure 2, the curvilinear OPCengine 110 may, for a given curvilinear mask, perturb a ^^th vertex of the givencurvilinear mask, and compute an interaction effect for the given curvilinear mask and a differential mask. The differential mask may refer to a difference between the givencurvilinear mask and a perturbed mask with the ^^th vertex of the given curvilinear maskperturbed. Perturbation may refer to movement of a given vertex of the curvilinear mask, e.g., by a pre-configured distance unit or along a pre-configured direction vector for the given vertex. Iterative vertex perturbations may allow the curvilinear OPC engine 110 to generate a cross-MEEF matrix for the given curvilinear mask.
[0041] Each perturbation of a different ^^th vertex and subsequently determinedinteraction may produce a ^^th column of a Jacobian matrix, and the curvilinear OPC202403216 engine 110 may form a Jacobian matrix by combining the produced columns from perturbing the various vertices that form the given curvilinear mask. In that regard, the curvilinear OPC engine 110 may perturb each vertex of the given curvilinear mask, each computed interaction may produce a separate Jacobian matrix column, and the curvilinear OPC engine 110 may form the Jacobian matrix through combining each column separately produced for each vertex perturbation. From the Jacobian matrix, the curvilinear OPC engine 110 may construct the cross-MEEF matrix for the given curvilinear mask, e.g., as described herein.
[0042] To illustrate through Figure 2, the curvilinear OPC engine 110 may access acurvilinear mask 210. The curvilinear mask 210 may be represented as a set ofvertices that define a mask, such as polygon vertices, e.g., ^^ = {^^^^ ∶ ^^ = 1, ⋯ , ^^}.As noted herein, the curvilinear OPC engine 110 may specify, represent, or set adirectional vectorfor each vertex ^^k, pointing outwards from the polygon (e.g.,normal to the polygon in an outward direction at each vertex ^^k). For example, thedirectional vector ^^k can be copied from the site assigned to the wafer target point ^^k,or can coincide with the angular bisector of the angle conformed from ^^k and itspreceding and succeeding vertices. A mask perturbation can be made by thecurvilinear OPC engine 110 by moving each of the polygon vertices ^^k along ^^k. Theperturbation distance (e.g., distance unit) at which a given vertex is perturbed may be user specified, set by a default parameter value, or other configured by the curvilinear OPC engine 110 in any suitable manner. As such, the curvilinear OPC engine 110may perturb a ^^th vertex of the curvilinear mask 210 by moving the vertex along adirectional vector ^^k defined for vertex by a distance unit.
[0043] An illustrative example is shown in Figure 2 in which the curvilinear OPCengine 110 perturbs a ^^th vertex of the curvilinear mask 210, which may be a ^^thiteration of a cross-MEEF matrix generation process that produces a ^^th column of aJacobian matrix. It may be understood that this ^^th iteration and the ^^th vertex may beany of the K number of vertices of the curvilinear mask 210, e.g., ^^ = {^^^^ ∶ ^^ =1, ⋯ , ^^}. In this ^^th iteration, the curvilinear OPC engine 110 may perturb the ^^thvertex of the curvilinear mask 210 to form a perturbed mask 212, which may differ fromthe curvilinear mask 210 by movement of the ^^th vertex along the directional vector ^^kby a distance unit. In support of curvilinear OPC, the curvilinear OPC engine 110 may determine nearfields for the curvilinear mask 210 and the perturbed mask 212, doing202403216 so in any suitable manner. A nearfield may refer to a measurement of an electrical field, e.g., at locations relative to a given mask. In some implementations, a nearfield may be expressed as a maxwell equation, though any suitable or alternative implementation can be likewise viable. The curvilinear OPC engine 110 may utilize, employ, implement, adapt, or otherwise configure any nearfield determination technology or technique in support of the curvilinear OPC technology described herein. In Figure 2, the curvilinear OPC engine 110 determines a mask nearfield 220 for the curvilinear mask 210, which may be represented as pixel array (e.g., a bit map) of electric field measurements for the curvilinear mask 210 (e.g., at positions located beneath the curvilinear mask 210). Also in Figure 2, the curvilinear OPC engine 110 may determine the perturbed mask nearfield 222 for the perturbed mask 212. Each determined nearfield may be represented as a pixel array, in which individual location are represented as pixels and each pixel has an associated value (e.g., computed nearfield value for nearfields).
[0044] From the mask nearfield 220 and the perturbed mask nearfield 222, thecurvilinear OPC engine 110 may determine a delta nearfield 224. The curvilinear OPC engine 110 may determine the delta nearfield 224 as a difference between the mask nearfield 220 computed for the curvilinear mask 210 and the perturbed mask nearfield 222 computed for the perturbed mask 212. As the perturbed mask 212 may have asingle perturbed vertex in this ^^th iteration, the difference between the mask nearfield220 and the perturbed mask nearfield 222 may be limited in scope, e.g., proximate tolocations surrounding the perturbed ^^th vertex.
[0045] Also in support of curvilinear OPC, the curvilinear OPC engine 110 mayconvolve the mask nearfield 220, the delta nearfield 224, or both with TCCkernels 228. The TCC kernels 228 may be any suitable set of transmittance correlation coefficient kernels that characterize various properties of light transmission. For instance, the TCCkernels 228 may be in the form of a set of images that are convolution kernels that specify mathematical characteristics (or representations) of a physical scanner and exposure system used for circuit fabrications. In that regard, the TCC kernels 228 may support the measurement of light or exposure characteristics (e.g., intensity) at a wafer level, doing so for any given mask. By convolving a nearfield with the TCCkernels 228 (e.g., a moving integral), the curvilinear OPC engine 110 may generate e-fields, which may specify the electric field of a given nearfield after propagation from a given mask202403216 (e.g., the curvilinear mask 210 or the perturbed mask 212) through a scanner and to a wafer level. In the example of Figure 2, the curvilinear OPC engine 110 convolves the mask nearfield 220 with the TCC kernels 228 to produce the mask e-fields 230 for the mask nearfield 220. Also in Figure 2, the curvilinear OPC engine 110 convolves the delta nearfield 224 with the TCCkernels 228 to produce the delta e-fields 232. Note that convolution with each TCC kernel may result in a separate e-field. Thus, the greater the number of TCCkernels 228, the greater the number of e-field pixel arrays that the curvilinear OPC engine 110 may generate.
[0046] From the mask e-fields 230 and the delta e-fields 232, the curvilinear OPCengine 110 may compute the e-field products 234. The curvilinear OPC engine 110 may do so through any product function applied to the mask e-fields 230 and the delta e-fields 232. In some implementations, the curvilinear OPC engine 110 computes the e-field products 234 as the product of the e-fields 230 and the conjugate of the delta e-fields 232. Any suitable product function can be implemented, employed, used, configured, or accessed by the curvilinear OPC engine 110 to generate the e-field products 234 from the mask e-fields 230 and the delta e-fields 232. In generating the e-field products 234, the curvilinear OPC engine 110 may perform the product operation for each individual pixel of the mask e-fields 230 by a corresponding individual pixel of the delta e-fields 232, including a on a per specific TCC kernel. Thus, the e-field products 234 may include a number of pixel arrays equal to a number of TCCkernels used to convolve and generate the mask e-fields 230 and the delta e-fields 232. Through the e-field products 234, the curvilinear OPC engine 110 may constructa linear interact image (for this ^^th iteration), as described in greater detail below.
[0047] The curvilinear OPC engine 110 may also construct an aerial image for thecurvilinear mask 210. To do so, the curvilinear OPC engine 110 may generate e-field squares 240 from the mask e-fields 230. As the mask e-fields 230 may include complex numbers (e.g., pixel e-field values as complex numbers), the curvilinear OPC engine 110 may square the values of the mask e-fields 230 to represent the mask e- fields 230 with real numbers. In some implementations, the curvilinear OPC engine 110 may generate the e-field squares 240 as the normalized square (also referred to as “norm squared”) of the mask e-fields 230. The normalized square may be computed by multiplying a complex number by its complex conjugate, and the curvilinear OPC engine 110 may compute values for the e-field products 240 for each202403216 individual pixel, and for each TCCconvolution. Thus, the e-field products 240 may include a number of pixel arrays equal to the number of TCC kernels used in the convolution steps above.
[0048] The curvilinear OPC engine 110 may construct an aerial image for acurvilinear mask 210 by summing the individual pixel values of each pixel array of the e-field products 240, shown in Figure 2 as the aerial image 250. To illustrate, for a pixel (0,0) of the aerial image 250, the curvilinear OPC engine 110 may sum the value of pixel (0,0) for each pixel array of the e-field products 240. If five (5) different TCCkernels were used in the convolution step, then the e-field squares 240 may include five (5) different pixel arrays, one for each convolution kernel. In such an example, the curvilinear OPC engine 110 may sum corresponding five (5) pixel values from the pixel arrays of the e-field products 240 (e.g., for pixel (0,0) of each of the e-field squares 240) to generate the respective pixel value for the aerial image 250 (e.g., for pixel (0,0) of the aerial image 250). In such a manner, the curvilinear OPC engine 110 may compute pixel values for each pixel of an aerial image 250 and thus construct the aerial image 250 as a pixel array. Each pixel value in the aerial image 250 may provide an intensity value of light at a respective location at a wafer level, with each location represented by a pixel and its associated pixel value (e.g., light intensity).
[0049] Although the example in Figure 2 is shown for a ^^th iteration, note that thecurvilinear OPC engine 110 need not construct the aerial image 250 more than once. This may be the case since the curvilinear mask 210 may remain constant for each iteration for a cross-MEEF matrix generation process. Thus, the aerial image 250 generated from the mask nearfield 220, mask e-fields 220, and e-field squares 240 for the curvilinear mask 210 may remain constant as well between the various iterations. As such, the curvilinear OPC engine 110 may construct the aerial image 250 at any time, for example, in a first iteration, prior to any vertex perturbations, etc. In a similar manner, the curvilinear OPC engine 110 need only determine the mask nearfield 220, the mask e-fields, and e-field squares 240 once (as opposed to every iteration), as such values will be consistent for the curvilinear mask 210 through each different iteration.
[0050] In each iteration, the curvilinear OPC engine 110 may construct a linearinteract image for the iteration, such as the linear interact image 260 shown in Figure2. For the ^^th iteration, the curvilinear OPC engine 110 may construct a ^^th linear202403216interact image for perturbation of a ^^th vertex of the curvilinear mask 210. To constructthe linear interact image 260, the curvilinear OPC engine 110 may sum the pixel values of the e-field products 234, which were computed from the mask e-fields 230 and the delta e-fields 232. The curvilinear OPC engine 110 may do so for corresponding pixels of the various pixel arrays of the e-field products 234, with a number of pixel arrays (and summed corresponding pixels) equal to a number of TCCkernels used in the convolution step. In some implementations, the curvilinear OPC engine 110 may compute a pixel value for the linear interact image 260 as two times the sum of the real number component of the sum of the corresponding pixels of the e-field products 234. In such a manner, the curvilinear OPC engine 110 may construct a linear interact image 260, e.g., computing pixel values on a pixel-by-pixel basis from the e-field products 234. The linear interact image 260 may indicate, represent, or otherwisespecify a linear component of the interaction effect of the ^^th vertex perturbation forthe curvilinear mask 210.
[0051] Through linear interact images iteratively constructed for each vertexperturbation from the curvilinear mask 210 as well as through the constructed aerial image 250, the curvilinear OPC engine 110 may construct a cross-MEEF matrix for the curvilinear mask 210. In some examples, the curvilinear OPC engine 110 may construct a Jacobian matrix from which the curvilinear OPC engine 110 can derive a cross-MEEF matrix. To illustrate, the curvilinear OPC engine 110 may evaluate the linear interact image 260 at a set of wafer evaluation points, which may be preconfigured or user-specified. Then, the curvilinear OPC engine 110 may divide the evaluated points of the linear interact image 260 by the perturbation amountapplied to the ^^th vertex for this ^^th iteration. The resultant set of values may form amatrix column 270 for this ^^th iteration. Through various iterations of vertexperturbation, the curvilinear OPC engine 110 may generate a respective matrix column for each iteration. Then, the curvilinear OPC engine 110 may combine (e.g., concatenate) each of the generated matrix columns (including matrix column 270 forthis ^^th iteration) to form the Jacobian matrix 272.
[0052] The curvilinear OPC engine 110 may construct a cross-MEEF matrix for theJacobian matrix 272. To do so, the curvilinear OPC engine 110 may determine the image slope of each of the wafer evaluation points from the aerial image 250. As each pixel in the aerial image 250 may specify an intensity value, the aerial image 250 can202403216 be understood or mapped as a 3D surface. Image slope at a given wafer evaluation point (e.g., which may be mapped to a particular pixel location) can be calculated based on a slope of the 3D surface with respect to a reference point and / or direction. Accordingly, the curvilinear OPC engine 110 may determine the image slopes 280for the wafer evaluation points. Then, the curvilinear OPC engine 110 may divide each row of the Jacobian matrix 272 by the respective image slope of the image slopes 280 that corresponds to the wafer evaluation point of the row. Doing so may produce a cross-MEEF matrix for the curvilinear mask 210.
[0053] The curvilinear OPC engine 110 may thus construct a cross-MEEF matrix fora curvilinear mask 210, doing so in any of the ways described herein (and in any combination thereof). Figure 2 provides example features of an iteration of a cross- MEEF matrix construction process that the curvilinear OPC engine 110 may perform in support of cross-MEEF matrix construction for curvilinear masks. In some implementations, the curvilinear OPC engine 110 may perform multiple iterations to construct the cross-MEEF matrix, e.g., by perturbing a different vertex in the curvilinear mask for each different iteration. By performing a number of iterations equal to the number of vertices that form a curvilinear mask, the curvilinear OPC engine 110 may comprehensively determine linear interaction effects of individual vertex displacements and capture such interaction effects in the constructed cross-MEEF matrix and / or Jacobian matrix.
[0054] Performing full iterations of the cross-MEEF construction process for everyvertex of a curvilinear mask may not be viable in certain resource or time-limited design contexts. The curvilinear OPC engine 110 may flexibly implement any suitable adaptations to any step of or iteration of any cross-MEEF matrix construction process described herein, e.g., for any of the various steps described in Figure 2. As an illustrative example, the curvilinear OPC engine 110 may combine and simplify determination of the perturbed mask nearfield 222 and the delta nearfield 224 into a characteristic function for a set of points (e.g., pixels) or triangles. Doing so may reduce the computational strain and processing requirements to determine, specify, or represent the delta nearfield 224. As another illustrative example, the curvilinear OPC engine 110 may use a selected subset of transmission kernels for the TCCkernels 228. For some implementations, a comprehensive or complete set of TCC kernels may include several transmission kernels to mathematically represent light propagation202403216 properties. The curvilinear OPC engine 110 may limit the number of TCCkernels used (e.g., a first few, such as first four (4) of a full transmission kernel set) in order to reduce computing latency and computational strain.
[0055] As yet another illustrative example, the curvilinear OPC engine 110 mayflexibly adapt steps for construction of the linear interact image 260 to improve computational efficiency. For instance, the curvilinear OPC engine 110 may combine (or replace) any number of steps performed on the perturbed mask nearfield 222 to produce the linear interact image 260, including determination of the delta nearfield 224, convolution of the delta nearfield 224 with the TCC kernels 228 to produce the delta e-fields 232, and generation of the e-field products 234. In such an example, the curvilinear OPC engine 110 may instead construct the linear interact image 260 forthis ^^th iteration by directly convolving the ^^th perturbed mask nearfield 222 with a pre-determined kernel function. Examples of such a pre-determined kernel function may include a 2D delta-function or characteristic function of a set of points (e.g., pixels) or triangles, a 2D Gaussian function or a revolving top-hat function, or a pre-fitted linear combination of one or more TCCkernel (or functions thereof), e.g., the real part of the first TCC kernel or the real part of a select subset or all of the TCC kernels.
[0056] As described herein, the curvilinear OPC engine 110 may supportconstruction of cross-MEEF matrices through iterative perturbation of vertices of a curvilinear mask. The example of Figure 2 provides an example implementation that may be focused on constructing a linear interact image based on a delta nearfield. In other examples, the curvilinear OPC engine 110 may construct a cross-MEEF matrix based on a comparison between aerial images of the curvilinear mask and a perturbed mask. Example features of such techniques are described next with reference to Figure 3.
[0057] Figure 3 shows another example flow for generation of a cross-MEEF matrixaccording to the present disclosure. The example of Figure 3 may provide an alternative technique to construct a Jacobian matrix or cross-MEEF matrix ascompared to Figure 2, though also in an iterative manner through perturbation of a ^^thvertex for a ^^th iteration of the cross-MEEF matrix generation process.
[0058] In the example of Figure 3, the curvilinear OPC engine 110 may, for a givencurvilinear mask, construct an aerial image for the curvilinear mask. In a giveniteration, the curvilinear OPC engine 110 may perturb a ^^th vertex of the given202403216 curvilinear mask and construct an aerial image for the perturbed mask, referred to herein as a perturbed aerial image. Then, the curvilinear OPC engine 110 may compare the constructed perturbed aerial image with the aerial image for the curvilinear mask, determine differences based on the perturbed vertex, and a generate a column of the Jacobian matrix or cross-MEEF matrix accordingly. Each perturbationof a different ^^th vertex and aerial image comparison at wafer evaluation points mayproduce a ^^th column of a Jacobian matrix, and the curvilinear OPC engine 110 mayform a Jacobian matrix by combining the produced columns from perturbing the various vertices that form the given curvilinear mask. In that regard, the curvilinear OPC engine 110 may perturb each vertex of the given curvilinear mask, computed aerial image differences for each iteration may produce a separate Jacobian matrix column, and the curvilinear OPC engine 110 may form the Jacobian matrix through combining each separately produced column for each vertex perturbation. From the Jacobian matrix, the curvilinear OPC engine 110 may construct the cross-MEEF matrix for the given curvilinear mask.
[0059] To illustrate through Figure 3, the curvilinear OPC engine 110 may access acurvilinear mask 210, e.g., in a consistent manner as Figure 2. The curvilinear mask 210 may be represented as a set of vertices that define a mask, such as polygonvertices, e.g., ^^ = {^^^^ ∶ ^^ = 1, ⋯ , ^^}. As noted herein, the curvilinear OPC engine110 may specify, represent, or set a directional vector ^^k for each vertex ^^k, pointingoutwards from the polygon (e.g., normal to the polygon in an outward direction at eachvertex ^^k). For example, the directional vector ^^k can be copied from the site assignedto the wafer target point ^^k, or can coincide with the angular bisector of the angleconformed from ^^k and its preceding and succeeding vertices. A mask perturbationcan be made by the curvilinear OPC engine 110 by moving each of the polygonvertices ^^k along ^^k. Thus, the curvilinear OPC engine 110 may perturb a ^^th vertexof the curvilinear mask 210 by moving the vertex along a directional vector ^^k definedfor vertex by a distance unit. The distance unit (also referred to as perturbation distance) may be pre-configured (e.g., via user input, as a default distance value, or in any other suitable manner).
[0060] As noted herein, the curvilinear OPC engine 110 may compare the perturbedaerial images constructed for each iteration with an aerial image for the curvilinear mask 210. Thus, the curvilinear OPC engine 110 may construct an aerial image for202403216 the curvilinear mask 210, e.g., in a consistent manner as described for Figure 2. In that regard, the curvilinear OPC engine 110 may determine a mask nearfield 220 for the curvilinear mask 210, convolve the mask nearfield 220 with TCC kernels 228 to determine the mask e-fields 230, and generate the e-field squares 240 from the mask e-fields 230. Then, the curvilinear OPC engine 110 may construct the aerial image 250 from the e-field squares 240. As noted herein, the curvilinear OPC engine 110 may generate the aerial image 250 for the curvilinear mask 210 prior to any vertexperturbation iterations, during a first perturbation iteration (e.g., ^^ =1), or at any othersuitable time.
[0061] In a ^^th iteration, the curvilinear OPC engine 110 may construct a perturbedaerial image to compare with the aerial image 250 for the curvilinear mask 210. Indoing so, the curvilinear OPC engine 110 may perturb the ^^th vertex of the curvilinearmask 210 to form a perturbed mask 212, which may differ from the curvilinear mask210 by movement of the ^^th vertex along the directional vector ^^k by a distance unit.The curvilinear OPC engine 110 may then determine a nearfield for the perturbed mask 212, doing so in any suitable manner and in any way described herein. In Figure 3, the curvilinear OPC engine 110 determines the perturbed mask nearfield 222 for the perturbed mask 212, e.g., in a consistent manner as described in Figure 2. Then, the curvilinear OPC engine 110 may convolve the perturbed mask nearfield 222 with the TCCkernels 228 to generate the perturbed e-fields 330.
[0062] The curvilinear OPC engine 110 may generate perturbed e-field squares 340from the perturbed e-fields 330, doing so with a consistent process that the curvilinear OPC engine 110 used to generate the e-field squares 240 from the mask e-fields for the curvilinear mask 210. As the perturbed e-fields 330 may include complex numbers (e.g., pixel e-field values as complex numbers), the curvilinear OPC engine 110 may square the values of the perturbed e-fields 330 to represent the perturbed e-fields 330 with real numbers. In some implementations, the curvilinear OPC engine 110 may generate the perturbed e-field squares 340 as the normalized square (also referred to as “norm squared”) of the perturbed e-fields 330. The normalized square may be computed by multiplying a complex number by its complex conjugate, and the curvilinear OPC engine 110 may compute values for the perturbed e-field products 340 for each individual pixel, and for each TCCconvolution. Thus, the perturbed e-field products 340 may include a number of pixel arrays equal to the number of TCCkernels202403216 used in the convolution steps above, similar as with the e-field squares 240 for the curvilinear mask 240.
[0063] In this ^^th iteration, the curvilinear OPC engine 110 may construct a ^^thperturbed aerial image, shown in Figure 3 as the perturbed aerial image 350. The curvilinear OPC engine 110 may do so, for example, by summing the individual pixel values of each pixel array of the perturbed e-field products 340. The curvilinear OPC engine 110 may construct the perturbed aerial image 350 in a consistent manner as the aerial image 250, allowing for a comparison between consistently constructed aerial images for different masks. Through such a comparison, the curvilinear OPCengine 110 may determine the impact / interaction effect of the perturbed ^^th vertex,and represent such an interaction effect as a column of the Jacobian matrix and / or cross-MEEF matrix. In the example of Figure 3, the curvilinear OPC engine 110 determines a difference between the aerial image 250 and the perturbed aerial image 350 at a set of wafer evaluation points, and quantifies (or otherwise represents) such interaction effects in a matrix column 370. Thus, each iteration of the cross-MEEFconstruction process may generate a ^^th column in the Jacobian matrix 372. Thecurvilinear OPC engine 110 may construct a cross-MEEF matrix from the Jacobian matrix 372, e.g., in a consistent manner as described herein.
[0064] Accordingly, in any of the ways described herein, the curvilinear OPC engine110 may construct a cross-MEEF matrix for a curvilinear mask. Through iterative perturbations of individual vertices that form the curvilinear mask, the curvilinear OPC engine 110 may determine interaction effects, represent such interaction effects in matrix columns, and concatenate the columns to form a Jacobian matrix or cross- MEEF matrix (which can be generated through image slopes of the aerial image of the curvilinear mask, as detailed herein). Whether linear effects of vertex perturbations are determined through generation of linear interact images or comparison with perturbed aerial images, cross-MEEF matrix generation can be supported by the curvilinear OPC technology of the present disclosure.
[0065] The curvilinear OPC engine 110 may support any number of OPC processesor operations through a constructed cross-MEEF matrix. Any suitable use of the cross-MEEF matrix in OPC contexts for curvilinear masks is contemplated herein. For example, the cross-MEEF matrix may be used in matrix or model-based OPC processes through which incremental mask changes made to curvilinear masks are202403216 made with a goal of minimizing EPE. Any OPC process or operation that utilizes a cross-MEEF matrix is contemplated herein and supported by the curvilinear OPC technology of the present disclosure. Accordingly, the curvilinear OPC engine 110 may construct or otherwise access cross-MEEF matrices in support of curvilinear OPC.
[0066] Figure 4 shows an example of logic 400 that a system may implement tosupport cross-MEEF-based OPC for curvilinear masks. 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 curvilinear OPC engine 110, through which the computing system 100 may perform or execute the logic 400 as a method to support cross-MEEF-based OPC for curvilinear masks. The following description of the logic 400 is provided using the curvilinear OPC engine 110 as an example implementation. However, other implementation options by computing systems are possible.
[0067] In implementing the logic 400, the curvilinear OPC engine 110 may access acurvilinear mask (402) as well as access a cross-MEEF matrix for the curvilinear mask(404). The curvilinear mask may be represented through a set of vertices and thecross-MEEF matrix may specify EPE changes to the set of vertices of the curvilinear mask when a given vertex of the set of vertices of the curvilinear mask is moved by a distance unit. In implementing the logic 400, the curvilinear OPC engine 110 may also perform an OPC operation using the cross-MEEF matrix (406). Any suitable OPC operation is contemplated herein.
[0068] The logic 400 shown in Figure 4 provides an illustrative example by which acomputing system 100 may support or implement cross-MEEF-based OPC for curvilinear masks according to the present disclosure. Additional or alternative steps in the logic 400 are contemplated herein, including according to any of the various features described herein for the curvilinear OPC engine 110.
[0069] Figure 5 shows an example of a computing system 500 that supports cross-MEEF-based OPC for curvilinear masks. The computing system 500 may include a processor 510, which may take the form of a single or multiple processors. The processor(s) 510 may include a central processing unit (CPU), microprocessor, or any hardware device suitable for executing instructions stored on a machine-readable202403216 medium. The computing system 500 may include a machine-readable medium 520. The machine-readable medium 520 may take the form of any non-transitory electronic, magnetic, optical, or other physical storage device that stores executable instructions, such as the curvilinear OPC instructions 522 shown in Figure 5. As such, the machine- readable medium 520 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.
[0070] The computing system 500 may execute instructions stored on the machine-readable medium 520 through the processor 510. Executing the instructions (e.g., the curvilinear OPC instructions 522) may cause the computing system 500 to perform or implement any of the curvilinear OPC technology described herein, including according to any aspect of the curvilinear OPC engine 110.
[0071] For example, execution of the curvilinear OPC instructions 522 by theprocessor 510 may cause the computing system 500 to perform the curvilinear OPC features described herein, including to access a curvilinear mask and a cross-MEEF matrix for the curvilinear mask. The curvilinear mask may be represented through aset of vertices and the cross-MEEF matrix may specify EPE changes to the set ofvertices of the curvilinear mask when a given vertex of the set of vertices of the curvilinear mask is moved by a distance unit. Execution of the curvilinear OPC instructions 522 may also cause the computing system 500 to perform an OPC operation using the cross-MEEF matrix. Any suitable OPC operation is contemplated herein.
[0072] Any combination of the curvilinear OPC technology as described herein maybe implemented via the curvilinear OPC instructions 522.
[0073] The systems, methods, devices, and logic described above, including thecurvilinear OPC 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 curvilinear OPC 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 as202403216 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 curvilinear OPC engine 110.
[0074] The processing capability of the systems, devices, and engines describedherein, including the curvilinear OPC 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).
[0075] While various examples and features have been described above, manymore implementations are possible.
Claims
202403216 CLAIMS1. A method comprising:by a computing system: accessing a curvilinear mask, wherein the curvilinear mask is represented through a set of vertices; accessing a cross-mask error enhancement factor (MEEF) matrix for the curvilinear mask, wherein the cross-MEEF matrix specifies edge placement error (EPE) changes to the set of vertices of the curvilinear mask when a given vertex of the set of vertices of the curvilinear mask is moved by a distance unit; and performing an optical proximity correction (OPC) operation using the cross- MEEF matrix.
2. The method of claim 1, wherein accessing the cross-MEEF matrix comprisesconstructing the cross-MEEF matrix, including by iteratively perturbing a different vertex of the set of vertices by the distance unit for each given iteration and determining interaction effects caused by the perturbing for each given iteration.
3. The method of claim 2, wherein constructing the cross-MEEF matrix furthercomprises determining the interaction effects at a set of wafer evaluation points for each iteration, and concatenating the determined interaction effects from each given to form a Jacobian matrix.
4. The method of claim 3, further comprising constructing the cross-MEEF matrixfrom the Jacobian matrix.
5. The method of any of claims 2-4, wherein constructing the cross-MEEF matrixfurther comprises, for each given iteration: generating a linear interact image based on a delta nearfield, wherein the delta nearfield is determined as difference between a mask nearfield determine for the curvilinear mask and a perturbed mask nearfield determined for a perturbed mask with a perturbed vertex for the given iteration; and comparing the linear interact image with an aerial image constructed for the curvilinear mask to determine the interaction effects for the given iteration.2024032166. The method of any of claims 2-4, wherein constructing the cross-MEEF matrixfurther comprises, for each given iteration: generating a perturbed aerial image based on a perturbed mask with a perturbed vertex for the given iteration; and comparing the perturbed aerial image with an aerial image constructed for the curvilinear mask to determine the interaction effects for the given iteration.
7. The method of claims 6 or 7, wherein constructing the cross-MEEF matrixcomprises constructing the aerial image prior to or during a first iteration of vertex perturbation.
8. A system comprising:a processor; and a non-transitory machine-readable medium comprising instructions that, when executed by the processor, cause a computing system to: access a curvilinear mask, wherein the curvilinear mask is represented through a set of vertices; access a cross-mask error enhancement factor (MEEF) matrix for the curvilinear mask, wherein the cross-MEEF matrix specifies edge placement error (EPE) changes to the set of vertices of the curvilinear mask when a given vertex of the set of vertices of the curvilinear mask is moved by a distance unit; and perform an optical proximity correction (OPC) operation using the cross-MEEF matrix.
9. The system of claim 8, wherein the instructions, when executed, cause thecomputing system to access the cross-MEEF matrix by constructing the cross-MEEF matrix, including by iteratively perturbing a different vertex of the set of vertices by the distance unit for each given iteration and determining interaction effects caused by the perturbing for each given iteration.202403216 10. The system of claim 9, wherein the instructions, when executed, cause the computing system to construct the cross-MEEF matrix further by determining the interaction effects at a set of wafer evaluation points for each iteration, and concatenating the determined interaction effects from each given iteration to form a Jacobian matrix.
11. The system of claim 10, wherein the instructions, when executed, cause the computing system to construct the cross-MEEF matrix from the Jacobian matrix.
12. The system of any of claims 9-11, wherein the instructions, when executed, cause the computing system to construct the cross-MEEF matrix further by, for each given iteration: generating a linear interact image based on a delta nearfield, wherein the delta nearfield is determined as difference between a mask nearfield determine for the curvilinear mask and a perturbed mask nearfield determined for a perturbed mask with a perturbed vertex for the given iteration; and comparing the linear interact image with an aerial image constructed for the curvilinear mask to determine the interaction effects for the given iteration.
13. The system of any of claims 9-11, wherein the instructions, when executed, cause the computing system to construct the cross-MEEF matrix further by, for each given iteration: generating a perturbed aerial image based on a perturbed mask with a perturbed vertex for the given iteration; and comparing the perturbed aerial image with an aerial image constructed for the curvilinear mask to determine the interaction effects for the given iteration.
14. The system of claims 12 or 13, wherein the instructions, when executed, cause the computing system to construct the cross-MEEF matrix by constructing the aerial image prior to or during a first iteration of vertex perturbation.202403216 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
Edge fragment correlation determination for optical proximity correction
US20130198698A1
Method and apparatus for cost function based simultaneous OPC and SBAR optimization
US20140359543A1
Obtaining a mask using a cost function gradient from a jacobian matrix generated from a perturbation look-up table
US20210294207A1
Mask process correction methods and methods of fabricating lithographic mask using the same
US20230074316A1
Optical proximity correction for free form shapes
US20230408901A1
Cited By
Method and device for generating curvilinear mask pattern
CN121411066A