optical proximity correction opc
**Optical Proximity Correction (OPC): Mathematical Modeling**
**1. The Physical Problem**
When projecting mask patterns onto a silicon wafer using light (typically 193nm DUV or 13.5nm EUV), several phenomena distort the image:
- **Diffraction**: Light bending around features near or below the wavelength
- **Interference**: Constructive/destructive wave interactions
- **Optical aberrations**: Lens imperfections
- **Resist effects**: Photochemical behavior during exposure and development
- **Etch loading**: Pattern-density-dependent etch rates
**OPC pre-distorts the mask** so that after all these effects, the printed pattern matches the design intent.
**Key Parameters**
| Parameter | Typical Value | Description |
|-----------|---------------|-------------|
| $\lambda$ | 193 nm (DUV), 13.5 nm (EUV) | Exposure wavelength |
| $NA$ | 0.33 - 1.35 | Numerical aperture |
| $k_1$ | 0.25 - 0.40 | Process factor |
| Resolution | $\frac{k_1 \lambda}{NA}$ | Minimum feature size |
**2. Hopkins Imaging Model**
The foundational mathematical framework for **partially coherent lithographic imaging** comes from Hopkins' theory (1953).
**Aerial Image Intensity**
The aerial image intensity at position $\mathbf{r} = (x, y)$ is given by:
$$
I(\mathbf{r}) = \iiint\!\!\!\iint TCC(\mathbf{f}_1, \mathbf{f}_2) \cdot M(\mathbf{f}_1) \cdot M^*(\mathbf{f}_2) \cdot e^{2\pi i (\mathbf{f}_1 - \mathbf{f}_2) \cdot \mathbf{r}} \, d\mathbf{f}_1 \, d\mathbf{f}_2
$$
Where:
- $M(\mathbf{f})$ — Fourier transform of the mask transmission function
- $M^*(\mathbf{f})$ — Complex conjugate of $M(\mathbf{f})$
- $TCC$ — Transmission Cross Coefficient
- $\mathbf{f} = (f_x, f_y)$ — Spatial frequency coordinates
**Transmission Cross Coefficient (TCC)**
The TCC encodes the optical system characteristics:
$$
TCC(\mathbf{f}_1, \mathbf{f}_2) = \iint J(\mathbf{f}) \cdot H(\mathbf{f} + \mathbf{f}_1) \cdot H^*(\mathbf{f} + \mathbf{f}_2) \, d\mathbf{f}
$$
Where:
- $J(\mathbf{f})$ — Source (illumination) intensity distribution (mutual intensity at mask)
- $H(\mathbf{f})$ — Pupil function of the projection lens
- $H^*(\mathbf{f})$ — Complex conjugate of pupil function
**Pupil Function**
For an ideal circular aperture:
$$
H(\mathbf{f}) = \begin{cases}
1 & \text{if } |\mathbf{f}| \leq \frac{NA}{\lambda} \\
0 & \text{otherwise}
\end{cases}
$$
With aberrations included:
$$
H(\mathbf{f}) = P(\mathbf{f}) \cdot e^{i \cdot W(\mathbf{f})}
$$
Where $W(\mathbf{f})$ is the wavefront aberration function (Zernike polynomial expansion).
**3. SOCS Decomposition**
**Sum of Coherent Systems**
To make computation tractable, the TCC (a Hermitian matrix when discretized) is decomposed via **eigenvalue decomposition**:
$$
TCC(\mathbf{f}_1, \mathbf{f}_2) = \sum_{n=1}^{N} \lambda_n \cdot \phi_n(\mathbf{f}_1) \cdot \phi_n^*(\mathbf{f}_2)
$$
Where:
- $\lambda_n$ — Eigenvalues (sorted in descending order)
- $\phi_n(\mathbf{f})$ — Eigenvectors (orthonormal kernels)
**Image Computation**
This allows the image to be computed as a **sum of coherent images**:
$$
I(\mathbf{r}) = \sum_{n=1}^{N} \lambda_n \left| \mathcal{F}^{-1}\{\phi_n \cdot M\} \right|^2
$$
Or equivalently:
$$
I(\mathbf{r}) = \sum_{n=1}^{N} \lambda_n \left| I_n(\mathbf{r}) \right|^2
$$
Where each coherent image is:
$$
I_n(\mathbf{r}) = \mathcal{F}^{-1}\{\phi_n(\mathbf{f}) \cdot M(\mathbf{f})\}
$$
**Practical Considerations**
- **Eigenvalue decay**: $\lambda_n$ decay rapidly; typically only 10–50 terms needed
- **Speedup**: Converts one $O(N^4)$ partially coherent calculation into $\sim$20 $O(N^2 \log N)$ FFT operations
- **Accuracy**: Trade-off between number of terms and simulation accuracy
**4. OPC Problem Formulation**
**Forward Problem**
Given mask $M(\mathbf{r})$, predict wafer pattern $W(\mathbf{r})$:
$$
M \xrightarrow{\text{optics}} I(\mathbf{r}) \xrightarrow{\text{resist}} R(\mathbf{r}) \xrightarrow{\text{etch}} W(\mathbf{r})
$$
**Mathematical chain:**
1. **Optical Model**: $I = \mathcal{O}(M)$ — Hopkins/SOCS imaging
2. **Resist Model**: $R = \mathcal{R}(I)$ — Threshold or convolution model
3. **Etch Model**: $W = \mathcal{E}(R)$ — Etch bias and loading
**Inverse Problem (OPC)**
Given target pattern $T(\mathbf{r})$, find mask $M(\mathbf{r})$ such that:
$$
W(M) \approx T
$$
**This is fundamentally ill-posed:**
- Non-unique: Many masks could produce similar results
- Nonlinear: The imaging equation is quadratic in mask transmission
- Constrained: Mask must be manufacturable
**5. Edge Placement Error Minimization**
**Objective Function**
The standard OPC objective minimizes **Edge Placement Error (EPE)**:
$$
\min_M \mathcal{L}(M) = \sum_{i=1}^{N_{\text{edges}}} w_i \cdot \text{EPE}_i^2
$$
Where:
$$
\text{EPE}_i = x_i^{\text{printed}} - x_i^{\text{target}}
$$
- $x_i^{\text{printed}}$ — Actual edge position after lithography
- $x_i^{\text{target}}$ — Desired edge position from design
- $w_i$ — Weight for edge $i$ (can prioritize critical features)
**Constraints**
Subject to mask manufacturability:
- **Minimum feature size**: $\text{CD}_{\text{mask}} \geq \text{CD}_{\min}$
- **Minimum spacing**: $\text{Space}_{\text{mask}} \geq \text{Space}_{\min}$
- **Maximum jog**: Limit on edge fragmentation complexity
- **MEEF constraint**: Mask Error Enhancement Factor within spec
**Iterative Edge-Based OPC Algorithm**
The classic algorithm moves mask edges iteratively:
$$
\Delta x^{(n+1)} = \Delta x^{(n)} - \alpha \cdot \text{EPE}^{(n)}
$$
Where:
- $\Delta x$ — Edge movement from original position
- $\alpha$ — Damping factor (typically 0.3–0.8)
- $n$ — Iteration number
**Convergence criterion:**
$$
\max_i |\text{EPE}_i| < \epsilon \quad \text{or} \quad n > n_{\max}
$$
**Gradient Computation**
Using the chain rule:
$$
\frac{\partial \text{EPE}}{\partial m} = \frac{\partial \text{EPE}}{\partial I} \cdot \frac{\partial I}{\partial m}
$$
Where $m$ represents mask parameters (edge positions, segment lengths).
At a contour position where $I = I_{th}$:
$$
\frac{\partial x_{\text{edge}}}{\partial m} = -\frac{1}{|
abla I|} \cdot \frac{\partial I}{\partial m}
$$
The **image log-slope (ILS)** is a key metric:
$$
\text{ILS} = \frac{1}{I} \left| \frac{\partial I}{\partial x} \right|_{I = I_{th}}
$$
Higher ILS → better process latitude, lower EPE sensitivity.
**6. Resist Modeling**
**Threshold Model (Simplest)**
The resist develops where intensity exceeds threshold:
$$
R(\mathbf{r}) = \begin{cases}
1 & \text{if } I(\mathbf{r}) > I_{th} \\
0 & \text{otherwise}
\end{cases}
$$
The printed contour is the $I_{th}$ isoline.
**Variable Threshold Resist (VTR)**
The threshold varies with local context:
$$
I_{th}(\mathbf{r}) = I_{th,0} + \beta_1 \cdot \bar{I}_{\text{local}} + \beta_2 \cdot
abla^2 I + \beta_3 \cdot (
abla I)^2 + \ldots
$$
Where:
- $I_{th,0}$ — Base threshold
- $\bar{I}_{\text{local}}$ — Local average intensity (density effect)
- $
abla^2 I$ — Laplacian (curvature effect)
- $\beta_i$ — Fitted coefficients
**Compact Phenomenological Models**
For OPC speed, empirical models are used instead of physics-based resist simulation:
$$
R(\mathbf{r}) = \sum_{j=1}^{N_k} w_j \cdot \left( K_j \otimes g_j(I) \right)
$$
Where:
- $K_j$ — Convolution kernels (typically Gaussians):
$$K_j(\mathbf{r}) = \frac{1}{2\pi\sigma_j^2} \exp\left( -\frac{|\mathbf{r}|^2}{2\sigma_j^2} \right)$$
- $g_j(I)$ — Nonlinear functions: $I$, $I^2$, $\log(I)$, $\sqrt{I}$, etc.
- $w_j$ — Fitted weights
- $\otimes$ — Convolution operator
**Physical Interpretation**
| Kernel Width | Physical Effect |
|--------------|-----------------|
| Small $\sigma$ | Optical proximity effects |
| Medium $\sigma$ | Acid/base diffusion in resist |
| Large $\sigma$ | Long-range loading effects |
**Model Calibration**
Parameters are fitted to wafer measurements:
$$
\min_{\theta} \sum_{k=1}^{N_{\text{test}}} \left( \text{CD}_k^{\text{measured}} - \text{CD}_k^{\text{model}}(\theta) \right)^2 + \lambda \|\theta\|^2
$$
Where:
- $\theta = \{w_j, \sigma_j, \beta_i, \ldots\}$ — Model parameters
- $\lambda \|\theta\|^2$ — Regularization term
- Test structures: Lines, spaces, contacts, line-ends at various pitches/densities
**7. Inverse Lithography Technology**
**Full Optimization Formulation**
ILT treats the mask as a continuous optimization variable (pixelated):
$$
\min_{M} \mathcal{L}(M) = \| W(M) - T \|^2 + \lambda \cdot \mathcal{R}(M)
$$
Where:
- $W(M)$ — Predicted wafer pattern
- $T$ — Target pattern
- $\mathcal{R}(M)$ — Regularization for manufacturability
- $\lambda$ — Regularization weight
**Cost Function Components**
**Pattern Fidelity Term:**
$$
\mathcal{L}_{\text{fidelity}} = \int \left( W(\mathbf{r}) - T(\mathbf{r}) \right)^2 d\mathbf{r}
$$
Or in discrete form:
$$
\mathcal{L}_{\text{fidelity}} = \sum_{\mathbf{r} \in \text{grid}} \left( W(\mathbf{r}) - T(\mathbf{r}) \right)^2
$$
**Regularization Terms**
**Total Variation** (promotes piecewise constant, sharp edges):
$$
\mathcal{R}_{TV}(M) = \int |
abla M| \, d\mathbf{r} = \int \sqrt{\left(\frac{\partial M}{\partial x}\right)^2 + \left(\frac{\partial M}{\partial y}\right)^2} \, d\mathbf{r}
$$
**Curvature Penalty** (promotes smooth contours):
$$
\mathcal{R}_{\kappa}(M) = \oint_{\partial M} \kappa^2 \, ds
$$
Where $\kappa$ is the local curvature of the mask boundary.
**Minimum Feature Size** (MRC - Mask Rule Check):
$$
\mathcal{R}_{MRC}(M) = \sum_{\text{violations}} \text{penalty}(\text{violation severity})
$$
**Sigmoid Regularization** (push mask toward binary):
$$
\mathcal{R}_{\text{binary}}(M) = \int M(1-M) \, d\mathbf{r}
$$
**Level Set Formulation**
Represent the mask boundary implicitly via level set function $\phi(\mathbf{r})$:
- Inside chrome: $\phi(\mathbf{r}) < 0$
- Outside chrome: $\phi(\mathbf{r}) > 0$
- Boundary: $\phi(\mathbf{r}) = 0$
**Evolution equation:**
$$
\frac{\partial \phi}{\partial t} = -v \cdot |
abla \phi|
$$
Where velocity $v$ is derived from the cost function gradient:
$$
v = -\frac{\delta \mathcal{L}}{\delta \phi}
$$
**Advantages:**
- Naturally handles topological changes (features splitting/merging)
- Implicit curvature regularization available
- Well-studied numerical methods
**Optimization Algorithms**
Since the problem is **non-convex**, various methods are used:
1. **Gradient Descent with Momentum:**
$$
M^{(n+1)} = M^{(n)} - \eta
abla_M \mathcal{L} + \mu \left( M^{(n)} - M^{(n-1)} \right)
$$
2. **Conjugate Gradient:**
$$
d^{(n+1)} = -
abla \mathcal{L}^{(n+1)} + \beta^{(n)} d^{(n)}
$$
3. **Adam Optimizer:**
$$
m_t = \beta_1 m_{t-1} + (1-\beta_1) g_t
$$
$$
v_t = \beta_2 v_{t-1} + (1-\beta_2) g_t^2
$$
$$
M_{t+1} = M_t - \eta \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}
$$
4. **Genetic Algorithms** (for discrete/combinatorial aspects)
5. **Simulated Annealing** (for escaping local minima)
**8. Source-Mask Optimization**
**Joint Optimization**
SMO optimizes both illumination source $S$ and mask $M$ simultaneously:
$$
\min_{S, M} \sum_{j \in \text{PW}} w_j \cdot \| W(S, M, \text{condition}_j) - T \|^2
$$
**Source Parameterization**
**Pixelated Source:**
$$
S = \{s_{ij}\} \quad \text{where } s_{ij} \in [0, 1]
$$
Each pixel in the pupil plane is a free variable.
**Parametric Source:**
- Annular: $(R_{\text{inner}}, R_{\text{outer}})$
- Quadrupole: $(R, \theta, \sigma)$
- Freeform: Spline or Zernike coefficients
**Alternating Optimization**
**Algorithm:**
```
Initialize: S⁰, M⁰
for k = 1 to max_iter:
# Step 1: Fix S, optimize M (standard OPC)
M^k = argmin_M L(S^(k-1), M)
# Step 2: Fix M, optimize S
S^k = argmin_S L(S, M^k)
# Check convergence
if |L^k - L^(k-1)| < tolerance:
break
```
**Note:** Step 2 is often convex in $S$ when $M$ is fixed (linear in source pixels for intensity-based metrics).
**Mathematical Form for Source Optimization**
When mask is fixed, the image is linear in source:
$$
I(\mathbf{r}; S) = \sum_{ij} s_{ij} \cdot I_{ij}(\mathbf{r})
$$
Where $I_{ij}$ is the image contribution from source pixel $(i,j)$.
This makes source optimization a **quadratic program** (convex if cost is convex in $I$).
**9. Process Window Optimization**
**Multi-Condition Optimization**
Real manufacturing has variations. Robust OPC optimizes across a **process window (PW)**:
$$
\min_M \sum_{j \in \text{PW}} w_j \cdot \mathcal{L}(M, \text{condition}_j)
$$
**Process Window Dimensions**
| Dimension | Typical Range | Effect |
|-----------|---------------|--------|
| Focus | $\pm 50$ nm | Defocus blur |
| Dose | $\pm 3\%$ | Threshold shift |
| Mask CD | $\pm 2$ nm | Feature size bias |
| Aberrations | Per-lens | Pattern distortion |
**Worst-Case (Minimax) Formulation**
$$
\min_M \max_{j \in \text{PW}} \text{EPE}_j(M)
$$
This is more conservative but ensures robustness.
**Soft Constraints via Barrier Functions**
$$
\mathcal{L}_{PW}(M) = \sum_j w_j \cdot \text{EPE}_j^2 + \mu \sum_j \sum_i \max(0, |\text{EPE}_{ij}| - \text{spec})^2
$$
**Process Window Metrics**
**Common Process Window (CPW):**
$$
\text{CPW} = \text{Focus Range} \times \text{Dose Range}
$$
Where all specs are simultaneously met.
**Exposure Latitude (EL):**
$$
\text{EL} = \frac{\Delta \text{Dose}}{\text{Dose}_{\text{nom}}} \times 100\%
$$
**Depth of Focus (DOF):**
$$
\text{DOF} = \text{Focus range where } |\text{EPE}| < \text{spec}
$$
**10. Stochastic Effects (EUV)**
At EUV wavelengths (13.5 nm), **photon counts are low** and shot noise becomes significant.
**Photon Statistics**
Number of photons per pixel follows **Poisson distribution**:
$$
P(n | \bar{n}) = \frac{\bar{n}^n e^{-\bar{n}}}{n!}
$$
Where:
$$
\bar{n} = \frac{E \cdot A \cdot \eta}{\frac{hc}{\lambda}}
$$
- $E$ — Exposure dose (mJ/cm²)
- $A$ — Pixel area
- $\eta$ — Quantum efficiency
- $\frac{hc}{\lambda}$ — Photon energy
**Signal-to-Noise Ratio**
$$
\text{SNR} = \frac{\bar{n}}{\sqrt{\bar{n}}} = \sqrt{\bar{n}}
$$
For reliable imaging, need $\text{SNR} > 5$, requiring $\bar{n} > 25$ photons/pixel.
**Line Edge Roughness (LER)**
Random edge fluctuations characterized by:
- **3σ LER**: $3 \times \text{standard deviation of edge position}$
- **Correlation length** $\xi$: Spatial extent of roughness
**Power Spectral Density:**
$$
\text{PSD}(f) = \frac{2\sigma^2 \xi}{1 + (2\pi f \xi)^{2\alpha}}
$$
Where $\alpha$ is the roughness exponent (typically 0.5–1.0).
**Stochastic Defect Probability**
Probability of a stochastic failure (missing contact, bridging):
$$
P_{\text{fail}} = 1 - \prod_{\text{features}} (1 - p_i)
$$
For rare events, approximately:
$$
P_{\text{fail}} \approx \sum_i p_i
$$
**Stochastic-Aware OPC Objective**
$$
\min_M \mathbb{E}[\text{EPE}^2] + \lambda_1 \cdot \text{Var}(\text{EPE}) + \lambda_2 \cdot P_{\text{fail}}
$$
**Monte Carlo Simulation**
For stochastic modeling:
1. Sample photon arrival: $n_{ij} \sim \text{Poisson}(\bar{n}_{ij})$
2. Simulate acid generation: Proportional to absorbed photons
3. Simulate diffusion: Random walk or stochastic PDE
4. Simulate development: Threshold with noise
5. Repeat $N$ times, compute statistics
**11. Machine Learning Approaches**
**Neural Network Forward Models**
Train networks to approximate expensive simulations:
$$
\hat{I} = f_\theta(M) \approx I_{\text{optical}}(M)
$$
**Architectures:**
- **CNN**: Convolutional neural networks for local pattern effects
- **U-Net**: Encoder-decoder for image-to-image translation
- **GAN**: Generative adversarial networks for realistic image generation
**Training:**
$$
\min_\theta \sum_{k} \| f_\theta(M_k) - I_k^{\text{simulation}} \|^2
$$
**End-to-End ILT with Deep Learning**
Directly predict corrected masks:
$$
\hat{M}_{\text{OPC}} = G_\theta(T)
$$
**Training data:** Pairs $(T, M_{\text{optimal}})$ from conventional ILT.
**Loss function:**
$$
\mathcal{L} = \| W(G_\theta(T)) - T \|^2 + \lambda \| G_\theta(T) - M_{\text{ref}} \|^2
$$
**Hybrid Approaches**
Combine ML speed with physics accuracy:
1. **ML Initialization**: $M^{(0)} = G_\theta(T)$
2. **Physics Refinement**: Run conventional OPC starting from $M^{(0)}$
**Benefits:**
- Faster convergence (good starting point)
- Physics ensures accuracy
- ML handles global pattern context
**Neural Network Architectures for OPC**
| Architecture | Use Case | Advantages |
|--------------|----------|------------|
| CNN | Local correction prediction | Fast inference |
| U-Net | Full mask prediction | Multi-scale features |
| GAN | Realistic mask generation | Sharp boundaries |
| Transformer | Global context | Long-range dependencies |
| Physics-Informed NN | Constrained prediction | Respects physics |
**12. Computational Complexity**
**Scale of Full-Chip OPC**
- **Features per chip**: $10^9 - 10^{10}$
- **Evaluation points**: $\sim 10^{12}$ (multiple points per feature)
- **Iterations**: 10–50 per feature
- **Optical simulations**: $O(N \log N)$ per FFT
**Complexity Analysis**
**Single feature OPC:**
$$
T_{\text{feature}} = O(N_{\text{iter}} \times N_{\text{SOCS}} \times N_{\text{grid}} \log N_{\text{grid}})
$$
**Full chip:**
$$
T_{\text{chip}} = O(N_{\text{features}} \times T_{\text{feature}})
$$
**Result:** Hours to days on large compute clusters.
**Acceleration Strategies**
**Hierarchical Processing:**
- Identify repeated cells (memory arrays, standard cells)
- Compute OPC once, reuse for identical instances
- Speedup: $10\times - 100\times$ for regular designs
**GPU Parallelization:**
- FFTs parallelize well on GPUs
- Convolutions map to tensor operations
- Multiple features processed simultaneously
- Speedup: $10\times - 50\times$
**Approximate Models:**
- **Kernel-based**: Pre-compute influence functions
- **Variable resolution**: Fine grid only near edges
- **Neural surrogates**: Replace simulation with inference
**Domain Decomposition:**
- Divide chip into tiles
- Process tiles in parallel
- Handle tile boundaries with overlap or iteration
**13. Mathematical Toolkit Summary**
| Domain | Techniques |
|--------|-----------|
| **Optics** | Fourier transforms, Hopkins theory, SOCS decomposition, Abbe imaging |
| **Optimization** | Gradient descent, conjugate gradient, level sets, genetic algorithms, simulated annealing |
| **Linear Algebra** | Eigendecomposition (TCC), sparse matrices, SVD, matrix factorization |
| **PDEs** | Diffusion equations (resist), level set evolution, Hamilton-Jacobi |
| **Statistics** | Poisson processes, Monte Carlo, stochastic simulation, Bayesian inference |
| **Machine Learning** | CNNs, GANs, U-Net, transformers, physics-informed neural networks |
| **Computational Geometry** | Polygon operations, fragmentation, contour extraction, Boolean operations |
| **Numerical Methods** | FFT, finite differences, quadrature, interpolation |
**Equations Quick Reference**
**Hopkins Imaging**
$$
I(\mathbf{r}) = \iiint\!\!\!\iint TCC(\mathbf{f}_1, \mathbf{f}_2) \cdot M(\mathbf{f}_1) \cdot M^*(\mathbf{f}_2) \cdot e^{2\pi i (\mathbf{f}_1 - \mathbf{f}_2) \cdot \mathbf{r}} \, d\mathbf{f}_1 \, d\mathbf{f}_2
$$
**SOCS Image**
$$
I(\mathbf{r}) = \sum_{n=1}^{N} \lambda_n \left| \mathcal{F}^{-1}\{\phi_n \cdot M\} \right|^2
$$
**EPE Minimization**
$$
\min_M \sum_{i} w_i \left( x_i^{\text{printed}} - x_i^{\text{target}} \right)^2
$$
**ILT Cost Function**
$$
\min_{M} \| W(M) - T \|^2 + \lambda \cdot \mathcal{R}(M)
$$
**Level Set Evolution**
$$
\frac{\partial \phi}{\partial t} = -v \cdot |
abla \phi|
$$
**Poisson Photon Statistics**
$$
P(n | \bar{n}) = \frac{\bar{n}^n e^{-\bar{n}}}{n!}
$$