Импортозамещение работает: две российские FPGA платы, полностью импортозамещающие 35 американских и китайских плат

880b7be5d8a04b0b318b6f58666551f4.png

Вчера известный разработчик FPGA дизайнов и печатных плат Николай Ковач, основатель marsohod.org из Таганрога, добавил поддержку платы Марсоход3GW2 в репозиторий примеров для Школы Синтеза Цифровых Схем, в которую сейчас идет регистрация. Николай также описал работу с примерами в своем посте на Хабре. Плата полностью покрывает нужды Школы для упражнений с цифровой логикой, синтезом простого микропроцессорного ядра, распознавания и генерации цвука и красивой графикой на HDMI дисплее с 24-битным цветом. Плата стоит 5000 рублей + 400 рублей за шилд семисегментного индикатора. Для работы со звуком нужно приобрести дополнительные компоненты: MEMS микрофон INMP441 ($1.70 на AliExpress) и декодер GY-PCM5102 с чипом PCM5102A для вывода звука ($1.84 на AliExpress).

Получается заведомо дешевле и лучше по графике, чем со стандартными во многих западных вузах платами типа Digilent Nexys A7, которая стоит $350 и позволяет только 12-битную графику c VGA (4 бита на канал RGB). При этом софтвер для синтеза Xilinx Vivado, который используется для Artix-7 FPGA на Nexys A7 — работает в несколько раз медленнее, чем софтвер Gowin EDA, который используется для Gowin FPGA на плате Марсоход3GW2.

Российская плата также имеет преимущество по графике, цене и скорости синтеза перед популярными платами Terasic DE10-Lite (VGA 4 бита на канал RGB, $140 с доставкой из Тайваня и синтез Altera Quartus Prime). И даже перед бюджетными решениями из КНР с FPGA от Altera: платам Omdazz/RzRd (1-бит VGA, $50 на AliExpress) и Saylinx (5–6–5 RGB VGA, $54), хотя у Saylinx шире 7-сегментный индикатор (8 цифр против 4 цифр у Марсоход3GW2).

Прямым конкурентом Марсоход3GW2 является китайская плата Tang Nano 9K, но, во-первых, китайскую плату нужно паять, во-вторых, для нее нужно докупать не только микрофон и декодер для вывода звука, но и дополнительную интерфейсную плату на основе чипа TM1638, а также макетную плату чтобы это все разместить.

При этом для Марсохода3GW2 можно использовать те же инструкции, что и для Tang Nano 9K, а также инструкции, созданные при кооперации сообщества Verilog Meetup и Gowin Semiconductor:

GOWIN EDA Quick Start Guide V6

TangNano9KBoardSetupV3

Tang Nano 9K Synthesis and Configuration V6

4686141d3eac0c96c839baedd285ab04.png

Пикантный момент: что c Марсоходом3GW2, что с Tang Nano 9K можно использовать не только коммерческий тулчейн Gowin EDA, но и открытый тулчейн OSS CAD Suite. Хотя открытый тулчейн сыроват, но с ним связаны два крутых обстоятельства:

  1. Если вы хотите стать специалистом по алгоритмам автоматизации проектирования чипов, то вам не обязательно трудоустраиваться в Synopsys или Cadence, вы можете участвовать в движении Free and Open Source Silicon и делать вклад в эти тулы, причем не только для FPGA, но и для ASIC.

  2. Если вы посмотрите на файлы релиза OSS CAD Suite, вы обнаружите в нем релизы не только для Linux и Windows, но и для популярного у молодежи Apple Макинтоша, причем как на x86/64, так и на ARM-based Apple Silicon. Если немного поковырять скрипты для basics-graphics-music (там чуть другой bash чем на линуксе), то наверняка можно заставить работать синтез и конфигурацию всех примеров на макинтоше.

5c0624c4d11738ed3a021f0ac4bfd38f.png

При этом Марсоход3GW2 — не первая российская плата, для которой сделана поддержка репозитория примеров для Школы Синтеза и Verilog Meetup (т.е. Школы Синтеза за Рубежом). Еще в прошлом году Николай Ковач сделал поддержку для двух альтеровских плат от Марсохода, правда сейчас их нужно подкрутить для новой версии репозитория (см. сигналы vsync/hsync в board_specific_top.sv).

Но помимо трех марсоходов плату с поддержкой примеров для Школы Синтеза сделал Руслан Залата из Тюмени, основатель компании Фабмикро.

0d57186fa22ad310aee13c5f99766b9f.png

Плата Руслана называется Карно / Karnix, и предназначена скорее не для образования, а для промышленной автоматизации. Но примеры на ней тоже работают:

1028a8d4522d5f6749b2be9f7fc0249b.png

Эту плату Руслан описал в свое посте:

Среди множества отладочных плат, поддерживаемых проектом «basics-graphics-music» присутствует, в том числе, разработанная мной и моими коллегами из ООО «Фабмикро» плата «ПИР СЦХ-254 Карно» («Karnaugh Interactive Extendable ASIC Simulation Board») предназначенная для обучения азам цифрового синтеза и экспериментов с синтезируемыми микропроцессорными ядрами RISC-V.

Это полностью «open source and open hardware» проект на базе ПЛИС Lattice ECP5 с ~25К логических блоков, содержит ряд интересных периферийных устройств: многоканальный ЦАП и АЦП, блок статической SRAM памяти объемом 512КБ, FastEthernet, HDMI, кнопки и светодиоды и кое-что еще. Плата «Карно» имеет встроенный JTAG программатор.

Я вообще видел Мишустин на днях выступал на форуме «Микроэлектроника-2024» и говорил о госпрограмме подержки подготовки кадров. Судя по тому, какие задачки Мишустин задает студентам и лицеистам, он человек с пониманием. Так вот если бы российское государство накупило бы FPGA плат отечественных производителей для физматшкол и вузов, и поддержало бы их внедрение от Камчатки до Севастополя, то через несколько лет уровень российских молодых специалистов для разработки цифровой электроники вероятно бы превысил уровень американских выпускников (это я не просто так думаю — я интервьирую выпускников на микроархитектурные задачки).

В Америке пытались внедрить FPGA платы в обучение школьников по программе Project Lead The Way, с платами Digilent Cmod S7 с чипами Xilinx Spartan-7, но их программа выглядит не очень интересной. Кнопочки, лампочки, где графика, музыка, процессоры? Со студентами все хорошо в вузах типа MIT, но в других местах не очень — мало практических студенческих проектов, из-за чего студенты вынуждены учиться на производстве, которое редко горит их учить.

В России процесс сейчас идет довольно живо — вспомним, что в субботу начинается Школа Синтеза, на которую регистрация еще открыта, хотя у них глючит подтверждение емейла.

3f7f247e8f744758e8c7a8c59ee8cb33.png

© Habrahabr.ru