Resist / Lithography Capability Matrix¶
This document maps every resist and lithography forward-model implementation across the OpenLithoHub ecosystem, clarifying fidelity levels, parameter surfaces, and intended use cases so that contributors can choose the right backend and avoid accidental duplication.
| Implementation | Location | Fidelity | Key Parameters | Use Case |
|---|---|---|---|---|
apply_differentiable_resist |
openlithohub/_utils/resist_model.py |
Light | threshold, steepness, resist_diffusion_nm, quencher |
Built-in default for ILT/OPC optimization loops. Dispatches to sigmoid threshold or soft CAR model depending on whether diffusion/quencher are set. |
HopkinsSimulator |
openlithohub/simulators/hopkins_sim.py |
Medium | Hopkins SOCS kernels, partial coherence (sigma, sigma_inner), illumination shape, dose, threshold, resist_diffusion_nm, quencher, resist_backend |
Core lithography forward model. Bundled reference backend with full SOCS decomposition. Supports opt-in acid diffusion and DiffNano resist backend. |
CalibreSimulator |
openlithohub/simulators/calibre.py |
External | config.extra["calibre_home"], config.extra["runset"], config.extra["mock_mode"], dose, threshold |
Siemens EDA Calibre nmOPC adapter. Requires commercial toolchain + license; mock mode for testing. |
TachyonSimulator |
openlithohub/simulators/tachyon.py |
External | config.extra["tachyon_home"], config.extra["recipe"], config.extra["mock_mode"], dose, threshold |
ASML Brion Tachyon adapter. Requires commercial toolchain + license; mock mode for testing. |
DiffCFDLithoSimulator (Dill + Mack) |
openlithohub/plugins/diffcfd_process.py |
High | dill_A, dill_B, dill_C, r_max, r_min, mack_n, mack_a, gamma_solvent, thickness_m, residual_solvent, dev_time_s |
High-fidelity exposure + development chain via diffcfd plugin. Requires [diffcfd] extra. |
DiffNanoResistAdapter (CAR/PEB) |
openlithohub/plugins/diffnano_resist.py |
High | acid_diffusion_length_nm, development_contrast, threshold_dose, peb_diffusion_nm, pixel_size_nm |
High-fidelity chemically-amplified resist with acid diffusion + PEB via diffnano plugin. Requires [diffnano] extra. |
HopkinsLithoModel |
diffnano/solvers/litho.py |
Medium | wavelength_nm, na, sigma_source, n_kernels, pixel_size_nm, resist_threshold, resist_beta |
Hopkins PSF model in DiffNano. Functionally equivalent to OpenLithoHub's HopkinsSimulator for the PSF convolution + sigmoid resist path. See dedup note below. |
LithoSolver (Dill + Mack) |
diffcfd/solvers/litho.py |
High | dill_A, dill_B, dill_C, r_max, r_min, mack_n, mack_a, gamma_solvent |
Dill exposure + Mack development solver in DiffCFD. Wrapped by DiffCFDLithoSimulator in OpenLithoHub. |
DifferentiableResistModel |
diffnano/solvers/resist.py |
High | grid_shape, dl, acid_diffusion_length_nm, development_contrast, threshold_dose, peb_diffusion_nm |
Full CAR/PEB analytical model in DiffNano. Takes (H, W) grid shape and grid spacing dl (nm). Wrapped by DiffNanoResistAdapter in OpenLithoHub, which adds pixel_size_nm for nm-to-pixel conversion. |
Which Model Should I Use?¶
| Scenario | Recommended Model | Rationale |
|---|---|---|
| ILT gradient descent on 64x64 synthetic tiles | apply_differentiable_resist (Light) |
Fast, differentiable, no external dependencies. The scored leaderboard path uses this. |
| Mask optimization with realistic aerial images | HopkinsSimulator (Medium) |
Full SOCS decomposition with partial coherence. Still uses simple threshold resist. |
| Validation against commercial tool | CalibreSimulator or TachyonSimulator (External) |
Uses vendor forward simulator for ground-truth comparison. Requires commercial toolchain + license; mock_mode for CI testing. |
| Process-window analysis, CD prediction | DiffCFDLithoSimulator via [diffcfd] (High) |
Physics-based Dill exposure + Mack development. Models PAC bleaching, dissolution rate, residual solvent. Requires calibrated Dill/Mack parameters from the target process. |
| Chemically-amplified resist modeling | DiffNanoResistAdapter via [diffnano] (High) |
CAR acid diffusion + post-exposure bake + development contrast. Suitable for EUV CAR resists where acid diffusion dominates print fidelity. Parameters calibratable to SEM CD data. |
| Joint spin-coating + lithography co-optimization | DiffCFDLithoSimulator + DiffCFD spin-coating solver |
The only path that couples film thickness variation (from spin coating) into the exposure/development chain. |
| DiffNano-internal metalens with litho DFM | HopkinsLithoModel in DiffNano |
Uses simplified Gaussian PSF rather than full SOCS. Retained for DiffNano standalone workflows; prefer OpenLithoHub's HopkinsSimulator for ILT/OPC work. |
Important: Plugin backends (DiffCFD, DiffNano) produce non-comparable metric values. The scored leaderboard default remains HopkinsSimulator + CTR (threshold 0.225) without diffusion.
Fidelity Levels¶
- Light -- Sigmoid threshold with optional Gaussian acid diffusion. No physics-based exposure or dissolution model. Suitable for ILT gradient descent where speed matters more than absolute CD accuracy.
- Medium -- Hopkins/SOCS aerial image with physically correct partial coherence and dose scaling. Resist model is still a simple threshold or sigmoid. Good for mask-optimization loops that need realistic aerial images.
- High -- Full physics-based models (Dill exposure, Mack development, CAR acid diffusion + PEB). Suitable for process-window analysis, CD prediction, and joint process optimization.
- External -- Vendor simulator (Calibre nmOPC, ASML Tachyon). Highest fidelity but requires commercial toolchain + license. Mock mode available for API testing without the vendor binary.
Deduplication Notes¶
Hopkins / PSF Convolution¶
HopkinsLithoModel in DiffNano (diffnano/solvers/litho.py) implements the same PSF
convolution + sigmoid resist pipeline as OpenLithoHub's HopkinsSimulator +
apply_differentiable_resist. The DiffNano version uses a simplified Gaussian PSF
approximation rather than full SOCS decomposition. For new ILT/OPC work, prefer
OpenLithoHub's HopkinsSimulator which supports multiple illumination types and proper
SOCS kernel caching.
Dill / Mack Solvers¶
LithoSolver in DiffCFD is the canonical implementation. OpenLithoHub wraps it via
DiffCFDLithoSimulator (the adapter) and should not reimplement the physics.
CAR / PEB Resist Models¶
DifferentiableResistModel in DiffNano is the canonical implementation.
OpenLithoHub wraps it via DiffNanoResistAdapter and should not reimplement the physics.