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