v0.10 — 모델과 검증 상세
이 문서는 구현 조건과 수치 검증을 확인하려는 독자를 위한 상세 기록입니다. 처음 사용하는 경우 데모와 방법론부터 읽어 주세요. 여기의 그래프는 공개 TT04 예제 또는 합성 데이터의 모델 계산 결과이며, 실측 웨이퍼 결과가 아닙니다.
목차
- 1. 변경 사항과 후보 우선순위
- 2. 운영 설정과 기준 패턴
- 3. 상대 도즈와 threshold
- 4. 조명·픽셀·계산 비용 비교
- 5. 최종 설정의 제한된 ambit 검증
- 6. 0.1 nm DBU와 contour 처리
- 7. 대규모 contour 처리 비용
- 8. Focus–dose / Process Window
- 9. 해석 범위와 회귀 검증
- 10. 데이터 다운로드
1. 후보 우선순위: 작은 CD → 큰 후보 면적
Width와 space 모두 measured_dbu 오름차순 → area_dbu2 내림차순 → 기존 bbox 기반 deterministic tie-breaker 순입니다. CD가 없는 후보는 마지막입니다. 면적은 원래 배선 polygon의 면적이 아니라 병합된 DRC 후보 마커의 면적입니다.
| 비교 | 먼저 선택되는 후보 |
|---|---|
| Width: CD 80 / 큰 면적 vs CD 90 / 작은 면적 | CD 80 |
| Space: CD 80 / 작은 면적 vs CD 90 / 큰 면적 | CD 80 |
| 같은 CD, 서로 다른 면적 | Width·space 모두 큰 면적 |
| 측정 CD 없음 | 측정 가능한 후보 뒤 |
기존 같은-CD width의 작은 면적 우선 정책에서는 폭 170 nm, 평행 겹침 길이 5 nm의 작은 코너 조각이 먼저 선택되었습니다. 큰 면적 우선으로 바꾸면 첫 후보는 (145.615, 108.800) um의 긴 선이며, geometry CD는 170 nm, 후보 면적은 1.38550 um²입니다. 원시 width 후보 1,929개는 모두 유지합니다. 짧은 겹침을 일괄 제외하는 실험 규칙은 채택하지 않았습니다.
후보 내부 앵커는 기존 최소 거리 edge-pair 선택 방식을 유지합니다. 면적 우선은 line-end 검출기가 아니므로 긴 직선 중앙도 선택됩니다. 후보 순서와 앵커 선택은 별개이며, 후보 ID는 정렬 변경 시 달라질 수 있습니다. 별도의 calibration reference는 hotspot 최소 CD 요약에서 제외합니다.

그림은 각 앵커 주변 1.28 um를 확대한 것입니다. 후보 면적에는 그림 밖 부분도 포함됩니다. 주황색 십자는 앵커이며, 마스크 위의 붉은색 계열은 계산한 에어리얼 이미지입니다. 하늘색·흰색·연두색 윤곽은 relative dose −10% / nominal / +10%입니다. 배경의 색상 스케일은 시각화용이며 정량 윤곽은 raw intensity로 계산합니다.
상위 Space 후보 6개

Space에도 동일한 정렬과 Speed 광학 조건, 고정 기준 보정을 적용한 상위 6개 결과입니다. 첫 세 후보는 서로 다른 좌표의 반복 패턴이며 중복 이미지가 아닙니다. 각 패널의 gap은 입력 도형의 측정 간격입니다.
2. 운영 설정과 기준 패턴
| Setting | Speed / demo | Internal / evaluation |
|---|---|---|
| Source | dense7: 29 points | dense11: 81 points |
| Wavelength / NA / sigma | 248 nm / 0.68 / 0.60 | Same |
| Pixel / inner ROI | 10 nm / 2.56 um | Same |
| Ambit / raster | 0.32 um / 320 x 320 | Same |
| Geometry DBU | 0.1 nm | 0.1 nm |
| Filled contours | d = 0.9 / 1.0 / 1.1 | d = 0.9 / 1.0 / 1.1 |
| Detailed Region screening | Off; opt-in nominal dose | All three preview doses |
조명은 conventional circular illumination입니다. 내부 평가의 균형형으로 dense11, Render 데모의 속도형으로 dense7을 사용합니다. 두 preset의 결과가 서로 동등하다는 뜻은 아닙니다. Dense 숫자는 source 격자 설정이며 실제 원형 pupil 안의 source point 수와 다릅니다.
기준은 TT04 PWM layer 67/20의 dense 170 nm line과 인접 간격, 중심 (147.770, 108.460) um입니다. 입력 hash와 layer가 일치할 때만 등록 기준을 사용합니다. 다른 입력에는 기준 위치·측정 방향·설계 CD가 필요하며 형상과 일치하는지 확인합니다. 후보 두 곳과 기준 한 곳을 사용하는 아래 검증 snapshot은 기본 웹 요청의 후보 다섯 곳과 구분됩니다.
3. 상대 도즈, T0, D0와 Tnorm
원리는 D0 × d × I(x,y,z) >= T0이며, 단위 dose당 aerial image에서는 I >= T_eff = T0 / (D0 × d) = Tnorm / d로 계산합니다.
| 기호 | 의미 |
|---|---|
| I | Clear-field 기준의 raw 단위-dose aerial intensity |
| T0 | 고정된 모델 resist threshold; 여기서는 0.30 |
| D0 | 설계 anchor CD를 맞추는 nominal dose-to-size scale |
| d | D0 대비 상대 도즈; 0.90 / 1.00 / 1.10 |
| Tnorm | T0 / D0, nominal image에 적용하는 보정된 threshold |
| T_eff | Tnorm / d, 각 상대 도즈의 effective image threshold |
Dose가 바뀌어도 T0 자체가 바뀌는 것은 아닙니다. 높은 dose는 낮은 T_eff와 대응합니다. Dose ±10%는 threshold ±0.1이 아닙니다. 이 모델의 결과를 결정하는 비율은 T0/D0이며, 두 값이 서로 독립적인 실측 물성으로 식별된 것은 아닙니다. 실제 mJ/cm² 노광량이라고 주장하지 않습니다.
기존 PW의 FocusDoseSweepConfig, effective_threshold() 및 dose-to-size 보정을 재사용합니다. Best focus에서 coarse search 후 필요한 bracket을 refinement하며, 광학 이미지를 다시 계산하지 않고 threshold와 고정 측정 단면의 교차점을 갱신합니다. Nominal fit 허용 오차는 0.1 nm입니다. 실패하거나 허용 오차 밖이면 정량 결과를 사용 불가로 표시하고 임의 threshold로 대체하지 않습니다.
Dose contour, CD/space, PW는 raw clear-field-relative intensity를 사용합니다. ROI마다 peak 또는 min/max로 정규화하면 focus에 따른 peak/contrast 손실과 dose의 의미를 잃으므로 계산에 사용하지 않습니다. 화면 배경의 표시용 정규화와 정량 계산은 분리합니다. 과거 0.2 / 0.3 / 0.4 threshold 그림은 legacy 시각화이며 현재 dose 조건으로 해석하지 않습니다.
| Preset | Relative dose d | T0 | D0 | T_eff | Reference CD (nm) |
|---|---|---|---|---|---|
| speed | 0.90 | 0.30 | 0.82421875 | 0.404423 | 152.019 |
| speed | 1.00 | 0.30 | 0.82421875 | 0.363981 | 170.018 |
| speed | 1.10 | 0.30 | 0.82421875 | 0.330892 | 184.658 |
| internal | 0.90 | 0.30 | 0.84765625 | 0.393241 | 152.296 |
| internal | 1.00 | 0.30 | 0.84765625 | 0.353917 | 169.979 |
| internal | 1.10 | 0.30 | 0.84765625 | 0.321743 | 184.384 |
0.018 / 0.021 nm는 설계 CD에 모델을 맞춘 잔차이며 실제 인쇄 정확도나 10 nm pixel보다 높은 광학 해상도를 증명하지 않습니다. 광학·격자·기준 패턴이 달라지면 보정도 달라질 수 있습니다. 실제 공정 모델 calibration은 여러 패턴의 실측 CD와 focus–exposure 데이터를 활용합니다. Mack et al., Improved Methods for Lithography Model Calibration.


4. 조명·픽셀·계산 비용: 설정 선택에 사용한 비교
아래 표와 두 그림은 raster 경계 안정화 전의 탐색 실험 기록입니다. 현재 preset의 Tnorm이나 최종 정확도 표로 재사용하지 않습니다. 당시 동일 anchor, 2.56 um ROI, focus 0/+0.2 um, dose 0.9/1/1.1, 중앙 width와 인접 두 space를 비교했습니다. Baseline Tnorm은 고정했으며 각 case를 다시 fitting하여 오차를 숨기지 않았습니다. 기준은 dense31 / 5 nm / ambit 0.64 um의 유한 수치 계산이며 물리적 정답은 아닙니다.
| Case | Source points | Pixel nm | Ambit um | Raster | Max CD delta vs ref (nm) | Max edge delta (nm) | Optics s | Runtime ratio | Traced peak MiB |
|---|---|---|---|---|---|---|---|---|---|
| baseline | 29 | 10 | 0.32 | 320 x 320 | 7.108 | 9.004 | 0.133 | 1.00 | 18.3 |
| source11 | 81 | 10 | 0.32 | 320 x 320 | 1.094 | 5.427 | 0.352 | 2.64 | 18.3 |
| source13 | 113 | 10 | 0.32 | 320 x 320 | 0.480 | 5.990 | 0.481 | 3.61 | 18.3 |
| pixel20 | 29 | 20 | 0.32 | 160 x 160 | 22.771 | 12.235 | 0.014 | 0.10 | 4.6 |
| pixel5 | 29 | 5 | 0.32 | 640 x 640 | 7.974 | 4.292 | 0.778 | 5.84 | 73.3 |
| ambit16 | 29 | 10 | 0.16 | 288 x 288 | 9.366 | 8.610 | 0.099 | 0.74 | 15.1 |
| ambit50 | 29 | 10 | 0.5 | 356 x 356 | 3.562 | 7.745 | 0.298 | 2.24 | 22.4 |
| ambit64 | 29 | 10 | 0.64 | 384 x 384 | 3.423 | 6.903 | 0.226 | 1.70 | 25.9 |
| joint13 | 113 | 5 | 0.64 | 768 x 768 | 0.816 | 0.919 | 3.811 | 28.63 | 103.5 |
| joint21 | 317 | 5 | 0.64 | 768 x 768 | 1.235 | 0.701 | 13.014 | 97.78 | 103.6 |
| joint31 | 709 | 5 | 0.64 | 768 x 768 | 0.000 | 0.000 | 28.561 | 214.59 | 103.7 |
| quality13 | 113 | 10 | 0.64 | 384 x 384 | 1.133 | 5.518 | 1.328 | 9.98 | 25.9 |


Best-focus optics는 같은 계측 방식으로 세 번 측정한 median입니다. Traced peak는 Python 추적 할당이며 전체 process peak나 서버 메모리가 아닙니다. Source point 수 × raster pixel 수는 workload proxy이지 FLOP 수가 아닙니다. Pixel을 바꾸면 형상의 rasterization도 달라지므로 조명계 차이와 구분해야 합니다.
20 nm는 빠르지만 이 단면에서 큰 차이가 있었고, 5 nm는 계산량 증가가 컸습니다. 10 nm를 운영 균형점으로 유지합니다. Dense11은 내부 평가용 1순위, dense7은 데모 속도용 2순위입니다. Dense13의 과거 component 수 차이를 중앙 패턴 품질 저하로 해석한 주장은 후속 확인으로 철회했습니다. 이 표만으로 source 수의 보편적인 최적값이나 수렴을 주장하지 않습니다.
summary.csv · costs.csv · measurements.csv
5. 최종 설정의 제한된 ambit 확인
아래는 raster 경계 처리 안정화 후 다시 계산한 결과입니다. 같은 dense anchor와 고정 단면, pixel 10 nm, ROI 2.56 um, 동일 optics를 사용합니다. Focus 0/+0.2 um와 dose 0.9/1/1.1에서 중앙 width와 양옆 space를 비교했습니다. 같은 pixel에서는 master raster crop을 사용하고 inner 좌표와 mask 일치를 확인했습니다.
Dense7과 dense11은 각자 0.32 um에서 nominal fitting합니다. Dense11 ambit 0.32 / 0.50 / 0.64 비교에서는 0.32의 Tnorm을 고정합니다. 재보정으로 ambit 차이를 숨기지 않습니다. 표는 조건 전체에서의 최대 절대 차이이며 edge는 고정 단면의 한쪽 교차점 차이입니다. 전체 contour EPE가 아닙니다.
| Comparison | Max CD/space difference (nm) | Max gauge-edge difference (nm) |
|---|---|---|
| dense7_32 vs dense11_32 | 6.495 | 3.660 |
| dense11_50 vs dense11_32 | 4.166 | 2.184 |
| dense11_64 vs dense11_32 | 2.812 | 1.937 |
| dense11_50 vs dense11_64 | 5.446 | 3.920 |

차이는 단조롭게 줄지 않으며 1 nm 이하 수렴을 입증하지 못했습니다. 0.32 um는 제한된 study/demo의 비용을 고려한 유지값입니다. 0.64 um도 이 비교의 가장 큰 context일 뿐 정답이 아닙니다. Ambit 변화는 FFT domain과 frequency sampling도 바꿉니다.
Ambit은 anchor 중심으로부터의 거리가 아니라 inner ROI 바깥에 추가하는 여유 폭입니다. 중앙 anchor에서 경계까지는 1.28 + 0.32 = 1.60 um입니다. 0.61 λ/NA ≈ 0.2225 um는 Airy 첫 영점 반경 척도이며, 0.32 um가 그 약 1.44배인 것은 사후 비율입니다. 1.44를 물리적 최적화 근거로 제시하지 않습니다. 10 nm grid에서 32 pixel의 여유와 320 × 320 raster가 되는 편의성은 있지만, 이것만으로 수렴을 보장하지 않습니다.
안정화된 경계 처리에서 점검한 dense7/11/13 조건은 각각 inner component 6개와 중앙 strip 3개를 보였습니다. 동일 개수가 전체 topology 일치를 증명하지는 않습니다. 데이터의 NILS는 고정 단면 proxy로만 남겨두며 일반적인 품질 순위로 사용하지 않습니다.

measurements.csv · deltas.csv · costs.csv · local_connectivity.csv · calibration.json
6. 0.1 nm DBU와 float contour → pya Region
입력은 물리 크기와 hierarchy를 보존하면서 내부 0.1 nm DBU로 변환합니다. 광학 intensity와 contour 추출은 float로 계산하고, 채워진 contour의 외곽·hole 관계를 보존해 pya Region으로 변환합니다. DBU는 좌표 표현 격자이며 10 nm optical pixel 또는 공정 정확도와 다릅니다. 입력에 없던 정보를 0.1 nm로 새로 만들어내는 것은 아닙니다.
같은 contour를 float / pya 1 nm / pya 0.1 nm로 비교한 72개 고정 단면 결과입니다.
| Representation | Max CD difference from float (nm) | Max gauge-edge difference (nm) |
|---|---|---|
| Float | 0 | 0 |
| pya 1 nm | 0.670 | 0.463 |
| pya 0.1 nm | 0.064 | 0.043 |

개방 contour는 sampled-domain 경계로 연결하며 임의 chord로 닫지 않습니다. Hole과 island를 보존합니다. Region width/space 검사는 전체 sampled domain에서 Euclidean metric, ignore-angle 90°, shielding을 적용하고 인위적인 domain 경계를 rule-distance guard로 제외합니다. 유지한 edge pair를 inner ROI 안으로 제한하고 marker polygon은 병합합니다. 이는 fixed-gauge CD와 별도 검사입니다.
DBU 변경 중 드러난 raster 경계 민감도는 정수 pixel 중심 주변 1e-8 pixel 이내의 수치 잡음만 snap하여 안정화했습니다. Hole을 polygon별로 적용한 뒤 union하므로 다른 polygon의 island를 지우지 않습니다. TT04 입력을 1 nm / 0.1 nm로 표현한 mask는 일치했습니다. 이 수정 전 Tnorm은 현재 값으로 재사용하지 않습니다.
measurements.csv · conversion.csv
7. 대규모 contour 처리 비용
| Grid (nm; 0=float) | Vertices | Geometry (s) | pya DRC (s) | Process peak (MiB) |
|---|---|---|---|---|
| 0 | 112153 | 0.262 | N/A | 91.4 |
| 0.1 | 112153 | 0.257 | 27.684 | 345.2 |
| 1 | 112153 | 0.235 | 11.948 | 217.0 |
| 0 | 28505 | 0.060 | N/A | 52.1 |
| 0.1 | 28505 | 0.095 | 5.673 | 122.6 |
| 1 | 28505 | 0.098 | 2.937 | 97.7 |

동일 contour ring으로 float Shapely와 pya union/clip을 비교했습니다. DRC는 pya만 측정했으므로 float 대비 DRC 가속을 주장하지 않습니다. 0.1 nm는 짧은 edge와 pair를 더 유지하여 1 nm보다 비용이 큽니다. 표는 별도 process의 로컬 단일 실행이며 peak working set은 전체 process 메모리입니다. 추적 할당 peak나 Render 응답 시간과 혼용하지 않습니다. Full-chip 처리에는 제한된 tile/ROI 단위 실행과 marker 관리가 필요하며 아직 전 칩 규모 처리 능력을 입증한 것은 아닙니다.
8. 새 후보 순서의 Focus–dose / Process Window
새 정렬로 각 preset을 재실행했습니다. Focus −0.40…+0.40 um, 간격 0.05 um; relative dose 0.80…1.20, 간격 0.02입니다. 357조건 × 두 후보와 기준 패턴 = 1,071 측정 행입니다. 아래 nominal CD는 새 width 후보와 기존 space 후보의 고정 단면 값입니다.
| Preset | Width candidate CD (nm) | Space candidate gap (nm) | Reference CD (nm) |
|---|---|---|---|
| speed | 166.340 | 199.443 | 170.018 |
| internal | 170.490 | 194.369 | 169.979 |
| Preset | Conditions / rows | Local wall time (s) | Process peak (MiB) | Reference fit residual (nm) |
|---|---|---|---|---|
| speed | 357 / 1,071 | 16.78 | 371.9 | 0.018074 |
| internal | 357 / 1,071 | 57.08 | 484.8 | 0.021365 |
PW의 CD 허용 범위는 각 고정 gauge의 설계 target 대비 ±10%입니다. DoF와 exposure latitude는 이 이산 grid에서 조건을 통과한 구간으로 계산하며, grid 사이의 연속 공정 한계까지 검증한 것은 아닙니다.
speed


internal


이 예제의 common nominal-dose DoF는 두 preset 모두 0입니다. 기준 패턴의 nominal CD를 맞췄다고 모든 후보가 통과하거나 넓은 PW를 갖는 것은 아닙니다. Common PW 계산은 기록된 세 위치를 포함하지만 hotspot 최소 CD 요약은 reference를 제외합니다. Focus/dose에 따른 CD 변화는 의도한 응답이며 ambit 비교에서는 같은 focus/dose끼리만 비교해야 합니다.
위 시간은 새 후보 순서의 로컬 Windows 전체 분석 단일 실행입니다. 서버 성능 보증이 아닙니다. 기존 후보 순서의 Render 공개 예제 요청은 약 109.28초였으며, 새 정렬의 hosted benchmark로 재사용하지 않습니다. 새 로컬 결과의 기준-dose CSV는 기존 reference 값과 일치합니다.
9. 해석 범위와 회귀 검증
현재 mask는 polygon transmission=1, 배경=0입니다. 계산한 contour는 I >= T_eff의 고강도 영역입니다. PTD의 잔존 resist라고 해석하지 않습니다. PTD에서 opening과 연관 지을 수는 있지만 최종 배선과의 대응에는 후속 공정이 필요합니다. NTD/PTD 개발·식각·재료 stack을 모델링하지 않으며, layer 이름만으로 mask polarity나 실제 공정을 확정하지 않습니다. Mask를 반전하려면 optical image를 다시 계산해야 하며 1-I로 대체하지 않습니다.
- 112개 unit/regression test 통과: CD/면적 정렬, CD 없음 fallback, 짧은 구간 유지, 상대 dose 역비례, raw normalization 경계, calibration 실패, 기존 PW, DBU/hierarchy, hole/island, domain 및 export 검사.
- 새 Speed와 Internal 검토 GDS는 내부 0.1 nm DBU이며 원래 34개 layer의 물리 형상을 모두 보존합니다(empty XOR).
- Speed의 detailed Region screening은 기본 꺼짐이며 선택 시 nominal만 검사합니다. Internal은 세 dose를 검사합니다. 두 모드 모두 세 dose의 contour를 내보냅니다.
NOT_EVALUATED와 유효 domain 없음은 PASS가 아닙니다. Marker나 edge-pair 개수는 독립적인 불량 개수가 아닙니다.- 단일 dense reference와 제한된 gauge 검증이며 전체 contour EPE, 모든 패턴 수렴, 실제 scanner/resist 공정 calibration 또는 제조 signoff를 주장하지 않습니다.
- 공개 문서에는 개발 날짜·개인 경로를 싣지 않습니다. 재현에 필요한 광학 조건, 단위, 공개 패턴 좌표와 수치 측정만 유지합니다.
10. 데이터 다운로드
그림과 CSV는 위 각 평가 절에서 내려받을 수 있습니다. 아래 파일은 새 후보 순서로 생성한 앱 결과입니다. 모델 JSON에는 relative dose와 T_eff, reference 조건을 함께 남겨 threshold와 dose를 혼동하지 않도록 했습니다.
speed
- reference_dose.csv
- relative_dose_model.json
- focus_dose_measurements.csv
- contour_hotspots.json
- pya_native_combined_review.gds