Как стать автором
Обновить
46.91

FPGA *

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

Сначала показывать
Порог рейтинга
Уровень сложности

Cтандарт RISC-V RV32I и математика с плавающей точкой

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.7K

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

Читать далее

Новости

Создание видеокарты Бена Итера на FPGA чипе

Уровень сложностиПростой
Время на прочтение127 мин
Количество просмотров6K

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

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

Читать далее

HDLbits + Qwen ИИ – пожалуй, лучший способ выучить Verilog

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.3K

Verilog вряд ли можно назвать простым языком. Он требует понимания основ цифровой логики, работы аппаратуры, смены парадигмы мышления с процедурной на декларативную (описание структуры, а не алгоритма)...

В классическом программировании вы видите результат сразу после запуска программы. Скажем, программирование на C# - доступно каждому, кто готов сделать первый шаг. Немного текста, и по нажатию F5 вы увидите на экране классический "Hello, World!". Всё, ключ к двери в мир разработки в ваших руках... Пусть впереди вас ждут сложные концепции и океан возможностей, именно эта простота делает старт таким увлекательным и доступным.

С Verilog всё гораздо сложнее. И хотя, в мире ПЛИС аналогом "Hello, World!" может быть мигающий светодиод или простой счётчик, результат вашей работы будет виден только после загрузки кода на плату и проверки его работы.

Появление онлайн-симулятора HDLBits сделало изучение Verilog гораздо проще и увлекательнее, чем когда-либо прежде. А доступные каждому платы с ПЛИС китайской компании Gowin Semiconductor (отладочная плата с ПЛИС, на которой можно развернуть процессор RISC-V — стоит всего 2000 рублей) позволяют попрактиковаться на реальном «железе» практически бесплатно. При наличии опыта программирования, освоить Verilog будет проще, чем вы думаете. 😉

Если вам нужно закрыть этот «пробел в образовании» и познакомиться с RTL-дизайном, начинайте прямо сейчас! Но обо всём по порядку.

Читать далее про HDLbits!

Векторизация в RISC-V. Основы

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров4.3K

Многие современные вычислительные задачи, в частности повсеместная обработка изображений и звука или работа с матрицами для ИИ, хорошо поддаются параллелизации на уровне данных.  Чтобы ускорить такие вычисления, производители процессоров добавили в архитектуры специальные SIMD инструкции, которые позволяют работать за одну инструкцию сразу с несколькими элементами.

В процессорах архитектуры x86 SIMD инструкции добавляются по принципу ad hoc. Из-за такого подхода, легаси и требований обратной совместимости в x86 накопилось много проблем.

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

В этой статье рассмотрим основные принципы работы векторного процессора и базовые векторные операции с памятью и арифметикой.

Читать далее

Истории

Chisel, первый взгляд RTL-разработчика

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров721

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

Читать далее

Армения посреди Америки, Китая и России: отчет с EDA Connect 2025

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.6K

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

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

Читать далее

Scala/Chisel против SystemVerilog: генерируем сложные цифровые схемы

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров3.1K

В наши дни общепризнанный стандарт для RTL-описаний — это язык SystemVerilog, но популярность сейчас набирает его альтернатива, Chisel. Далее я расскажу подробней об этом языке, его преимуществах, недостатках и рисках, связанных с переходом на Chisel со стандартного стека. Отдельно остановлюсь на функциональном программировании — возможности Chisel, которой нет в SystemVerilog, — и на дополнительных возможностях Chisel, улучшающих механизм переиспользования модулей. А также о том, почему код на Chisel менее подвержен ошибкам и всегда работает. Ну, почти всегда.

Читать далее

Набрасываем на Verilator

Время на прочтение6 мин
Количество просмотров896

Эта статья не является прямым продолжение статьи Время собирать пакеты, но затрагивает связанные темы. Учимся создавать артефакты в рамках концепции Инфраструктура как Артефакт. Будем разворачивать Verilator в Kubernetes.

Читать далее

Задачки на Verilog — новый раздел на сайте

Время на прочтение3 мин
Количество просмотров2.6K

Программируемая Логика - увлекательный и своеобразный мир - к сожалению среди большинства из нас, знатоков Python, JS, Go, Java, C++ да и среди любителей Arduino и прочих микроконтроллеров она не так широко "распростирает свои руки".

Давно хотелось среди задачек и головоломок на "обычное" программирование внедрить на сайте и горстку упражнений из этой таинственной области. Мешало банальное отсутствие собственного опыта в ней (за исключением нескольких занятий по AHDL в далёкие вузовские годы).

Мотивация (или везение?) пришло с очередной новой работой - хотя она не связана с PLD/FPGA, но в моей текущей компании эти направления значительно развиты, есть и знатоки - которые подсказали кое-что по инструментам, по выбору языка - а заодно показали и репозиторий с "домашками" от их собственного курса... Я засучил рукава, добавил компилятор в "песочницу" и вот уже первые несколько заданий ждут энтузиастов :) Также ждём знатоков которые захотят помочь с идеями новых задач и верификацией существующих. Итак, переходим к подробностям...

Итак, к подробностям!

Алгоритм межкадровой разности на FPGA стереокамере

Время на прочтение4 мин
Количество просмотров2.3K

В этой статье я расскажу о продолжении работы над своим проектом стереокамеры на базе FPGA Gowin. В последней версии я добавил блок расчета попиксельной межкадровой разницы, используя встроенную в один корпус с FPGA SDR SDRAM память

Читать далее

В Мексике студенты отличаются дисциплиной, а у спецназа большие автоматы

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3.2K

Провел семинар по SystemVerilog, Gowin FPGA и Tiny Tapeout в городе Тихуана, Мексика. Главное впечатление: я в первый раз в жизни вижу студентов, которые приходят в 8 утра, делают упражнения по верилогу до 6 вечера, с перерывом на полуторачасовый обед, и при этом все 20 студентов выполнили все вариации упражнений которые я от них хотел.

Читать далее

Из студентов в инженеры: как перестать бояться и полюбить системную верификацию

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров2.4K

Привет, Хабр! На связи Михаил Степанов, инженер в группе функциональной верификации YADRO. Еще в прошлом году мы с моим коллегой Романом Казаченко участвовали в хакатоне по разработке микропроцессоров как студенты, а сейчас — помогаем с задачами для SoC Design Challenge как сотрудники компании-организатора. В статье расскажем, что ждет участников трека «Системная верификация СнК» в этом году и как подготовиться к этому испытанию.

Если вы не планируете участвовать в хакатоне, но вам интересно, как инженеры тестируют системы на кристалле перед запуском в производство, эта статья тоже будет вам полезна. На примере заданий хакатона я кратко объясню, что такое системная верификация, из каких блоков состоят СнК и какие инструменты используются для их тестирования.

Читать далее

PAL видеоадаптер на FPGA с буфером кадра

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров5.9K

Наверное, каждый второй разработчик на ПЛИС в начале своего пути пытался визуализировать работу своих схем. Кто-то подключал TFT-дисплей, кто-то — VGA монитор. А у меня под рукой оказался только телевизор с композитным входом. Ну что ж, работаем с тем, что есть!

Читать далее

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
8 апреля
Конференция TEAMLY WORK MANAGEMENT 2025
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область

От ASCII к ASIC: портируем donut.c на крошечный кремниевый срез

Время на прочтение10 мин
Количество просмотров1.7K

Прошло много лет с тех пор, как я написал donut.c, и всё это время я не раз задумывался, можно ли как-то упростить этот проект. Например, может быть, нашёлся бы способ очертить пончик лучами, дописав для этого немного кода. В октябре 2023 года я написал твит о совершенно внезапном просветлении, позволившем мне найти новый подход к этой проблеме — без привлечения памяти, без каких-либо синусов, косинусов, без квадратных корней, деления, строго говоря, даже без умножения. Всё нужное можно отобразить с помощью одних только сдвигов и сложений. Вот обновлённая версия на C.


Читать дальше →

Гений. Миллиардер. Плейбой. Филантроп. Участник «Технотекста-7»

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.6K

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

Читать далее

Сумматор, триггер, регистр, почти счётчик, и можно было бы больше и лучше на асинхронной логике, но надо менять IDE

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.4K

С чего стоит начать, с того, что IDE у меня пока Gowin 1.9.9.03 Education. Но если кто-то захочет посмотреть только файл Logisim Evolution, то для него это значения не имеет. Свободное время я как мог отдал этой работе, не забывая при этом отдыхать, без этого вообще никак. Исправил сделал доработку полного сумматора, отладил проект асинхронного счётчика в Logisim Evolution v3.9.0. Плата всё та же - Tang nano 9k. Все проекты в Zip папках. Это всё та-же асинхронная логика, тактирование тут применяется собственного изготовления и действует как замена сигнала согласования. И плюс своя версия языкового описания в структурном виде схем на базовых логических элементах (символы могут быть заменены на более визуабельные, просто на настоящий момент передать смысл описания и для чего оно такое и как это можно использовать). Всё ещё предположительно Fast триггеры и регистры (проект триггера архивирован). Если вам ещё не надоело читать - прошу далее, в конце ждёт видео (и ссылка на видео с рутуба) с работающим асинхронным шестнадцатиразрядным счётчиком на базе сумматоров и регистров. Если кому нужны доказательства, как оказалось, то все проекты в архивах по предоставленным в публикации ссылкам. Кроме того- публикация ничего не доказывает, это просто описание проделанных мною работ, часть которой является вполне успешной, а часть - не очень, но направление асинхронной логики интересное и мало исследованное.

Читать далее

SEC-Сумматор с SIPOPISO на ∀ количество бит

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.1K

Пока одни пытаются учить других как надо что-то там делать на ПЛИСах, я продолжаю постигать дзен в имплементации никому ненужных идей не несущих какой-либо практической ценности. Я уже делал и сумматор с одним уровнем логики, и рисовал картины-на-кристалле виваде, и делал ненормальное проектирование в вивадском ECO флоу (txtвидео), и даже делал Трахтенберга на ПЛИСах.

Сегодня мы продолжим путь издевательства над нашей дорогой областью программируемой логики и попробуем што-то новенькое: а именно мы перевернем типичную фразу "Да у нас в плис все параллельно" и сделаем последовательный сумматор на одном Full Adder, но который может складывать числа любой положительной разрядности ну на оооочень высокой тактовой частоте доступной простой смертной логике.

Читать далее

Стереокамера машинного зрения c поддержкой ИИ на базе FPGA и Arduino Portenta H7

Время на прочтение10 мин
Количество просмотров7.9K

В статье рассмотрен процесс проектирования модуля стереокамеры на базе двух монохромных сенсоров MT9V034. Для управления матрицами и сшивания картинки с двух видеопотоков используется FPGA Gowin GW2AR. Использование FPGA и сенсоров с глобальным затвором позволило точно синхронизировать время экспозиции, таким образом сшитое изображение содержит два кадра, которые снимают объект в одно и то же время с наносекундной точностью. Модуль подключается в качестве «шилда» к промышленной отладочной плате Arduino Portenta H7. Комбинированный видеопоток обрабатывается библиотекой машинного зрения OpenMV на Arduino. Разработка проекта ведется в специализированной IDE от OpenMV на MicroPython, что позволяет быстро прототипировать устройства с использованием алгоритмов машинного зрения. После отладки камера работает автономно, весь код исполняется микроконтроллером на Arduino. В библиотеке OpenMV реализовано большое количество функций обработки изображений, от базовых преобразований и фильтров, до машинного обучения. Поддержка TensorFlow Lite позволяет обнаруживать объекты на стереопаре, сопоставлять их и рассчитывать расстояние до этих объектов. Так же в библиотеке реализованы функции построения карты глубин, что позволяет использовать разработанную камеру для реализации алгоритмов автономной навигации.  

Читать далее

Введение в ПЛИС: 1. Что такое ПЛИС

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров14K

Первая глава из цикла "Введение в ПЛИС". В ней мы попытаемся разобраться в том, что вообще из себя представляют программируемые логические интегральные схемы, какие бывают типы, вспомним историю развития ПЛИС. Также попробуем понять, чем они отличаются от других интегральных схем, в чем преимущества и недостатки. Обсудим в общих чертах, как с ними работать, кто является основными игроками на рынке программируемой логики. Данная статья носит обзорный характер и не требует специфических знаний.

Читать далее

Знакомство с AI, собеседование и основы DSP

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.1K

Пару месяцев назад я проходил собеседование, где требовался некоторый опыт в DSP, и на вопрос, является ли CIC фильтр БИХ или КИХ, я ответил, что КИХ, на что мне ответили, что раз там в структуре рекурсия, то он именно БИХ. Я несколько удивился, но понял ход рассуждений собеседующего и в принципе согласился с таким подходом. Мой давний опыт с CIC фильтрами касался программирования DDC GrayChip и Analog Devices и моделирования трактов SDR на С и в Octave, при этом в качестве имплементации CIC для моделей я использовал всем хорошо известную функцию скользящего прямоугольного окна.

Читая Хабр и отмечая постоянный рост сообщений об успехах AI - и микросхемы он разрабатывает, и программы пишет, и даже угрожает Stack Overflow, решил, что пора познакомиться c этой технологией в каким-нибудь проявлении.

Установив в Chrome Merlin, спросил его как сделать эхолот для рыбалки, какие датчики можно для него купить, какой многоканальный быстродействующий АЦП можно купить на Али для RaspberyPI и как посчитать ширину диаграммы направленности антенной решётки из 8 элементов. В целом я не узнал ничего нового, кроме предупреждения, что с АЦП могут быть проблемы подключения по SPI по быстродействию, зато этот бот одобрил применение режима DMA для ввода данных. Ну и программу для расчёта ДН на С мне показали достаточно правдоподобную. Ссылок на товары на Али я не получил, но получил набор фраз для поиска. В общем, несмотря на периодические упоминания сложности обсуждаемых вопросов и потенциальной нехватки квалификации у вопрошающего, общение было если и не очень плодотворным, но вполне профессиональным и дружелюбным.

Читать далее
1
23 ...