Бюджет питания FPGA-платы и проектирование многорельсового питания: DC-DC, LDO и как считать энергопотребление
FPGA-плата уровня Kintex-7 обычно требует 5–8 различных напряжений питания: от 1,0 В ядра до 3,3 В I/O, токи от сотен мА до десяти ампер. Многие инженеры покупают FPGA-плату, подключают 5 В и запускают — только чтобы обнаружить, что плата горячая на ощупь, или АЦП выдает сплошные паразитные составляющие. В статье разбираем бюджет питания, выбор DC-DC vs LDO и проектирование многорельсового питания.
1. Почему питание FPGA-платы такое сложное
FPGA — это не микроконтроллер, его нельзя запитать одним рельсом 3,3 В. Современный FPGA требует как минимум: напряжение ядра (Vccint, обычно 0,9–1,0 В), вспомогательное напряжение (Vccaux, 1,8 В), напряжение I/O (Vcco, 1,2/1,8/2,5/3,3 В по банкам) и напряжение трансиверов (MGTAVTT/MGTAVCC, 0,9–1,2 В). Плюс DDR-память требует 1,2 В Vdd и 0,6 В Vtt, конфигурационная Flash — 3,3 В, PHY-чипы — 1,0 В или 1,8 В.
Типичная core-плата уровня Kintex-7 требует 6–8 рельсов только для самого FPGA; плюс DDR, собственное питание PMIC, выходы на мезонин 12 В/5 В — и вся плата может потребовать 10+ рельсов. Проектирование питания — это не «выбрал LDO и поехал», а сначала посчитать, сколько тока нужно каждому рельсу, где DC-DC, где LDO, и какой допустим ripple и КПД.
2. Шаг 1: Как посчитать бюджет питания
Бюджет питания состоит из трёх частей: сам FPGA, периферия и мезонин/внешние нагрузки.
Мощность FPGA = статическая + динамическая. Статическая — в datasheet, обычно пара ватт; динамическая = внутренняя ёмкость × напряжение² × частота переключения × частота. Не нужно считать вручную — используйте оценщик от вендора (Xilinx XPE, Fudan Micro PSM). Ориентиры:
| Класс FPGA | Типичное потребление | Пиковое |
|---|---|---|
| Kintex-7 (PBC7K325G) | 5–8 Вт | 12 Вт |
| Zynq-7020 (PBC7Z020G) | 6–10 Вт | 15 Вт |
| Kintex-7 с FMC (DUK7325T) | 10–15 Вт | 25 Вт |
Периферия: каждый чип DDR3 ~0,5–1 Вт, две штуки = 1–2 Вт; гигабитный PHY ~0,5–1 Вт; магнитные элементы Ethernet и обвязка ~0,2 Вт.
Мезонин/внешние нагрузки: FMC-мезонин может потребовать 12 В/1 А (12 Вт) или 3,3 В/2 А (6,6 Вт); USB, SD-карта, вентилятор по 0,1–0,5 Вт.
Итого бюджет = FPGA + периферия + мезонин, потом умножить на 1,5× запас. DUK7325T с FMC ADC-мезонином может потреблять 20–30 Вт суммарно; если взять блок питания 12 В/2 А (24 Вт), запаса не хватит.
3. DC-DC или LDO: выбираем по каждому рельсу
Ключевое решение в многорельсовом питании: импульсный стабилизатор (DC-DC) или линейный (LDO) для каждого рельса.
| Сравнение | DC-DC (импульсный) | LDO (линейный) |
|---|---|---|
| КПД | 85–95 % | 30–60 % (хуже при большом падении) |
| Пульсации на выходе | 20–50 mVpp | < 1 mVpp |
| Макс. ток | 1–20 А | 1–3 А |
| Теплоотвод | Хорошо (высокий КПД) | Плохо (падение × ток = тепло) |
| Стоимость | Высокая (дроссель + MOSFET) | Низкая (одна микросхема) |
| Где применять | Большой ток, напряжение ядра | Малый ток, чувствительная к шуму цепь (PLL, АЦП аналог) |
Правила:
- Напряжение ядра FPGA (1,0 В/десятки ампер): только DC-DC, КПД LDO будет неприемлем.
- Напряжение MGT-трансиверов (1,0 В/несколько ампер): DC-DC, но с LC-фильтром, чтобы задавить пульсации до < 10 мВ.
- Аналоговое питание PLL, опорное напряжение АЦП: LDO; пульсации напрямую бьют по джиттеру и SNR.
- 3,3 В I/O, питание Flash: небольшой ток, подойдёт LDO или маломощный DC-DC.
4. Типовая схема многорельсового питания
Типовое дерево питания отладочной платы уровня Kintex-7:
12 В вход
├── DC-DC 1,0 В/15 А → FPGA Vccint (ядро)
├── DC-DC 1,8 В/3 А → Vccaux + MGTAVCC
├── DC-DC 1,2 В/5 А → DDR3 Vdd
│ └── LDO 0,6 В/2 А → DDR3 Vtt
├── DC-DC 3,3 В/3 А → Vcco Bank0/14 + Flash
├── LDO 2,5 В/1 А → Vcco Bank15 (параллельный интерфейс АЦП)
├── LDO 1,8 В/0,5 А → Аналоговое питание PLL
└── DC-DC 12 В/2 А → FMC мезонин внешнее питание
В этой архитектуре 4 канала DC-DC и 3 LDO. Основные моменты:
- Сильноточные дорожки должны быть короткими и широкими: 1,0 В/15 А — медь не уже 2 мм, короткие трассы, много переходных отверстий.
- LDO ставим близко к нагрузке: LDO аналогового питания PLL — рядом с FPGA, а не на краю платы.
- Фильтрующие конденсаторы на каждом рельсе: выход DC-DC: 22 мкФ электролит + 0,1 мкФ керамика; выход LDO: 10 мкФ + 0,1 мкФ.
- Последовательность включения: FPGA требует сначала напряжение ядра, потом I/O и вспомогательное; используйте PMIC или sequencing-микросхему.
5. Три типичные ошибки
- Считаем только питание FPGA, забываем про мезонин: FMC-мезонин может сам по себе потреблять 10 Вт; его надо закладывать в бюджет.
- Недостаточно давим пульсации: пульсации питания MGT закрывают глаз АЦП; пульсации аналогового питания АЦП роняют SNR на несколько дБ.
- Забываем про тепло: LDO на 3,3 В→1,8 В при 1 А рассеивает 1,5 В × 1 А = 1,5 Вт тепла; если меди на плате мало, LDO уйдёт в тепловую защиту.
6. Питание на трёх платах Duyuan
| Плата | Вход | Рельсов | Типичное потребление | Архитектура питания |
|---|---|---|---|---|
| PBC7K325G core board | 5 В | 4 | 5–8 Вт | On-board DC-DC + LDO |
| PBC7Z020G core board | 5 В | 5 | 6–10 Вт | On-board DC-DC + LDO |
| DUK7325T dev board | 12 В | 8 | 10–15 Вт (холостой ход) | Мульти DC-DC + LDO, FMC внешнее питание |
На всех трёх платах дерево питания уже спроектировано: напряжение ядра — сильноточный DC-DC, аналог и PLL — LDO, питание FMC-мезонина — отдельный DC-DC. Пользователю достаточно подать 5 В или 12 В — ничего пересчитывать не нужно.
7. Чек-лист проектирования питания
- Прогоните оценщик мощности от вендора, не угадывайте.
- Посчитайте ток каждого рельса, оставьте 30 % запаса по номиналу DC-DC.
- Сильноточные рельсы — DC-DC, чувствительные к шуму — LDO.
- Включение по последовательности FPGA: ядро раньше I/O.
- Фильтрующие конденсаторы на каждом рельсе, LDO — близко к нагрузке.
- Посчитайте тепло: падение на LDO × ток — это его тепловыделение.
Питание FPGA-платы — это не «подключил 5 В и поехали». Посчитайте бюджет, выберите правильные DC-DC/LDO, задавите пульсации — и плата выдаст полную производительность. Ошибётесь с питанием — даже лучший FPGA не раскроется.
Дополнительное чтение
- Практика замены ZYNQ: от Xilinx ZYNQ к PBC7Z020G
- Стоимость миграции на китайский FPGA: TCO-фреймворк
