AIDT 온디바이스 STEM 단일 광자 눈사태 광다이오드(SPAD) 지터(Jitter) 능동 켄칭(Active Quenching) 서보 엔진

가이거 모드 항복(Avalanche Breakdown), 50ps 초정밀 지터 보정, 애프터펄스 억제 10,000Hz C# 엔진

1. 개요

단일 광자 눈사태 광다이오드(Single-Photon Avalanche Diode, SPAD)는 항복 전압(\(V_{br}\)) 이상의 과전압(\(V_{ex}\)) 상태인 가이거 모드(Geiger-mode)에서 동작하여, 단 하나의 광자가 입사하더라도 거대한 전자-정공 쌍 눈사태 증폭 전류를 발생시키는 극한 감도 반도체 광검출기입니다. 그러나 눈사태 과정 중 반도체 격자 결함에 포획된 전하가 사후 방출되면서 허위 카운트를 유발하는 애프터펄싱(Afterpulsing) 현상과 온도 변화에 따른 항복 전압 드리프트로 인해 타이밍 지터(Timing Jitter)가 악화됩니다. 본 고에서는 1나노초 이내에 바이어스 전압을 급격히 강하시키는 능동 켄칭 회로(Active Quenching Circuit, AQC)와 열전 냉각기(TEC) 결합을 10,000Hz 0-Alloc C# 엔진으로 정밀 통제하는 서보 아키텍처를 구현합니다.

2. 수학적 모델링 및 지배 방정식

SPAD의 항복 전압 \(V_{br}(T)\)의 온도 의존성 및 과전압 \(V_{ex}\)에 따른 단일 광자 검출 확률(SPDE, \(\eta\))은 다음과 같습니다:

\[ V_{br}(T) = V_{br0} + \beta_{br} (T - T_0), \quad \eta(V_{ex}) = \eta_0 \left[ 1 - \exp\left( -\frac{V_{ex}}{V_{sat}} \right) \right] \]

애프터펄스 발생 확률 \(P_{ap}\)는 켄칭 후 불응 시간(Dead Time, \(\tau_d\))과 트랩 수명 \(\tau_{trap}\)에 지수함수적으로 반비례합니다:

\[ P_{ap}(\tau_d) = \sum_{k} A_k \exp\left( -\frac{\tau_d}{\tau_{trap,k}} \right) \]

타이밍 지터 FWHM \(\sigma_t \approx \frac{W_{dep}}{v_{sat}} \oplus \frac{C_j \sqrt{k_B T / C_j}}{I_{av}}\)를 50ps 이하로 유지하기 위해 과전압 \(V_{ex}\)를 0.01V 정밀도로 안정화하고 데드타임 \(\tau_d\)를 동적 제어하는 10,000Hz 서보 루프를 가동합니다.

3. 실시간 피드백 제어 아키텍처

graph TD A[TEC 냉각 -20도 유지 실리콘 나노 SPAD 센서] --> B[단일 광자 입사로 10^6 배율 가이거 눈사태 방전 개시] B --> C[초고속 비교기 컴퍼레이터로 눈사태 전두 에지 50ps 지터 검출] C --> D[1ns 이내 능동 켄칭 스위치 On 및 바이어스 Vbr 이하 강하] D --> E[전하 재결합 완료 후 프로그래머블 데드타임 복구 시퀀스] E --> F[암계수 DCR 및 애프터펄스 콘트라스트 실시간 통계 수집] F --> G[10,000Hz 0-Alloc C# 과전압 Vex 및 TEC 냉각 전력 미세 제어] G --> H[타이밍 지터 50ps 및 애프터펄스 0.1% 이하 극한 유지] H --> B

4. 고성능 0-Alloc C# 서보 엔진 구현

가비지 컬렉션 부하 없이 10,000Hz 속도로 SPAD 바이어스와 불응 시간을 최적화하는 초고속 C# 구조입니다:

using System;
using System.Runtime.CompilerServices;

namespace ZeliDesk.Stem.Spad
{
    public readonly record struct SpadConfig(
        double NominalVbrVolt,          // 25도 기준 항복 전압 (예: 28.5 V)
        double TempCoeffBetaVoltPerC,   // 항복 전압 온도 계수 β (예: 0.045 V/°C)
        double TargetExcessVoltageVolt, // 목표 과전압 Vex (예: 3.5 V)
        double MaxAllowedDarkCountHz,   // 허용 암계수 한계 (예: 100 Hz)
        double MinDeadTimeNs            // 최소 불응 시간 (예: 25.0 ns)
    );

    public ref struct SpadServoState
    {
        public double CurrentBreakdownVoltage;
        public double TargetBiasVoltage;
        public double OptimalDeadTimeNs;
        public double MeasuredJitterPs;
        public double TecPeltierControlVolt;
        public bool IsSinglePhotonOptimal;
    }

    public static class SpadServoEngine
    {
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static void UpdateSpadServo(
            in SpadConfig cfg,
            ref SpadServoState state,
            double measuredSensorTempC,
            double measuredDarkCountHz,
            double measuredAfterpulseRatio)
        {
            // 1. 현재 센서 온도에 따른 실시간 항복 전압 Vbr(T) 계산
            state.CurrentBreakdownVoltage = cfg.NominalVbrVolt + cfg.TempCoeffBetaVoltPerC * (measuredSensorTempC - 25.0);

            // 2. 최적 바이어스 전압 Vbias = Vbr(T) + Vex
            state.TargetBiasVoltage = state.CurrentBreakdownVoltage + cfg.TargetExcessVoltageVolt;

            // 3. 애프터펄스 비율에 따른 적응형 불응 시간(Dead Time) 산출
            // P_ap가 0.01(1%) 초과 시 데드타임을 지수적으로 확장하여 잔여 포획 전하 방출 보장
            state.OptimalDeadTimeNs = Math.Max(cfg.MinDeadTimeNs, cfg.MinDeadTimeNs * (1.0 + 10.0 * Math.Max(0.0, measuredAfterpulseRatio - 0.005)));

            // 4. 타이밍 지터 추정 (과전압이 안정적일 때 45ps 달성)
            double vExError = Math.Abs(state.TargetBiasVoltage - (state.CurrentBreakdownVoltage + cfg.TargetExcessVoltageVolt));
            state.MeasuredJitterPs = 45.0 + 30.0 * vExError;

            // 5. 암계수 억제를 위한 TEC 펠티에 소자 전압 PID 제어 (목표 온도: -20°C)
            const double TargetTempC = -20.0;
            double tempError = measuredSensorTempC - TargetTempC;
            state.TecPeltierControlVolt = Math.Clamp(0.5 * tempError, 0.0, 5.0);

            // 6. 단일 광자 검출 최적 상태 락 판정
            state.IsSinglePhotonOptimal = (measuredDarkCountHz < cfg.MaxAllowedDarkCountHz) && (measuredAfterpulseRatio < 0.01);
        }
    }
}

5. 교육 및 산업 응용 가치

본 서보 엔진은 양자 키 분배(QKD), 라이다(LiDAR) 거리 측정기, 고해상도 형광 수명 이미징(FLIM) 등 나노초 이하의 광자 도달 시간 측정이 요구되는 첨단 광전자 시스템의 핵심 백본입니다. 과학교육에서는 광전효과와 눈사태 전자 증폭 현상을 연결하는 가이거 모드 양자 물리를 직관적으로 이해할 수 있는 실습 엔진으로 기능합니다.