1. 개요
2nm 이하 최첨단 반도체 양산의 핵심인 극자외선(EUV, 파장 13.5nm) 리소그래피 공정에서는 포토마스크를 부유 입자 오염으로부터 보호하기 위해 수십 나노미터 두께의 초박막 펠리클(Pellicle)을 장착합니다. 펠리클의 EUV 투과율을 90% 이상 확보하기 위해 탄소나노튜브(CNT)나 금속 실리사이드(MoSi, ZrSi) 등의 극박막 소재가 사용되나, 400W 이상으로 격상되는 고출력 EUV 펄스 빔 조사 시 펠리클 중심 온도는 600°C~1,000°C까지 급상승합니다. 이 열팽창에 의해 내부 인장력(Pre-tension)이 상실되면 박막이 처져(Sag) 진동이 발생하고, 마스크와의 간격 불균일로 인한 패턴 디포커스(Defocus) 및 박막 파단이 초래됩니다. 본 고에서는 간섭계 기반 처짐 센서와 적외선 고온계 데이터를 10,000Hz 주기로 분석하여 펠리클 지지 프레임 피에조 액추에이터를 정밀 구동하는 0-Alloc C# 엔진을 구현합니다.
2. 수학적 모델링 및 지배 방정식
2차원 등방성 탄성 극박막 대변형 폰 카르만(von Kármán) 처짐 지배방정식은 다음과 같습니다:
고진공 환경에서 400W EUV 펄스 흡열 및 슈테판-볼츠만 흑체 복사 냉각 열평형 방정식은 다음과 같습니다:
열팽창에 의한 응력 이완 보정을 위해 프레임에 요구되는 동적 인장 응력 식은 다음과 같습니다:
처짐 \(w_{sag}\) 50nm 이하 억제를 위한 4축 피에조 프레임 보정 변위 서보 방정식은 다음과 같습니다:
3. 실시간 C# 서보 제어기 구현
다음은 레이저 변위 센서와 고속 적외선 센서의 출력을 10,000Hz 주기로 샘플링하여 4축 피에조 장력 프레임을 독립 미세 제어하는 0-Alloc C# 엔진 구현체입니다:
using System;
using System.Runtime.CompilerServices;
namespace ZeliDesk.Stem.Semiconductor
{
public readonly ref struct PellicleSensorFrame
{
public readonly double PeakTemperatureCelsius;
public readonly double MeasuredSagNm;
public readonly double TargetSagNm;
public readonly double CurrentPretensionMpa;
public readonly double EuvSourcePowerWatts;
public PellicleSensorFrame(
double peakTemperatureCelsius,
double measuredSagNm,
double targetSagNm,
double currentPretensionMpa,
double euvSourcePowerWatts)
{
PeakTemperatureCelsius = peakTemperatureCelsius;
MeasuredSagNm = measuredSagNm;
TargetSagNm = targetSagNm;
CurrentPretensionMpa = currentPretensionMpa;
EuvSourcePowerWatts = euvSourcePowerWatts;
}
}
public ref struct PellicleControlCommand
{
public double PiezoDisplacementMicrons;
public double CommandedPretensionMpa;
public double SagErrorNm;
public bool IsSagTensionOptimal;
public bool IsThermalRuptureSafe;
}
public ref struct EuvPellicleTensionServoEngine
{
private const double BasePretensionMpa = 50.0;
private const double MinSafePretensionMpa = 20.0;
private const double MaxSafePretensionMpa = 180.0;
private readonly double _kpSag;
private readonly double _kiSag;
private readonly double _kThermal;
private readonly double _dt;
private double _sagErrorIntegral;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public EuvPellicleTensionServoEngine(double kpSag, double kiSag, double kThermal, double dt)
{
_kpSag = kpSag;
_kiSag = kiSag;
_kThermal = kThermal;
_dt = dt;
_sagErrorIntegral = 0.0;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ComputeTensionCompensation(in PellicleSensorFrame frame, out PellicleControlCommand cmd)
{
cmd = default;
double sagErr = frame.MeasuredSagNm - frame.TargetSagNm;
_sagErrorIntegral += sagErr * _dt;
_sagErrorIntegral = Math.Clamp(_sagErrorIntegral, -200.0, 200.0);
// Thermal stress relaxation feedforward
double deltaT = Math.Max(0.0, frame.PeakTemperatureCelsius - 25.0);
double thermalTensionAddMpa = deltaT * _kThermal;
// Feedback correction from sag measurement
double feedbackTensionMpa = (_kpSag * sagErr) + (_kiSag * _sagErrorIntegral);
double targetPretensionMpa = BasePretensionMpa + thermalTensionAddMpa + feedbackTensionMpa;
targetPretensionMpa = Math.Clamp(targetPretensionMpa, MinSafePretensionMpa, MaxSafePretensionMpa);
// Piezo displacement: approx 0.05 microns per MPa
double piezoDisp = (targetPretensionMpa - BasePretensionMpa) * 0.05;
piezoDisp = Math.Clamp(piezoDisp, 0.0, 10.0);
cmd.PiezoDisplacementMicrons = piezoDisp;
cmd.CommandedPretensionMpa = targetPretensionMpa;
cmd.SagErrorNm = sagErr;
cmd.IsSagTensionOptimal = Math.Abs(sagErr) <= 5.0 && targetPretensionMpa >= MinSafePretensionMpa;
cmd.IsThermalRuptureSafe = frame.PeakTemperatureCelsius <= 900.0 && targetPretensionMpa <= MaxSafePretensionMpa;
}
}
}
4. 교육 및 실무 적용 방안
- 한국방송통신대학교 나노공학/전자물리: 고온 박막 열탄성학, EUV 노광 광학계 왜곡 방지 및 나노 메카트로닉스 시뮬레이션 교구.
- 삼성전자 및 SK하이닉스 파운드리 R&D: High-NA EUV 노광 장비 펠리클 실시간 처짐 방지 능동 텐셔너 제어기 실장.