Обновить
39.1

FPGA *

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

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

Отладочная плата ПЛИС — Франкенштейн. Звуки и музыка

Время на прочтение8 мин
Охват и читатели9.4K

Сегодня у нас самая предновогодняя серия про ПЛИС и отладочную плату Френки. Предыдущие серии 1, 2.


Мы уже передавали тоновые сигналы по радио с помощью нашей платы Франкенштейн. Теперь попробуем воспроизводить звуки и музыку.


Для этого подключим к ПЛИС обычный динамик. К Френки подключен генератор на 25.175 МГц. Если поделить эту частоту до диапазона слышимых частот и подать на вывод ПЛИС, то мы можем услышать звук. Меня частоту мы можем получить разные звуки.


Тестировать качество звучания будет самый лучший слухач в доме — Маша. Диапазон частот в 60 КГц — это вам не шутки! )))


Разовьем эту идею

MIPSfpga: вне канона

Время на прочтение10 мин
Охват и читатели16K

В течении последних трёх недель в МИЭТ, МГУ, МИФИ, МФТИ и других российских ВУЗах прошли семинары по процессору на ПЛИС MIPSfpga. В рамках семинаров прошли лабораторные работы на которых демонстрировалось как применять MIPSfpga на практике.
В публикации я расскажу о своих экспериментах с MIPSfpga, которые выходят за рамки лабораторных работ, рассмотрю возможности интеграции процессорного ядра MIPSfpga с IP-блоками opencores.org. Также поведаю о портировании MIPSfpga на некоторые платы на базе ПЛИС Altera (приведены значения Fmax и показатели использования ресурсов ПЛИС).
Читать дальше →

По следам ПЛИСового кейс-чемпионата

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели7.8K

В конце сентября - начале октября в рамках межрегионального форума «ИТ-трансформация 2025: профессионалы цифрового будущего» [https://itforumaltai.ru/2025/], проходившего в г.Барнаул проводился кейс-чемпионат «Код успеха». В номинации «Промышленная разработка» два из тех кейсов были посвящены проектам на ПЛИС:

Кейс 1. Retro Game Console – разработка устройства вывода графики, анимации и текста с интерактивными эффектами

Данный кейс родился спонтанно, под влиянием книг Steven Hugg «Making Games for the NES» и «Designing Video Game Hardware in Verilog», а также ряда дискуссий в чате «Школы синтеза цифровых схем» и от этого кейса ожидались как минимум яркие красивые картинки, да и обычно вывод на дисплей/экран и манипуляции с картинками доставляют яркие и незабываемые эмоции (особенно при отладке, да…)

Кейс 2. «RTL-SoC-challenge» – разработка и прототипирование системы-на-кристалле на базе FPGA

Второй кейс родился по образу и подобию SoC Design Challenge 2025 [https://edu.yadro.com/soc-design-challenge/ https://habr.com/ru/companies/yadro/articles/909410/], но в несколько упрощенном (??ооочень не точно) варианте – только RTL синтез с небольшими включениями тестирования модулей.

В этом кейсе участникам в качестве подопытного кролика был предложен вариант многопоточной архитектуры процессора RISC-V, разработанного для учебного курса [https://riscv-alliance.ru/material/risc-v-dlya-fpga-arhitektura-mikroarhitekturnye-realizaczii/] созданного в рамках выполнения гранта Альянса RISC-V на разработку учебных материалов.
Соревнование собрало команды и индивидуальных участников из АлтГУ, ИТМО, МИЭМ НИУ ВШЭ, РТУ МИРЭА, Санкт-Петербургского политехнического университета. Работы оценивали специалисты компании YADRO (огромное спасибо Юрию Гринишкину и Евгению Максимову за помощь и организацию процесса). В целом инженерами отмечен высокий уровень участников и большой объем работы, проделанный за неполные две недели, отведенные на решение задач.

Читать далее

Упрощение прототипирования и верификации RTL с помощью Python

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели992

Всем привет!

Хочу поделиться своим опытом использования Python на этапах прототипирования RTL-модулей и последующей верификации. Как RTL-инженер, я часто создаю модели на Python для быстрой проверки логики и алгоритмов будущего RTL. Это подход уменьшает вероятность последующих правок в логике RTL в случае если алгоритм не подходит. Однако при переходе к тестированию на SystemVerilog всегда возникала проблема с переиспользованием написанной Python модели устройства: нужно было писать обвязку на C и использовать DPI-C интерфейсы, чтобы интегрировать Python-код модели в верификационную среду. Это занимало время и было неудобно.

Недавно я открыл для себя библиотеку PyStim (Bind Python & SystemVerilog), которая кардинально упростила процесс. PyStim позволяет напрямую вызывать Python-методы и работать с Python-объектами из среды SystemVerilog без необходимости писать обвязку на C или использовать DPI-C. Это значительно снизило трудозатраты и ускорило адаптацию уже готового Python-кода в тестбенче.

Читать далее

Пайка плавно перешла в Верилог и обсуждение работ в электронной промышленности

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

В воскресенье состоялась встреча в хакерском клубе Hacker Dojo в Silicon Valley. Встреча была анонсирована в украинской фейсбук-группе U4U Uniting for Ukraine USA и русскоязычной группе Russian Speaking US QA Network. Заявленная тема была "Учимся паять", но так как участники спрашивали "и какое это имеет отношение к трудоустройству", то под конец я показал:

1. Как компроненты, к которым мы паяли хедеры (микрофоны и аудио декодеры) - применяются в упражнениях c FPGA платами.

2. К каким типам работ ведут упражнения на FPGA платах: проектировщик логики блоков микросхем (RTL Design Engineer), тестировщик/верификатор (Design Verification Engineer) и инженер для работы с клиентами (Application Engineer).

Читать далее

Разработка и тестирование целочисленного сумматора с AXI-Stream интерфейсами. Часть 1

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

В данном цикле статей будет представлен процесс разработки и тестирования RTLмодулей на языке Verilog. В качестве примера будет рассмотрен целочисленный
сумматор с AXI-Stream интерфейсами. Мы разберем некоторые приемы и паттерны,
часто используемые при проектировании цифровых устройств. Также мы покажем
типовую структуру тестового окружения для проверки RTL-модулей.
Описанное нами окружение будет состоять из отдельных компонентов, у каждого из
которых будет своя конкретная задача. При правильном подходе к разработке этих
компонентов их можно будет повторно использовать в других тестовых окружениях.

Читать далее

Как подготовиться к собеседованию в Samsung Advanced Computing Lab

Время на прочтение7 мин
Охват и читатели13K

Я работаю проектировщиком аппаратного блока графического процессора в телефонах Samsung, в рамках совместного проекта с AMD. Сейчас наш менеджмент расширяет команду и поощряет инженеров распостранять информацию о новых позициях среди своих знакомых. Я решил написать это пост для более широкой аудитории, так как множество людей, способных пройти интервью на RTL или DV позицию - больше, чем множество моих знакомых. Если вы сможете прислать мне ответ на задачку в моем посте вместе с вашим резюме, я перешлю его нанимающему менеджеру и рекрутеру нашей группы (в комментах прошу ответ не писать). Если резюме им понравится, вам нужно будет пройти стандартное собеседование на несколько часов, с несколькими инженерами, у каждого из которых свой набор задачек.

Также я покажу материалы, по которым можно готовиться к собеседованию, особенно если вы студент или у вас ограниченный опыт в микроэлектронной промышлености.

Читать далее

Темное искусство функциональной верификации цифровых микросхем

Время на прочтение3 мин
Охват и читатели6.8K

Сегодня, в субботу 26 февраля, на Сколковской Школе Синтеза Цифровых Схем Михаил Коробков проводит занятие по технологиям функциональной верификации: constrain solvers, cover bins и concurrent assertions. Примеры, которые мы подготовили для школы, вращаются вокруг протокола AXI для систем на кристалле, вопросы про который спрашивают например на интервью в хардверное отделение компании Meta и другие.

На предыдущих занятиях школы мы изучали в основном аспект проектирования на языке описания аппаратуры Verilog. Но как участники уже успели заметить, Verilog — это не только язык для описания и синтеза схем, но и язык программирования для написания тестов. В некоторых компаниях на каждого инженера, который пишет код на верилоге на уровне регистровых передач, приходится два или три инженера, которые пишут код для верификации.

Суть деятельности Verification Engineer заключается в создание фреймворков, которые тестируют хардверные дизайны на прочность, посылая к ним псевдослучайные транзакции и учитывая покрытие интересных сценариев (functional coverage). Базовые элементы этих технологий должен знать и хороший RTL Design Engineer.

Приглашаем присоединяться к трансляции занятия на канале школы в YouTube, в субботу 26 февраля с 12.00 до 15.00:

Процесс верификации блока микросхемы:

Собираем компилятор для ПЛИС Lattice ECP5 в лице Yosys и NextPNR для работы в ОС Windows

Время на прочтение9 мин
Охват и читатели3.6K

Наш цикл про ПЛИС Lattice ECP5 растянулся уже на шесть статей. Мы уже научились не только создавать простые проекты для них, но набили руку в разработке сложных систем на базе кроссплатформенной открытой среды LiteX. В целом, я уже набрал материалов, чтобы выдать инструкцию, как подключится к шине Wishbone в роли активного устройства (Master), но перед публикацией хочется провести ряд проверок, чтобы не наболтать не того.

С другой стороны, ещё в первой статье цикла я обещал, как будет формализована методика сборки синтезатора Yosys и разводчика NextPNR под Windows, рассказать, как это сделать, так как на тот момент у меня процесс сборки прошёл в режиме «неделю промучился, как-то сделал, повторить не смогу». Мой коллега систематизировал все те наброски, и теперь я могу поделиться итогами с общественностью. Так что, кто дружит с Linux, сегодня вряд ли узнает что-то интересное, а вот любители Windows – получат сведения, как начать работать с ПЛИС Lattice в этой ОС. Приступаем.

Читать далее

Пять презентаций по RISC-V процессорам, музыка на ПЛИСах и продолжение следует

Время на прочтение5 мин
Охват и читатели5.8K

Школа синтеза цифровых схем, о которой вы могли читать месяц назад в посте "Проектировщики RISC-V из Yadro покажут школьникам как проектировать процессоры" - прошла на ура. Все 25 мест в офлайне в Сколково были все время заняты. Присутствовали школьники, студенты, преподаватели вузов и кружков. Всего было подано 86 заявок. Все ~70 FPGA плат которые пожертвовали Наносемантика, Максим Маслов и другие, были быстро разобраны, люди охотно проходили роснановский онлайн-курс чтобы получить сертификат и соответственно плату.

Из новых пунктов программы больше всего интереса вызвали опыты по распознаванию мелодий с помощью zero-crossing и конечных автоматов, реализованных в ПЛИС. Это занятие провели преподавательница флейты Мария Беличенко и молодые инженеры Семён Москоленко (МИРЭА) и Виктор Прутьянов (МФТИ, Сколтех, SberDevices) - см. видео в посте.

Так как школа оказалась популярна, ее решили расширить до полноценного семестрового курса по субботам, начиная с 30 октября 2021, с объемом материала на уровне университетских лабораторных по FPGA (типа MIT 6.111), к которым мы добавили элементы компьютерной архитектуры, базовый туториал для ASIC и некоторые умения из промышленности.

Про школу на ChipEXPO и планы будущей

Асинхронная работа с libusb 1.0

Время на прочтение25 мин
Охват и читатели11K
Несколько статей назад мы рассмотрели методику работы с USB-устройством при помощи библиотеки libusb. Данные в устройстве у нас формировались по таймеру, поэтому мы были не просто уверены, что рано или поздно они придут к нам, но даже могли предсказать, через какой срок это произойдёт. Однако в анализаторе (который является конечной целью разработки) данные идут непредсказуемо. Будут данные или нет – зависит от поведения объекта контроля.

Поэтому, во-первых, было бы полезно видеть, какой их объём уже прошёл в буфер, чтобы представлять, работает система или нет. Ну, и во-вторых, если данных не предвидится, а всё интересное уже попало к нам в память, надо иметь возможность прекратить приём и начать разбор того, что уже накопилось. Ни то, ни другое невозможно при использовании функций, которые были рассмотрены в той статье. По крайней мере, со стороны PC. Без читов, добавленных в «прошивку» ПЛИС.

Сегодня мы научимся обращаться к библиотеке libusb асинхронным методом. Это позволит и грубо отслеживать объём уже пришедших данных, и прерывать работу в любой момент, и даже повысить общую производительность системы. Причём всё это будет сделано только за счёт вызова штатных функций libusb. Код для FX3 и ПЛИС мы для этого дорабатывать не будем. Итак, приступаем.


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

Дорабатываем прошивку USB 3.0, используя анализатор SignalTap, встроенный в среду разработки Quartus

Время на прочтение9 мин
Охват и читатели5.1K
В прошлой статье мы сделали черновые прошивки для контроллера FX3 и ПЛИС, чтобы начать работу с шиной USB 3.0. Статья так разрослась, что проверку работоспособности системы мы отложили на потом. Сегодня мы проведём эту проверку (а как выяснится по ходу работ – ещё и оптимизацию «прошивки» для вывода работы на максимальную скорость).

Чтобы повысить полезность статьи, проверку мы будем производить при помощи логического анализатора SignalTap, встроенного в среду разработку Quartus Prime. Он позволит нам снимать временные диаграммы, не подключая никаких щупов к системе и не покупая никакого дополнительного оборудования.


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

Язык программирования P4

Время на прочтение10 мин
Охват и читатели20K

P4 — это язык программирования, предназначенный для программирования правил маршрутизации пакетов. В отличие от языка общего назначения, такого как C или Python, P4 — это предметно-ориентированный язык с рядом конструкций, оптимизированных для сетевой маршрутизации.

P4 — это язык с открытым исходным кодом, лицензируемый и поддерживаемый некоммерческой организацией, которая называется P4 Language Consortium. Он также поддерживается Open Networking Foundation (ONF) и Linux Foundation (LF) — двумя крупнейшими зонтичными организациями в проектах с открытым исходным кодом в области сетевых технологий.
Читать дальше →

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

Musical box and rotary encoder on FPGA board

Время на прочтение3 мин
Охват и читатели4.9K

Introduction


We are the first year students studying Computer Science in Innopolis University and we would like to share our experience in developing a Verilog program to create the coolest (well, at least, the loudest) rotary encoder ever on an FPGA board.

In this article, you will find a wonderful story about our project, the hardware, software we used and some background theory regarding rotary encoder and creating sounds in FPGA’s buzzer. Finally, we will provide a link to a github repository where a reader can access the source code. We hope you will like the project and it will inspire you to make something similar.
So, let’s start!

Hardware and Software


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

Реализация HFT роботов на устройствах CEPappliance

Время на прочтение11 мин
Охват и читатели6.1K
Мы уже 2 года плотно общаемся с HFT трейдерами и разработчиками решений для HFT торговли. И испытываем некоторую неловкость от того, что никто в этой среде открыто не рассказывает о своих технологических успехах. Так как мы делаем устройства CEPappliance на основе FPGA, применимые в том числе для HFT торговли, мы неустанно интересуемся кто и как использует FPGA в этой сфере. Складывается навязчивое впечатление, что FPGA в HFT торговле, как секс у подростков — все о них говорят, но мало кто ими занимается, да еще и успешно.
Читать дальше →

Возможен ли асинхронный процессор

Время на прочтение3 мин
Охват и читатели15K
Цитата из комментариев к предыдущей статье: «Вот, к сожалению, данные, адреса и любые операции над ними не годятся для графового представления. Если придумаете как это сделать — будет революция. А без данных, адресов и арифметики, лучшее что можно сделать асинхронным (с помощью графового метода) — машину Тьюринга. Но никак не процессор, к примеру. Поэтому тематика и заброшена, уже 20 лет как.» В компетенции автора сомневаться не приходится, все-таки доктор наук. А я вот попробую сделать революцию.

Как видно из цитаты проблема состоит из двух частей: операции над данными и операции над адресами. С адресами разберусь в следующей статье, а сейчас — данные.

Для примера попробую сделать схему разряда регистра, выполняющего две операции. Почему две? Потому что две, три операции или десять — принципиальной разницы нет. От увеличения количества операций увеличивается только объем вычислений при синтезе схемы. Главное, чтобы таких операций было более одной. В качестве операций выберу копирование из буфера и сложение с содержимым другого регистра.

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

Отладочная плата ПЛИС — Франкенштейн. Часы. Altera EPM7064 VS Lattice LC4064v

Время на прочтение4 мин
Охват и читатели8.8K

Продолжение предновогодней серии приключений маленькой ПЛИС Altera EPM7064 на отладочной плате — Франкенштейн. В предыдущей серии...


Настала пора сравнить две ПЛИС из одной весовой категории: Altera EPM7064 и Lattice LC4064v. Хотя, один у них — только вес — это 64 макроячейки. В остальном, судя по параметрам, у этих ПЛИС совсем разные назначения. ПЛИС от Altera, судя по документации 2005 года, является просто не молодой, от этого и обладает низким количеством ячеек. Так же, обладает популярным по тем временам напряжением питания — 5 вольт. Максимальная рабочая частота не превышает 200 МГц. В то же время Lattice может работать до частот в 400 МГц, но при этом, питается от напряжения — 3.3 вольта. Да, это не так удобно, как 5 вольт, если мы хотим взаимодействовать со старыми схемами (однако, заявлена толерантность к 5В). В документации на Lattice этой серии указан 2014 год, поэтому я предположу, что это современные высокоскоростные ПЛИС, но малого объема, и судя по "SuperFAST CPLD" в описании, позиционируются они несколько иначе.


Как нам их сравнить? Попробуем решить на них одну и ту же задачу. Часы на Lattice LC4064v мы уже попробовали сделать и у нас получилось. Теперь попробуем сделать часы на Altera EPM7064 — на нашем Франкенштейне.


Узнать, что вышло

Можно скачать материалы семинара Nanometer ASIC (РОСНАНО / МИСиС / Imagination Technologies) — ликбез по всему про чипы

Время на прочтение2 мин
Охват и читатели8K
Господа! Семинар Nanometer ASIC, организованный РОСНАНО, МИСиС и Imagination Technologies, оказался довольно популярным — на него зарегистрировались более 180 человек, пришли 127, причем в аудитории засветились предствители всех значимых российских микроэлектронных проектов — от радиационно-стойких микросхем для космоса из НИИСИ до чипов для умных камер от ЭЛВИС-НеоТек, инженеров из Байкал Электроникс, руководителей проектов по автоматизации проектирования микросхем из МГУ, разработчики российских ПЛИС-ов из Воронежа, преподаватели из ВШЭ/МИЭМ и других вузов, организаторов олимпиад для школьников из МФТИ и многие другие.

Несмотря на то, что для профессиональных спецов по использованию Synopsys IC Compiler семинар был слишком элементарный, но его вводный характер искупился его широтой — инженеры из всей цепочки проектирования и производства могли освежить в памяти области, которые они забыли, инвесторы в полупроводниковой индустрии смогли посмотреть что делают компании, в которые они инвестируют, студенты посмотрели, что им может нравится и так сказать куда копать (в полупроводниковой индустрии Silicon Valley молодые инженеры специализируются в логический / физический / аналоговый дизайн довольно рано в своей карьере).

Ведущий семинара, лектор Калифорнийского университета в Санта-Крус (отделение в Кремниевой долине) Чарльз Данчек (Charles Dancak) отвечает на вопросы:



Скачать все слайды на русском можно здесь.

Под катом — избранные слайды Nanometer ASIC (25 из 322):
Читать дальше →

Статический временной анализ demystified

Время на прочтение7 мин
Охват и читатели16K
Многие начинающие разработчики ПЛИС (и ASIC) не до конца понимают влияние временных ограничений (constraints – далее констрейнты) на результаты синтеза; то, каким образом констрейнты используются в статическом временном анализе. Большая часть литературы по этой тематике сводится к рассмотрению всевозможных видов констрейнтов, но ничего не говорит о внутренней “кухне” и используемых алгоритмах. Рассмотрению констрейнтов посвящен и недавний пост по данной тематике на ГТ (geektimes.ru/post/254932/ [1]). Между тем, констрейнты — лишь вершина айсберга. Их использование должно опираться на фундаментальные знания о статическом временном анализе, которые дают, к примеру, в американских университетах, но ничего не рассказывают у нас. Поэтому, собственно, поговорим о фундаменте.
Читать дальше →

Роботы из «Звездных Войн» на заброшенной военной базе в Вальехо — фоторепортаж

Уровень сложностиПростой
Время на прочтение1 мин
Охват и читатели9.9K

В городе Вальехо, штат Калифорния, до 1996 года работала старейшая военно-морская база на Западном побережье. Сейчас помещения пришли в запустение, но не совсем — в них ежегодно проводится шоу самоделкиных Maker Faire. Я там сделал стенд и заодно поснимал вокруг:

Читать далее