Что если я скажу, что вы - да, именно вы - можете всего за одну неделю спроектировать собственный RISC-V процессор, собрать на его основе микроконтроллер, и запустить на нём C-программу? При этом не нужно быть аспирантом кафедры ВТ или выпускником MIT - достаточно инженерной базы, интереса и участия в интенсивном курсе повышения квалификации под руководством опытных преподавателей из МИЭТ.
В этой статье - личные заметки выпускника интенсивного курса после прохождения такого курса, от первой мысли "а почему бы не попробовать" до запуска кода на собственной системе на базе архитектуры RISC-V. Автор, как технический специалист без опыта проектирования процессорных систем, от своего лица любезно поделился для нашего блога рассказом о том, как проходило обучение, какие инструменты использовались (SystemVerilog, Vivado, FPGA-плата Nexys A7-100T), какие задачи решались и какие знания реально получаются на выходе.
Статья будет особенно интересна тем, кто интересуется аппаратной инженерией, любит электронику, но никогда не заглядывал в мир САПР, HDL и проектирования процессоров.

Отправная точка
При желании практически любой инженер под руководством опытного наставника, на базе сжатого курса-интенсива за одну неделю может овладеть базовыми навыками работы в САПР и самостоятельно спроектировать, смоделировать, проверить процессорное ядро RISC-V, сделать из него компьютер/микроконтроллер (путем добавления памяти и ввода/вывода) и даже запустить на этой системе собственные программы, написанные на языке C/С++. Об этом ниже, передаем слово рассказчику…
Приветствую читателей Хабра! Я решил поделиться с вами рассказом о том, как прошли мои дни на курсе - это оказалось настоящим практическим приключением. В рамках заданий мне удалось не просто "посмотреть", а действительно спроектировать ядро RV32I, собрать на его базе минимальную работоспособную систему (результат можно назвать "микроконтроллер"), подключить память и ввод/вывод в соответствии с классической архитектурой фон Неймана, а затем скомпилировать и запустить прикладной код.
На входе - обычный энтузиаст, который:
В 6-м классе ходил на кружок электротехники, на котором травили текстолит серной и/или соляной кислотой, чтобы вытравить дорожки, нарисованные лаком для ногтей, позаимствованным из дома, чтобы спаять свой мультивибратор с целыми двумя транзисторами;
В 7-м классе на кружке программирования писал смешные программы на языке ассемблера (любимая книжка “Пишем вирус и... антивирус для IBM-совместимых компьютеров”);
Слышал про базовые принципы функционирования процессора на 2-м курсе технического института;
До начала курса не имел опыта работы с САПР;
По основному профилю - сертифицированный администратор по промышленным Unix;
Интересуется высоконадёжными, бизнес-критичными приложениями - системами, функционирующими многие годы без перезагрузок на платформах RISC/Unix.
-
Отслеживает профильные техноресурсы, включая:
На выходе - специалист, который имеет...
За неделю обучения под чутким руководством преподавателя, я получил следующее:
Практический навык проектирования процессора RISC-V в САПР AMD Vivado (с использованием языка SystemVerilog);
Практический навык работы с ПЛИС при использовании отладочной платы Nexys A7-100T;
Практический навык написания программ на C/С++ и запуска их на процессоре RISC-V;
Сделанный своими руками процессор с архитектурой RISC-V;
Сделанный своими руками прототип микроконтроллера, в котором есть процессор с архитектурой RISС-V;
Шикарную книжку "Архитектуры процессорных систем. Практический курс". Авторы Андрей Солодовников, Михаил Попов, Алексей Переверзев;
Удостоверение государственного образца о повышении квалификации;
Хроника. Как развивались события
27.05.2025. Я увидел новость
Случайно увидел новость в Telegram о том, что НИУ МИЭТ и Альянс RISC-V приглашают преподавателей и инженеров на курс повышения квалификации «Архитектуры процессорных систем».
В новости сообщалось, что "с 30 июня по 4 июля слушатели курса смогут в формате интенсивного практикума пройти полный цикл разработки простого RISC-V процессора (RV32I + Zicsr) на языке SystemVerilog с применением инструментария для синтеза и анализа конструкций языка описания оборудования HDL (Vivado) и FPGA-платы (Nexys A7-100T)”.
06.06.2025. Заполняю и отправляю форму
Хм… а что, почему бы и нет? Берем на это время отпуск и подаем заявку на участие на обучение, как частное лицо.

18.06.2025. Получаю одобрение на участие

19.06.2025. Получаю данные по логистике

Вау! Базовый модуль оказывается доступен бесплатно - и это приятная возможность оценить формат и подход!
20.06.2025. Подгружаю в профиль института сканы запрошенных документов

25.06.2025. Решаю, что надо все же хоть как-то подготовиться к курсу, хотя бы на уровне “какого цвета учебник” и покупаю две книжки

"ПЛИС Xilinx. Языки описания аппаратуры VHDL и Verilog, САПР, приемы проектирования" за авторством Тарасова Ильи Евгеньевича.
"Логическое проектирование и верификация систем на SystemVerilog" от Томаса Дональда;
26.06.2025. Активируем учетную запись

Активирую и запоминаю логин и пароль. Как оказалось, они нам действительно понадобились и пригодились при работе за ПК в учебном классе. Для входа на рабочие ПК, на которых был установлено все необходимое для работы, использовалась эта пара логин/пароль, а также для авторизации в бесплатный институтский Wi-Fi.
30.06.2025. Утро 9:20. Немного капает дождик, охранник на проходной строгим голосом говорит: "Ждите, за вами придут". OK, ждем…
Итак, целевой адрес достигнут: МИЭТ - 124498, Россия, Москва, Зеленоград, площадь Шокина, дом 1.

Примерно в 9:30 пришел организатор, всех собрал в кучку и повел в учебную аудиторию, попутно проводя экскурсию и акцентируя внимание на местных красотах и местах общего пользования, лавируя между стаями студентов, которые явно сдавали зачеты и экзамены.
30.06.2025. 10:00. Начало
Вступительная речь от организатора про историю создания этого учебного курса, который разработан на базе обучающих материалов для студентов, которые собирались и систематизировались на протяжении 10+ лет.

Вау! Задарили книжку! "Архитектуры процессорных систем. Практический курс". Авторы Андрей Солодовников, Михаил Попов, Алексей Переверзев.
Все, пора приступать к работе. Открываем лабу №1: “Введение и подготовка среды” и проходим короткий обзор целей и структуры курса. Далее знакомимся с RV32I (+Zicsr) и однотактной микроархитектурой. Настраиваем рабочее место: Vivado, плата Digilent Nexys A7; делаем вводные упражнения на SystemVerilog и собираем полный 32-битный сумматор с последовательным переносом - первый «разогрев».
Идем по лабам, которые выполняют студенты: https://github.com/MPSU/APS/tree/master/Labs/. Они их делают в течение семестра, а нас заставили половину этих лаб за неделю пройти! =) Часть лабораторных пропускаем и идем в соответствии с программой повышения квалификации (не дублируем студенческий курс), а осваиваем то, что действительно необходимо для достижения целей курса.
01.07.2025 - 04.07.2025. Недельный интенсив
Дальше все в тумане. Подъем в 7:00, завтрак, метро, Ленинградский вокзал, 30 минут электричка, 10 минут на автобусе, аудитория. Примерно в 16:00 заканчиваем. Далее автобус, электричка, метро, дом, книжки, сон... Будильник...
01.07.2025. День 2.
Продолжаем выполнение лабораторных работ. Реализуем ключевые узлы тракта данных:
Лаба №2 - создаем ALU;
Лаба №3 - регистровый файл;
Лаба №4 - пропускаем;
Лаба №5 - начинаем создаем модуль разбора команд (“main decoder”).
Моделируем и отлаживаем модули в Vivado; отдельно обсуждаем типовые ошибки в HDL-описаниях.
02.07.2025. День 3
Склеиваем тракт данных, добавляем LSU (load/store), контроллер прерываний и CSR, интегрируем память и простую периферию в состав процессорной системы; имитируем работу системы целиком. Параллельно показывают приёмы поэтапной проверки знаний и помощи при «затыках» на сложных шагах.
Лаба №5 - не успеваем;
Лабу №6 - пропускаем;
Лаба №7 - тракт данных и создаем процессор RISC-V.
03.07.2025. День 4
Утром для разминки выступают два представителя https://riscv-alliance.ru/ которые рассказали про работу двух комитетов российского Альянса RISC-V - “Академического” и “Технологического”.
Осваиваем тулчейн: компиляция простых C/C++ (или asm) программ под наш RISC-V-ядро средствами GCC, загрузка и выполнение на разработанном ядре (с платой/удалённо), анализ результатов и базовая отладка.
Переходим к лабе №13 - создание периферийных устройств; далее лабораторная №14 - программирование.
04.07.2025. День 5


На пятый, финальный, день выполняем сборку процессора из модулей и проверяем, насколько он хорошо получился. Подключаем модуль-загрузчик (программатор) для автоматической прошивки программ в память, меряем производительность CoreMark и обсуждаем, как её улучшать архитектурно. Проверяем, в попугаях и у нас получается 3.62 попугая.
Лаба №16. CoreMark. Компилируем открытый код, coremark, кросс-компилятором, под архитектуру RISC-V.

Заставляем наш САПР симулировать работу нашего будущего процессора и запускаем скомпилированный код на этом процессоре.

Хм, да. Не быстро это идет, чувствуется мощь. Смотрим на результат - 3.62 попугая. А теперь, пробуем записать программатором все это добро на наш ПЛИС, и уже на ПЛИС запустить ровно такой же код и посмотреть, чтобы сравнить результаты.

Хм, после заливки на ПЛИС попугаи совпали! Магия!
Тут чтобы понять на что смотреть, я поясню - смотрим показатель “Coremark-попугаев/МГц процессора”. С учетом того, что наш ПЛИС мы запустили на частоте 10 МГц, и наши попугаи становятся равны ~0.36. При этом помним, что в нашем процессоре - одно ALU и все просто, без всяких этих модных/молодежных, предсказаний ветвлений, кэшей. В нашем процессоре все просто. Но вот если посмотреть на "попугаи" в других процессорах:
Intel Itanium - 2.68 попугая
PA-8600 - 1.9 попугая
Intel 80286 - 1.7 попугая
Хм… наши 3.62 попугая - весьма и весьма достойно выглядят!
Пробуем писать на экран:

Компилируем код на C в язык ассемблера для архитектуры RISC-V и получившийся в итоге бинарный файл, записываем на ПЛИС программатором, в другую область памяти, чтобы не повредить процессор и передаем управление, чтобы он этот код, сразу начал исполнять, т.к. у нас тут нет никаких операционных систем.
Видим на экране долгожданную надпись: "DFCZ WAS HERE!!!!"! Отлично, переходим к финальному боссу - к "Змейке"!


Финальный босс побежден - игра "Змейка" готова!
И в конце дня получаем удостоверения:

Красота! Удостоверения государственного образца! На этом свой рассказ я завершаю, выводы делайте сами ?
В качестве заключения
Альянс RISC-V видит в изложенном опыте главное подтверждение нашей идеи: открытая архитектура и правильная методика позволяют инженеру за одну интенсивную неделю пройти путь от первых строк SystemVerilog до запуска C-программы на собственном ядре. При поддержке наставника, понятной лабораторной траектории и доступных инструментов (Vivado, FPGA-плата, базовый тулчейн) RISC-V перестает быть «чужой магией» и становится прикладной инженерной практикой.
Почему это работает? Стандарт RISC-V открыт и прозрачен, экосистема быстро растёт, а барьеры входа низкие: начинать можно с «однотактного минимума», по мере необходимости добавляя декодеры, LSU, CSR, прерывания и периферию. Такой путь естественно формирует правильные инженерные привычки - от модульной верификации до воспроизводимых сборок и измеримой производительности.
Мы приглашаем выпускников и всех, кто читает эти строки, сделать следующий шаг: углубиться в микроархитектуру (конвейер, кэши, MMU), поиграть с частотами и синтезом, расширить периферию, поделиться результатами и задать сообществу новые вопросы. Вместе мы строим открытую технологическую платформу, где ценятся практические результаты, обмен наработками и готовность учиться.
Если у вас есть инженерная база и интерес - у вас уже есть всё, чтобы спроектировать, смоделировать и проверить собственное RISC-V-ядро, собрать на его основе микроконтроллер и запустить на нём свои C/C++-программы. Остальное - дело времени, дисциплины и активности в сообществе. Добро пожаловать в RISC-V.
Дополнительные вводные
Современные представители серверных процессоров общего назначения на архитектуре RISC-V, на проприетарных индустриальных тестах вроде SPEC, показывают весьма достойные результаты производительности как по сравнению с лучшими представителями мира x86-процессоров, так и с достойными соперниками архитектуры ARM.
Мы все с вами знаем, что эти тесты закрытые и требуют оплаты, чтобы получить возможность их у себя запускать, но сравнимые результаты получаются именно на тестах SPECint/SPECfp.
Подробнее: https://spec.org/pressreleases/20221201-academic-pricing/
К примеру, на тесте SPECint2017_rate:
Многие, кто работал с MIPS, в последние годы переходят на RISC-V. Даже сама MIPS с 2022 года выпускает RISC-V-IP (семейство eVocore), которую относительно недавно поглотило бывшее производственное подразделение компании AMD
Логично задаться вопросом: почему многие смотрят на RISC-V именно сейчас? На стороне ARM - рост неопределённости в стоимости владения после пересмотра модели роялти. “Нововведение” в политике лицензирования, существенно усилило исход/отказ от архитектуры ARM у множества компаний. Обсуждалось изменение стоимости лицензии, которая теперь зависит от стоимости изделия, в котором это процессорное ядро используется. В то же время стандарт RISC-V сам по себе абсолютно бесплатен, что в целом позволяет снизить риски роста издержек.
На рынке это отражается в спросе на инженеров с навыками построения систем на базе RISC-V и крупных инициативах по их подготовке; при этом идёт и переток кадров из стартапов, проходящих реструктуризацию. На международном рынке идут активные дискуссии, по теме хантинга инженеров, с навыками работы с архитектурой RISC-V. Из недавних примеров - слухи о компании Esperanto Technologies. Индустрия продолжает гадать имя компании, которая перекупила всех сотрудников.
Помимо этого в новостном поле прослеживаются и другие серьезные индикаторы зрелости RISC-V в оценках крупных игроков индустрии. Космическое агентство NASA уже достаточно давно присматривалось к архитектуре RISC-V для своих космических активностей. Относительно недавно, NASA официально остановила свой выбор на процессоре SiFive Intelligence X280, построенном на базе открытой архитектуры RISC-V, которая пришла на смену предыдущему стандарту NASA на базе архитектуры PowerPC.
Приведу отличную подборку материалов с недавней международной конференции RISC-V в космосе.
Комбинация технологической зрелости (масштабируемые ядра/чиплеты), экономических стимулов и крупных референсов (GF-MIPS, NASA HPSC) указывает, что доля RISC-V будет расти - и в серверном, и в специализированных сегментах. При этом для «честных» сравнений по производительности важно дождаться и опираться на открыто опубликованные, воспроизводимые результаты (включая официальные сабмиты SPEC).
Вывод от Альянса RISC-V
RISC-V уже активно применяется в серверных платформах и специализированных системах: открытый стандарт и предсказуемая экономика снижают TCO и ускоряют внедрения. Для дальнейшего ускорения развития и широты внедрения Альянс RISC-V со своей стороны будет и дальше:
поддерживать обучение и сертификацию, формировать кадровый поток;
публиковать методики воспроизводимого бенчмаркинга и лучшие практики;
координировать рабочие группы по профилям (включая RVA) и совместимости;
укреплять программную экосистему — компиляторы, ОС, гипервизоры, инструменты.
Наше приглашение рынку остается неизменным: публикуйте открытые результаты, делитесь наработками, подключайтесь к группам и ускоряйте переход к открытой, воспроизводимой и конкурентной серверной архитектуре. Вместе мы создадим общее будущее, сделав RISC-V не только открытым набором инструкций, а общей платформой для инноваций.
byman
Я впечатлен результатами. Это лучше чем в самом свежем МК от Baikal (https://www.baikalelectronics.ru/products/baikal-u/). И при этом у Вас нет даже умножения.