Tang Nano 9K: от ZIP-архива до живой платы

Финальный уровень курса — «Создание компьютера» — заканчивается особенной кнопкой: «Создать компьютер». Она собирает ваш Verilog-проект в ZIP-архив, готовый к загрузке в настоящую FPGA-плату Tang Nano 9K. Эта статья — карта пути от архива до бегающих огоньков на железе: что такое FPGA, как устроен GOWIN IDE и что делать, если что-то не заработало.

Схема компьютера уровня 47 в RTL-вьюере: процессор с периферией и ROM
Именно эта схема — компьютер финального уровня 4.47 — уедет в плату: процессор, память и порты периферии

Что такое FPGA и почему это не «прошивка»

FPGA (field-programmable gate array) — микросхема, из миллионов незанятых транзисторных «кубиков» которой можно собрать почти любую цифровую схему. Вы описали схему на Verilog — инструменты производителя (для Tang Nano 9K это GOWIN) разложат её по кубикам и соединят проводами внутри чипа.

Важное отличие от микроконтроллера: в MCU ваша программа исполняется поверх фиксированного процессора, а в FPGA сам процессор — это то, что вы только что собрали. Tang Nano 9K — недорогая плата на чипе GW1NR-9: три светодиода на борту, кнопка, разъёмы под дисплеи — идеальный первый «кремниевый» шаг после симулятора.

Шаг 1. Экспорт ZIP из симулятора

На уровне 4.47 после прохождения нажмите «Создать компьютер» — симулятор упакует проект: все Verilog-файлы (top.v с вашим компьютером, память, периферия) и файл ограничений пинов Ershov_Computer.pins.cst, где уже прописано, что к какому выводу платы подключено. Сохраните ZIP и распакуйте в папку без русских букв и пробелов в пути — GOWIN такого не любит.

Шаг 2. GOWIN IDE: проект и синтез

Скачайте GOWIN IDE с сайта производителя Sipeed/GowinSemiconductor (бесплатная регистрация), установите. Дальше:

1. File → New Project, тип FPGA Design, семейство GW1NR-9, чип GW1NR-LV9QN88PC6/I5 (как на плате).
2. Add Sources — добавьте все .v файлы из архива и файл ограничений .cst.
3. Кнопка Synthesis (значок шестерёнки). Инструмент проверит ваш Verilog и «свернёт» схему в таблицу соединений. Ошибки здесь — то же, что красные строки в симуляторе: читайте номер строки.
4. Place & Route — раскладка схемы по физическим кубикам чипа.
5. Выберите программу: Process → Configure → сгенерировать bitstream (.fs — файл конфигурации).

На школьном ноутбуке весь путь занимает несколько минут. Если синтез ругается на language support — проверьте, что включён Verilog-2001 (по умолчанию включён).

Шаг 3. Прошивка платы

Подключите Tang Nano 9K по USB-C. В GOWIN откройте Programmer (Tools → Program Device), он сам увидит плату. Выберите ваш .fs файл, режим SON: Flash (прошивка сохранится после выключения) и нажмите Program. Через несколько секунд плата перезагрузится — и ваш процессор, ещё утром существовавший только в браузере, тикает на настоящем кремнии: светодиоды мигают по программе из ROM, кнопка работает как вход.

Если что-то не заработало

Синтез падает с ошибкой: сравните код с работающей версией в симуляторе. Частые причины: behavioral-конструкции (always, if), случайно оставшиеся в коде, или несовпадение имён модулей с файлами.
Плата не видна в Programmer: установите драйвер USB из комплекта GOWIN; на Linux — правила udev.
Светодиоды не мигают: проверьте, что тактовый сигнал подключён к правильному пину в .cst (в файле ограничений из экспорта clk уже заведён на пин 45), а ROM содержит программу.
Схема работает «почти правильно»: вспомните статью о задержках распространения — на реальном железе тайминги видны даже сильнее, чем в симуляторе.

Когда первый процессор заработает на плате, вы пройдёте путь, который проходят инженеры-цифровики: идея → HDL-код → симуляция → синтез → железо. Дальше — только ваши проекты.

Проверь себя

Чем FPGA отличается от микроконтроллера?

В микроконтроллере процессор уже фиксирован, а вы пишете для него программу. В FPGA вы собираете саму цифровую схему — включая процессор, если он вам нужен.

Какой файл в итоге загружается в плату?

Bitstream с расширением .fs — образ конфигурации всех кубиков и соединений FPGA, полученный после синтеза и place&route.

Почему ZIP лучше распаковывать в путь без русских букв?

Инструменты GOWIN чувствительны к кодировкам путей: кириллица и пробелы в папках периодически ломают синтез и поиск файлов.

Попробовать в симуляторе →