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