Инструменты и отладочные платы
Обзор инструментов, которыми реально работают с FPGA, и плат, с которых стоит начинать.
Поток инструментов FPGA — это связка из симулятора (проверка логики), синтезатора и инструмента размещения/трассировки (превращение Verilog в битстрим), обычно поставляемая вендором FPGA.
Verilog — язык, но чтобы он ожил в железе, нужна экосистема инструментов. У FPGA она исторически вендорская: производитель кристалла даёт свой набор. Но в последние годы появился и зрелый open-source поток. Разберём, что есть и с чего начинать новичку, чтобы не потеряться в названиях.
Вендорские пакеты
Два главных производителя FPGA дают свои большие пакеты:
| Вендор | Пакет | FPGA |
| AMD (бывш. Xilinx) | Vivado | Artix, Kintex, Virtex, Zynq |
| Intel (бывш. Altera) | Quartus | Cyclone, Arria, Stratix |
| Lattice | Diamond / Radiant | iCE40, ECP5 |
Эти пакеты делают всё: синтез, размещение и трассировку, анализ тайминга, генерацию битстрима, прошивку. Они мощные, но тяжёлые (десятки гигабайт) и привязаны к чипам своего вендора. Для учёбы у обоих есть бесплатные редакции под младшие кристаллы.
Open-source поток
Альтернатива — свободные инструменты, которые особенно хороши для малых FPGA (Lattice iCE40, ECP5) и для автоматизации:
- Yosys — синтезатор Verilog в открытом коде.
- nextpnr — размещение и трассировка.
- Project IceStorm / Trellis — генерация битстрима для iCE40/ECP5.
Этот поток (Yosys → nextpnr → битстрим) полностью открыт, быстр на малых проектах и идеально подходит для обучения и хобби — его легко поставить и автоматизировать скриптами.
Симуляторы
Для тестбенчей нужен симулятор — отдельный класс инструментов:
- iverilog (Icarus Verilog) — простой бесплатный симулятор, отличен для старта и учёбы.
- Verilator — очень быстрый: компилирует Verilog в C++, незаменим для больших проектов и непрерывной интеграции.
- ModelSim / QuestaSim — мощные коммерческие симуляторы, стандарт индустрии.
- GTKWave — просмотрщик временных диаграмм (waveform): рисует сигналы, записанные симулятором в VCD-файл.
Типичный учебный цикл: написал Verilog → прогнал в iverilog с тестбенчем → посмотрел осциллограммы в GTKWave → исправил → и только потом синтезировал.
Отладочные платы
Чтобы трогать FPGA руками, нужна плата с кристаллом, питанием, кнопками, светодиодами и разъёмом для прошивки. Популярные для старта:
- iCEstick / iCEBreaker (Lattice iCE40) — дёшево, полностью open-source поток.
- Arty / Basys 3 (Xilinx Artix-7) — учебная классика, много периферии, работает в Vivado.
- DE0/DE10 (Intel Cyclone) — популярны в вузах, поток Quartus.
- Tang Nano (Gowin) — очень доступны, набирают популярность.
Совет новичку: начинать стоит с дешёвой платы и понятного потока. Для open-source — iCEBreaker, для вендорского — Basys 3. На таких платах удобно сделать первые проекты вроде бегущего огонька или светофора.
Как работает под капотом: типичный рабочий цикл
1. Написать .v (модуль + тестбенч)
|
v
2. iverilog + vvp -> симуляция, GTKWave -> смотрим осциллограммы
| (логика верна?)
v
3. Yosys / Vivado / Quartus -> синтез + place&route -> .bit
|
v
4. Прошить плату (openFPGALoader / Vivado) -> проверить вживуюЭтот цикл одинаков для любого вендора — меняются лишь конкретные инструменты на шагах 3-4. Шаги 1-2 (симуляция) обязательны всегда: они дешевле всего ловят ошибки.
Частые ошибки
- Сразу ставить тяжёлый Vivado ради одного светодиода. Для учёбы хватает open-source потока и iverilog — быстрее и легче.
- Покупать дорогую плату «на вырост». Новичку достаточно дешёвой платы; сложные кристаллы пригодятся позже.
- Игнорировать GTKWave. Осциллограммы наглядно показывают тайминг и ошибки, которые в текстовом логе незаметны.
Итог
- Вендорские пакеты: Vivado (AMD/Xilinx), Quartus (Intel), Radiant (Lattice).
- Open-source поток: Yosys → nextpnr → битстрим, отлично для малых FPGA и учёбы.
- Симуляторы: iverilog (старт), Verilator (скорость), ModelSim (индустрия); GTKWave — осциллограммы.
- Стартовые платы: iCEBreaker, Basys 3, DE10, Tang Nano.