Обновить
26.17

FPGA *

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

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

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

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

В предыдущей части был рассмотрен основной подход, применяемым для тестирования сложных цифровых устройств - constraint random testing. Мы узнали, как автоматизировать проверку корректности работы устройства с помощью сравнения его выходов с эталонной моделью. Тестовые окружения, работающие по такому принципу, называются self-test testbench. Мы увидели из каких компонентов строятся тестовые окружения и разработали структуру окружения для проверки сумматора с AXI-Stream интерфейсами. В этой статье мы перейдем от теории к практике и покажем, как реализовать это окружение на языке Verilog.

Читать далее

Установка OC Linux на плату Kintex 7 (KC705) от Xilinx с софт-процессором MicroBlaze часть 1

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

Данная серия статей является туториалом по установке линукса на плату KC705 с софт-процессорным ядром Микроблэйз.

В первой части я описываю процесс создания схемы платформы, на которую мы поставим систему, с описанием некоторых нюансов.

Во второй части я опишу процесс сборки образа линукса и тестирование его работоспособности на отладочной плате путём прошивания через usb.

В третей — расскажу о том, как прошить SPI флэшку на плате, чтобы система стартовала сразу при включении платы.

Буду рад любым советам, замечаниям и фидбэку в комментариях. Статью считаю полезной, т.к. в процессе столкнулся с достаточно большим количеством неочевидных вещей, настроек и решений, информацию о которых в интернете нашёл с трудом. Да и вообще, актуальных туториалов и статей, конкретно по этой отладочной плате в интернете ничтожно мало. Поехали!

Читать далее

Эксперименты с цифровым КИХ фильтром в плате FPGA MCY316

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

В своей предыдущей статье я написал, как произвести оцифровку звукового сигнала FPGA платой MCY316. В том проекте данные полученные из АЦП просто передавались в компьютер через последовательный порт. Уже на компьютере данные принимались из последовательного порта программой на питоне и отрисовывались в окне.

А сейчас я хочу модифицировать этот проект и добавить в FPGA еще цифровой фильтр, чтобы разобраться, как он работает.

Рисунок выше показывает схему моего эксперимента.

Читать далее

Алгоритмы на FPGA: Алгоритм Луна

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

ПЛИС-культ привет, хабрунити!

Задумывались ли вы когда-нибудь над тем, что может быть общего у банковской карточки, IMEI телефона и вагона РЖД? В этой статье вы найдете ответ на этот вопрос и увидите его реализацию для ПЛИС.

Читать далее

Что делать, если человечество не сможет создать искусcтвенный интеллект никогда?

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

Любая комбинация софтвера и цифрового хардвера - от микроконтроллера, двигающего дворники у автомобиля - до серверной фермы с много-много-ядерными процессорами, аппаратными ускорителями ML и ChatGPT - сводятся к конечному автомату с достаточно большим состоянием. Независимо от сложности и адаптивности программ.

Сводится ли к конечному автомату человеческий интеллект? К сожалению, у человеческого интеллекта есть атрибут, природа которого современной науке неизвестна и который никогда не наблюдался у конечных автоматов, например у арифмометра. Этот атрибут - ощущение собственного "я", self-awareness. Конечно вы можете сделать в программе переменную "я_чувствую_собственное_я" и присвоить ей true, а потом утверждать, что вы симулируете собственное "я", но это жульничество, а не технология.

Я вовсе не пытаюсь нагонять мистику или агитировать за бога. Self-awareness наверняка такой же физический феномен, как какая-нибудь термоядерная реакция. Но скажем древние греки не знали природы термоядерной реакции. Наверное, они вели диалоги типа "если ты не веришь, что Солнце - просто большой костер из дров, то значит ты веришь в сказки про Зевса и других богов?"

Что же делать?

Как мы впервые делали инженерный «хакатон» и что из этого вышло

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

Привет, Хабр! Не так давно, у себя в блоге мы анонсировали студенческий инженерный «хакатон» YADRO SoC Design Challenge по проектированию современных микропроцессоров на базе архитектуры RISC-V. Теперь будет логично поделиться подробным рассказом, как это было. Спойлер: первый блин не комом, а кое в чём мероприятие даже приятно удивило. Детали читайте под катом.

Приятного чтения!

“FPGA наизнанку” — мультфильм про вычисление CRC и parallel CRC

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

Друзья пришла в голову идея создать несколько обучающих мультфильмов про FPGA в которых было бы показано не только мигание светодиодов на плате во время манипуляций над ней, а так же визуализация логики схемы в реальном времени.   

Для первого видео в качестве экспериментальной схемы выбран вычислитель CRC (cycle redundancy check) на основе сдвигового регистра с обратной связью.

Каким экспериментам подвергается схема в процессе демонстрации проще показать чем «пером описать» - поэтому давайте посмотрим видео:

Смотреть и читать далее

III Конференция FPGA разработчиков: теперь в Мск и СПб

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

Всем-FPGA!

Вот и осень, а это значит, что настала пора для нашей очередной (уже третьей) встречи FPGA / ПЛИС разработчиков, которая пройдёт в формате конференции FPGA-Systems 2021.2.

Читать далее

Боремся с таймаутами при использовании USB 3.0 через контроллер FX3, возникающими при определенных условиях

Время на прочтение11 мин
Количество просмотров3.4K
Итак, в блоке из предыдущих трёх статей, мы рассмотрели, как можно изменить идеологию, принятую в первой версии комплекса Redd, заменив двухпроходную прокачку потоковых данных (сначала в буферное динамическое ОЗУ, а уже затем – в PC через интерфейс USB 2.0) на однопроходную (сразу в PC через интерфейс USB 3.0). Всё было замечательно, все тесты проходили на ура… И тут я решил проверить систему при поведении источника, отличном от того, в котором работали инженеры Cypress. И сразу нарвался на проблему, которая чуть было не похоронила все мои задумки. Как я к этому пришёл, и как прорвался – будет описано в данной внеплановой небольшой статье. Девизом её я бы сделал фразу, что не всегда хорошие показатели являются признаком полностью работающей системы.


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

Инкапсулятор Etherblade.net и импортозамещение сетевых компонентов (часть вторая)

Время на прочтение5 мин
Количество просмотров5.3K
image

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

Даже несмотря на то что хардварный дизайн стоит того что бы заниматься им исключительно для удовольствия, в данной статье мне хочется уделить внимание практической ценности данного занятия. В частности, наш разговор пойдет от том как создать сетевую инфраструктуру для операторов связи с использованием инкапсулятора Etherblade.net, реализованного на FPGA.

Данный текст является некоторым экскурсом в сетевые технологии и для того чтобы уместить такую обширную тему в рамках одной статьи, я решил написать ее в контексте некоторого плана действий или, если желаете, ответа на следующий вопрос – «Как используя FPGA и опенсорс максимально эффективно заместить оборудование от Cisco и Juniper».
Итак, начнем.
Читать дальше →

Vivado: Picasso mode

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

Аннотация


Безумию все возрасты покорны


При проектировании каких-либо модулей на ПЛИС невольно иногда приходит в голову мысль о не совсем стандартном использовании самой среды проектирования и инструментов, которые она предоставляет для проектирования. В этой небольшой заметке мы рассмотрим, как с помощью инструмента управления средой, реализованного на Tcl, мы можем буквально рисовать на ПЛИС фотографии, картины, портреты и мемасики.


Такой необычный «маршрут проектирования» был реализован еще полтора года тому назад, но вот только сейчас пришла мысль оформить его в виде заметки, в которой имеется небольшая практика применения Tcl скриптов для управления средой проектирования, в данном случае Vivado. Однако при небольших доработках все легко может быть адаптировано под другие среды разработки, например Quartus II.


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

FPGA-ускорители уходят в облака

Время на прочтение11 мин
Количество просмотров16K
FPGA-ускорители уходят в облака, статья от Selectel

Появление на рынке FPGA-ускорителей, которые можно перепрограммировать сколь угодное число раз, причем на языке высокого уровня типа "С", стало настоящим прорывом в нише высокопроизводительных вычислений. Но не меньшим прорывом стала возможность использовать технологию FPGA, не покупая эти весьма дорогостоящие адаптеры (цена в России от 250 тыс.руб.), — а просто арендуя выделенный сервер с ускорителем в облаке провайдера.

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

SDAccel — проверяем передачу данных

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


В предыдущей статье «SDAccel – первое знакомство» я попытался описать основы применения OpenCL на ПЛИС Xilinx. Теперь настало время поделиться результатами экспериментов по передаче данных на модуле ADM-PCIe-KU3. Проверяется передача данных в обоих направлениях. Исходный код программ размещён на GitHub: https://github.com/dsmv/sdaccel
Читать дальше →

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

Система синтеза асинхронных схем Petrify: проблемы и их решение

Время на прочтение6 мин
Количество просмотров3.8K
Сказать, что Petrify решает, поставленные перед ней задачи, можно лишь с большой натяжкой. Вернее она кое-что может для небольших заданий (где количество сигналов едва превышает 20), проблема взрыва состояний так и не была решена. Но и для таких задач удовлетворительный результат не гарантирован. Декомпозиция далеко не всегда дает приемлемые результаты.

В чем причина этих неудач? Я бы назвал 3 основные:

1. Увлеченность STG. Да, это красивая, забавная модель, очень интересно играть маркерами и т.п. Но, подумайте, процесс переключения сигналов схемы это такой же процесс как выполнение какой-либо программы. Мы используем для описания программы сети Петри? Для чего тогда они нужны при описании процессов, происходящих в схеме? В результате разработчики Petrify львиную долю своих усилий потратили на изучение свойств сетей Петри. А собственно задачи синтеза схем так и не были решены.

2. Упор на «вычислительность». Под этим я подразумеваю убежденность, что для синтеза схем обязательно нужно вычислять логические функции. Как результат, вместо решения задач синтеза, исследовались только возможности уменьшения таких вычислений.

3. Неспособность разобраться в причинах возникающих проблем. Но об этом ниже.
Читать дальше →

MIPSfpga и UART

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

Прошло чуть больше месяца с тех пор, как я портировал open source модуль UART16550 на шину AHB-Lite. Писать об этом на тот момент было несколько не логично, так как еще не была опубликована статья про прерывания MIPSfpga.


Если вы опытный разработчик, то для вас только одна полезная новость: UART16550 добавлен в состав системы MIPSfpga-plus, дальше можете не читать. А тем, кого интересует разобранный пример использования этого модуля — добро пожаловать под кат.


image

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

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

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

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


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


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


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


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

MIPSfpga: вне канона

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

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

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

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

В конце сентября - начале октября в рамках межрегионального форума «ИТ-трансформация 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 мин
Количество просмотров1.5K

Всем привет!

Хочу поделиться своим опытом использования 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 мин
Количество просмотров6.4K

В воскресенье состоялась встреча в хакерском клубе 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).

Читать далее