Получить коммерческое предложение
Проверим наличие
перед счётом
Генераторы и синхронизация 9 мин чтения Автор: Мульдияров Алексей

Как рассчитать clock tree и допустимый джиттер для АЦП и FPGA

Тактирование определяет не только частоту работы. Фазовый шум clock превращается в амплитудную ошибку выборки АЦП, skew между выходами нарушает временные окна интерфейса, а неправильный стандарт уровня создаёт отражения и шум питания. Генератор «100 МГц ±25 ppm» может отлично держать среднюю частоту и одновременно быть непригодным для высокодинамичного преобразователя. Clock tree проектируют от потребителей. Для каждого указывают частоту, допустимый jitter в конкретной полосе, уровень, duty cycle, синхронность, число входов и требования запуска. Затем распределяют бюджет между oscillator, PLL/jitter cleaner, fanout buffer, трассой и внутренней aperture uncertainty АЦП.

Дерево тактирования генератора, PLL и буферов с распределением бюджета фазового шума, джиттера и перекоса между АЦП и FPGA

Исходные данные для clock tree

Исходные данные для clock tree
Параметр Что зафиксировать Что он определяет
Потребители Частота, формат, входной стандарт и fanout Выходы генератора, buffer и PLL
Спектр сигнала АЦП Максимальная входная частота и требуемый SNR Допустимый RMS jitter
Временные требования Skew, setup/hold и latency Разводку, matched lengths и delay control
Phase noise Полоса интегрирования каждого потребителя Корректное сравнение источников такта
Питание и среда Ripple, температура, vibration и startup LDO/filter, oscillator type и тесты

Частотная точность и джиттер — разные параметры

Ошибка в ppm показывает отклонение средней частоты и важна для протоколов, таймеров и долговременной синхронизации. Jitter описывает кратковременное смещение фронтов. Устройство может иметь хорошую точность ppm, но высокий фазовый шум, или наоборот.

Для Ethernet, USB или радио нужно одновременно выполнить частотный допуск стандарта и спектральные требования. Нельзя заменить анализ phase-noise одним числом period jitter из другой методики измерения.

Виды джиттера и полоса интегрирования

Period jitter измеряет вариацию одного периода, cycle-to-cycle — разницу соседних периодов, TIE — отклонение фронта от идеального положения. Phase noise задают в dBc/Hz относительно carrier на разных offset frequencies. RMS-jitter получают интегрированием фазового шума в определённой полосе.

Два datasheet можно сравнивать только при одинаковом определении и integration bandwidth. Значение 100 fs в полосе 12 кГц–20 МГц и 100 fs в 10 Гц–100 МГц описывают разные условия. Полоса должна соответствовать чувствительности конкретного PLL/ADC и задаче измерения.

Почему входная частота АЦП важнее sample rate

Ошибка времени максимальна на крутом участке синуса. Ограничение SNR от RMS-jitter оценивают формулой SNR_jitter = −20 log10(2π f_IN t_J). Здесь f_IN — максимальная аналоговая частота, фактически присутствующая на входе, а не обязательно частота дискретизации.

Если АЦП 250 MSPS принимает IF 100 МГц, в формулу подставляют 100 МГц. Сильный внеполосный сигнал также может переносить clock noise в полезную полосу, поэтому антиалиасный фильтр и спектр помех остаются частью задачи.

Численный предел джиттера

Пусть требуется, чтобы clock ограничивал SNR не хуже 74 дБ при f_IN = 100 МГц. Тогда t_J ≤ 1 / (2π f_IN × 10^(SNR/20)). Подстановка даёт примерно 1 / (2π × 10⁸ × 10^3,7) = 318 фс RMS.

Это весь допустимый случайный timing budget, а не допустимый jitter одного генератора. Чтобы другие источники шума АЦП не ухудшили общий SNR, clock budget обычно задают строже, например 220–250 фс.

Складывайте независимые вклады по RSS

Некоррелированные RMS-вклады объединяют корнем суммы квадратов: t_TOTAL = √(t_OSC² + t_PLL² + t_BUF² + t_ADC²). Пусть oscillator даёт 160 фс, buffer добавляет 80 фс, distribution/measurement — 60 фс, aperture jitter АЦП — 100 фс. Итог √(160² + 80² + 60² + 100²) ≈ 213 фс.

Это ниже предела 318 фс. Соответствующий jitter-limited SNR при 100 МГц — около 77,5 дБ. Если отдельные шумы коррелированы или в спецификациях указаны разные полосы, простое RSS применять нельзя.

PLL может очищать и одновременно добавлять шум

PLL отслеживает входной clock внутри loop bandwidth и преимущественно использует VCO за её пределами. Узкая петля помогает подавить далёкий шум входа, но хуже следует медленному изменению; широкая — переносит больше входного phase noise. Оптимум зависит от спектров reference, PFD, divider и VCO.

Не выбирайте jitter cleaner по одной итоговой цифре из типового условия. Сравните phase-noise mask на значимых offset, частоту PFD, дробный режим, spurs, время lock и поведение holdover. Fractional-N может дать удобную частоту, но добавить дискретные составляющие.

Fanout buffer и additive jitter

Буфер нужен, когда один источник питает несколько нагрузок, требуются разные уровни или малый channel-to-channel skew. Additive jitter измеряется при заданном входном slew rate и амплитуде. Медленный или зашумлённый вход пересекает threshold с большей неопределённостью и ухудшает результат.

Проверьте output format, нагрузку и termination. LVCMOS создаёт большой токовый скачок и сильнее зависит от питания; LVDS/LVPECL/CML используют дифференциальную передачу, но требуют своей схемы смещения и оконечного согласования.

Skew отвечает за взаимное положение каналов

Jitter — вариация во времени, skew — относительно постоянная разница задержек. Для синхронных многоканальных АЦП channel skew превращается в фазовую ошибку. Для интерфейса FPGA он съедает setup/hold budget.

Суммарный skew включает выходы буфера, длины трасс, разъёмы и внутренние задержки приёмников. Согласование длины без учёта package delay не гарантирует синхронность. Для точной фазы нужна калибровка или регулируемая задержка.

Питание clock-узла

Шум питания модулирует задержку порогов и VCO. Малошумящий LDO помогает только в своей полосе и при устойчивой входной шине. Ferrite bead с конденсаторами может создать резонанс; PDN проверяют по impedance и load transient.

Разделяйте возвратные токи clock output и чувствительной analog supply. Байпас ставят у каждого питания согласно datasheet. Дроссель DC/DC, DDR и быстрые GPIO не должны располагаться рядом с oscillator/VCXO.

Разводка и целостность фронта

Критичность трассы определяется временем фронта, а не только частотой. Даже 10 МГц LVCMOS с фронтом 1 нс является высокоскоростной линией. Нужны непрерывная reference plane, контролируемый impedance и отсутствие длинных ответвлений.

Source termination для LVCMOS уменьшает отражения, если резистор стоит близко к драйверу. Дифференциальные линии согласуют по парному импедансу и минимизируют skew внутри пары. Переход через разъём или via требует непрерывного возвратного пути.

Постройте дерево режимов, а не одну схему

При старте часть PLL может ещё не lock, FPGA может конфигурироваться, а АЦП — калиброваться. Определите, кто является master, что происходит при потере clock и можно ли переключать источники без runt pulses. Glitchless mux работает без нарушения только при выполнении условий datasheet.

В резервированной системе важно обнаружить degraded clock, а не только полную остановку. Loss-of-signal, holdover и alarm outputs должны попадать в диагностику.

Практический пример clock tree

Система использует один 100 МГц oscillator, fanout на АЦП и FPGA и отдельный PLL для 250 МГц интерфейса. АЦП измеряет сигнал до 100 МГц с требованием 74 дБ. Полный предел 318 фс; внутренне назначаем 220 фс для clock + aperture.

После выбора компонентов расчёт RSS даёт 213 фс. Трассы к АЦП и FPGA согласованы, но skew выходов буфера 50 пс и разница PCB 15 пс. Для синхронизации интерфейса это 65 пс до учёта receiver delay; его сравнивают с setup/hold, а не с 213 фс random jitter. На стенде измеряют phase noise, eye/interface timing и спектр АЦП при high-frequency full-scale input.

Примеры из каталога ChipBaza

LMK1C1104PWR и LMK1C1104APWR иллюстрируют четырёхканальные clock buffer одного семейства. Суффикс и ревизия важны: проверяются допустимая частота, input/output format, additive jitter, skew, питание, fail-safe input и package.

Буфер не заменяет low-noise oscillator или jitter cleaner. Для каждого потребителя выбирается полный тракт, а доступность карточки не является подтверждением спектрального бюджета.

Типовые ошибки

  • сравнивать ppm и RMS-jitter как один параметр;
  • подставлять sample rate вместо максимального f_IN;
  • складывать RMS-jitter линейно;
  • сравнивать цифры при разных integration bandwidth;
  • забывать aperture jitter АЦП;
  • считать length matching полным бюджетом skew;
  • использовать неподходящую termination;
  • питать PLL от шумной общей шины без проверки.

Чек-лист clock tree

  • для каждого потребителя заданы frequency, level, jitter и skew;
  • phase-noise полосы сопоставимы;
  • рассчитан предел t_J по максимальному analog input;
  • независимые вклады объединены RSS;
  • отдельно проверены deterministic spurs и random noise;
  • termination соответствует LVCMOS/LVDS/LVPECL/CML;
  • питание и layout защищают clock от цифрового шума;
  • startup, lock, failover и loss-of-clock определены;
  • выполнены спектральное и временное измерения прототипа.

Источники для технической проверки

Параметры и ограничения сверяйте с актуальной документацией производителя для полного артикула и нужного исполнения.

Следующий шаг

Проверьте артикулы и количество до отправки заявки

Загрузите спецификацию в BOM-сервис или пришлите полный код производителя менеджеру. Если точное совпадение не доказано, позиция останется на ручной проверке.