Свободные инструменты для программирования FPGA

Подборка свободных инструментов для программирования FPGA, включающая в себя средства поддержки языков HDL, синтезаторы, симуляторы и некоторые другие.

Программируемые логические интегральные схемы

Подборка свободных инструментов для программирования FPGA, включающая в себя средства поддержки языков HDL, синтезаторы, симуляторы и некоторые другие.


Краткая инструкция, о том, как запрограммировать чип FPGA Gowin с использованием только свободных программных инструментов и комплекта Sipeed Tang Primer 20K Dock.

Захотелось мне как-то перевести управление станком на ПЛИС, а для этого понадобилось ядро процессора. Поиск на opencores не особо помог, x86 лицензированный, ARM лицензированный, NIOS… ну, вы поняли. Если выдумывать свою систему команд, может получиться криво, и главное, где брать компилятор. В общем, всё было сложно, так что на время идею пришлось отложить.
С недавних пор ситуация изменилась, архитектура RISC-V пошла в массы.

Факт: как минимум 150 человек в нашей стране интересуются RISC-V настолько, что их не пугает девятибалльный шторм. Примерно столько мы собрали в офлайне 14 марта в Москве на совместном митапе YADRO с Альянсом RISC-V. Оценили, готов ли RISC-V для мобильных устройств, а для RISC-V, в свою очередь, — высокопроизводительные библиотеки. Рассмотрели экосистему RISC-V для сценариев АСУ ТП — автоматизированных систем управления технологическим процессом. И наконец, в большой дискуссии обсудили, готова ли открытая архитектура к развитию широкой экосистемы открытого ПО в различных областях. Записи выступлений и некоторые интересные тезисы — далее в статье.

Всех, кто работает с софт-ядрами, наверное, можно разделить на две категории: первые хотят запустить на своем ядре Linux, вторые — DOOM. Я отношусь ко второй: идея запустить DOOM на ядре YRV, что я синтезирую на отладках, любезно предоставленных FPGA-Systems.ru, преследует меня постоянно и не дает спать.
Как запустить DOOM с ходу, непонятно, ведь у меня все-таки некоммерческий микроконтроллер. Поэтому начну с подготовительного упражнения, чтобы понять, что возможно реализовать на аппаратной части. Когда мы говорим про DOOM, то вспоминаем другие игры любимой компании id Software — Wolfenstein 3D, Catacomb 3D и Hovertank 3D. В них все начинается с алгоритма отсечения лучей (raycasting), с которым и будем поработать. С raycasting можно получить и doom-образный геймплей, надо лишь улучшить разрешение и текстуры.

Вторая глава из цикла "Введение в ПЛИС". В ней мы переходим от общих понятий к практике — начинаем изучать язык Verilog, его базовые конструкции и принципы проектирования. Материал остаётся доступным для новичков, но потребует больше внимания к деталям.

Не проходит и недели, чтобы в топе Хабра не появилась статья о собеседованиях в софтверной разработке. Но собеседования специалистов, ориентированных на работу с «железом», таким вниманием, увы, обделены. Чтобы это исправить, мы поговорили с коллегами, которые проводят собеседования с будущими инженерами YADRO по направлениям схемотехники, верификации, RTL-дизайна, FPGA и аппаратной разработки. А затем обобщили их опыт и мнение в советах для тех, кто хочет связать карьеру с этими областями.

Студенты обожают ChatGPT. В идеале, они хотят закоротить профессора и чатгопоту напрямую, то есть посылать задачу от профессора гопоте, пересылать ответ профессору, возражения слать гопоте назад итд - пока не получится решения. Лучше всего это делать скриптом, чтобы студент вообще не был вовлечен в решение задачи и занимался своими студенческими делами, пока чатгопота и профессор разговаривают.
Как же обломать крылья этой мечте? Запрещать чатгпт бессмысленно, но как сделать так, чтобы с чатгпт стало сильно труднее чем без него? Чтобы студенты пинали его и так и сяк, но решения бы не получалось, а вот у студентов, которые решили сесть и подумать сами - решение бы получалось?

Здравствуйте. Меня зовут Дмитрий. Сегодня мы научимся работать с SDRAM памятью и нарисуем множество Мондельброта на экране.
Данная статья является продолжением статьи Создание видеокарты Бена Итера на FPGA чипе. Если вы не читали то очень рекомендую. Ну а мы начинаем.

Совсем недавно осознал, что нашему Open Source HW проекту marsohod.org уже пятнадцать лет. С ума сойти можно. Когда время-то пролетело? Как-то даже не верится. Наверное можно попробовать подвести какие-то итоги. Ну или сделать хоть самому себе отчет о проделанной работе..

Что если можно было бы подключить своё AXI-устройство на FPGA к Linux через PCIe за вечер? В этой статье рассказываю, как написать драйвер для UARTLite через XDMA, собрать свою TTY и начать работать с GPS прямо из терминала!

Привет, Хабр! Меня зовут Дмитрий Кишко, я руководитель группы функциональной верификации в YADRO. Представьте, что вы строите космический корабль. Он еще не взлетел, но любая ошибка в конструкции уже может стоить миллионы или даже сорвать всю миссию. В разработке микроэлектроники ситуация похожа: перед тем как чип попадет на производство, его работу проверяют сотни раз, но не физически, а в симуляторах. Этот этап называется функциональной верификацией, и без него современная электроника просто «не взлетит».
Под катом расскажу, как работает команда функциональной верификации, с какими задачами сталкиваются инженеры и почему эта область так важна.

Пополнение среди ультрабюджетных девбордов: FPGA - "отладка" за 201 р.
Самая дешёвая "оценочная плата" с ПЛИС Xilinx Spartan-6 на AliExpress обойдётся в ровно 3000р. На Авито и майнерских "Купи-Продайках" - в 10 раз дешевле. С более "жирным камнем". Никакого подвоха, всё честно.

Стандарт RISC-V RV32I не содержит команд умножения и деления, поэтому интересно, достаточно ли в софт-ядре реализовать стандарт RV32I, чтобы можно было вычислять что-то серьезное. На примере RISC-V процессора YRV, описанного в книге «Inside an Open-Source Processor, мы рассмотрим, как, используя компилятор GCC, рассчитать такие тригонометрические функции, как синус, косинус и тангенс и вывести на экран результат. Даже нарисуем олдскульную синусоиду в VGA-режиме.

Здравствуйте. Меня зовут Дмитрий. Данная статья является продолжением статьи Сборка компьютера sap-1 (компьютер Бена Итера) в игре Turing Complete (если вы её не читали то очень советую). Сегодня мы продолжим исследовать блог Бена Итера, но вместо компьютерной игры мы соберем простейшую видеокарту на FPGA чипе.
Итак почему я выбрал FPGA? Конечно в игре Turing Complete можно собрать видеокарту, но её нельзя подключить к монитору что-бы проверить работу, поэтому мне пришлось перейти на что-то более осязаемое. Поэтому сегодня мы изучим язык Verilog предназначенный для описания микросхем.

Verilog вряд ли можно назвать простым языком. Он требует понимания основ цифровой логики, работы аппаратуры, смены парадигмы мышления с процедурной на декларативную (описание структуры, а не алгоритма)...
В классическом программировании вы видите результат сразу после запуска программы. Скажем, программирование на C# - доступно каждому, кто готов сделать первый шаг. Немного текста, и по нажатию F5 вы увидите на экране классический "Hello, World!". Всё, ключ к двери в мир разработки в ваших руках... Пусть впереди вас ждут сложные концепции и океан возможностей, именно эта простота делает старт таким увлекательным и доступным.
С Verilog всё гораздо сложнее. И хотя, в мире ПЛИС аналогом "Hello, World!" может быть мигающий светодиод или простой счётчик, результат вашей работы будет виден только после загрузки кода на плату и проверки его работы.
Появление онлайн-симулятора HDLBits сделало изучение Verilog гораздо проще и увлекательнее, чем когда-либо прежде. А доступные каждому платы с ПЛИС китайской компании Gowin Semiconductor (отладочная плата с ПЛИС, на которой можно развернуть процессор RISC-V — стоит всего 2000 рублей) позволяют попрактиковаться на реальном «железе» практически бесплатно. При наличии опыта программирования, освоить Verilog будет проще, чем вы думаете. 😉
Если вам нужно закрыть этот «пробел в образовании» и познакомиться с RTL-дизайном, начинайте прямо сейчас! Но обо всём по порядку.

Многие современные вычислительные задачи, в частности повсеместная обработка изображений и звука или работа с матрицами для ИИ, хорошо поддаются параллелизации на уровне данных. Чтобы ускорить такие вычисления, производители процессоров добавили в архитектуры специальные SIMD инструкции, которые позволяют работать за одну инструкцию сразу с несколькими элементами.
В процессорах архитектуры x86 SIMD инструкции добавляются по принципу ad hoc. Из-за такого подхода, легаси и требований обратной совместимости в x86 накопилось много проблем.
Архитектура RISC-V относительно молодая, и при её разработке учтён прошлый опыт. В основе подхода к SIMD в RISC-V заложили идею чистого векторного процессора.
В этой статье рассмотрим основные принципы работы векторного процессора и базовые векторные операции с памятью и арифметикой.

Недавно возникла потребность в быстром погружении в язык разработки Chisel. Для пробы будет разработан простой блок, который будет принимать данные по интерфейсу AXI-Stream, проверять в них контрольную сумму и передавать данные в выходной интерфейс AXI-Stream в случае совпадения контрольной суммы. Реализация блока на SystemVerilog, Chisel, тестовое окружение для проверки - под катом.

Мысль, что Армения удобна тем, что соединяется и с Америкой, и с Китаем - высказал мне один из китайских участников конференции EDA Connect. А мысль, что Армения соединяется еще и с Россией - возникала естественно при просмотре докладов о логическом синтезаторе, статическом анализаторе и верификации с помощью UVM.
Помимо докладов, при конференции прошел хакатон по Verilog и FPGA, на который пришли студенты из Ереванского университета, русско-армянского университета, американо-армянского, французско-армянского, европейско-армянского, и других университетов. Занятно, что второй день хакатона проходил в комнате напротив зала, где большое начальство встречалось с Премьер-Министром Армении. Один из студентов хакатона перепутал дверь, и его перенаправила секьюрити.