AIDT 온디바이스 STEM 반도체 초미세 EUV 펠리클(Pellicle) 인장력 및 열응력 팽창 능동 보정 서보 제어기

400W 고출력 EUV 노광 열변형 억제, 탄소나노튜브/실리사이드 극박막 프리텐션 서보, 10,000Hz C# 엔진

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) 처짐 지배방정식은 다음과 같습니다:

\[ D \nabla^4 w - h \left( \sigma_{xx} \frac{\partial^2 w}{\partial x^2} + 2 \sigma_{xy} \frac{\partial^2 w}{\partial x \partial y} + \sigma_{yy} \frac{\partial^2 w}{\partial y^2} \right) = q(x, y) - \rho h \frac{\partial^2 w}{\partial t^2} \]

고진공 환경에서 400W EUV 펄스 흡열 및 슈테판-볼츠만 흑체 복사 냉각 열평형 방정식은 다음과 같습니다:

\[ \rho C_p h \frac{\partial T}{\partial t} = k h \nabla^2 T + \alpha_{EUV} \Phi_{EUV}(x, y, t) - 2 \epsilon_{rad} \sigma_{SB} (T^4 - T_{env}^4) \]

열팽창에 의한 응력 이완 보정을 위해 프레임에 요구되는 동적 인장 응력 식은 다음과 같습니다:

\[ \sigma_{net}(T) = \sigma_{preload} - \frac{E_{film}}{1 - \nu_{film}} \alpha_{CTE} (T_{film} - T_0) \ge \sigma_{min} \quad (\approx 20\text{ MPa}) \]

처짐 \(w_{sag}\) 50nm 이하 억제를 위한 4축 피에조 프레임 보정 변위 서보 방정식은 다음과 같습니다:

\[ \Delta u_{frame} = K_p \cdot (w_{sag} - w_{target}) + K_i \int (w_{sag} - w_{target}) dt + K_T \cdot (T_{film} - T_0) \]

3. 실시간 C# 서보 제어기 구현

다음은 레이저 변위 센서와 고속 적외선 센서의 출력을 10,000Hz 주기로 샘플링하여 4축 피에조 장력 프레임을 독립 미세 제어하는 0-Alloc C# 엔진 구현체입니다:

EuvPellicleTensionServoEngine.cs
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 노광 장비 펠리클 실시간 처짐 방지 능동 텐셔너 제어기 실장.