Как стать автором
Поиск
Написать публикацию
Обновить
53.15

FPGA *

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

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

In RISC-V Rust

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

Превращаем простой пример распознавания нот из лабораторных работ Школы синтеза цифровых схем в Enterprise. Используем компилятор Rust для RISC-V микроконтроллера YRV-Plus.

Читать далее

Как установить GOWIN EDA для запуска примеров Школы Синтеза

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

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

Чтобы справиться с данной проблемой, группа энтузиастов, под руководством Юрия Панчула, добавила поддержку множества плат и нескольких toolchain’ов от различных производителей FPGA.

В данном туториале, посвященном работе с FPGA от компании Gowin, я расскажу про то, как установить GOWIN EDA, о доступных платах и перефирии к ним и про работу со скриптами сборки примеров.

Читать далее

Внутренняя память ПЛИС, которой всегда не хватает

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

Хотелось бы выделить два основных свойства внутренней памяти ПЛИС:

удобство использования (+)

ограниченное количество (-)

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

В этой статье мы рассмотрим какая внутренняя память есть в ПЛИС фирмы Intel/Altera и возможные варианты оптимизации её использования.

Читать далее

ASIC и FPGA: сорок лет эволюции

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

Внутри каждого современного телефона несколько микросхем ASIC. Ими наполнены автомобили, стойки в центрах обработки данных, датчики «умного дома», и вообще все электронные устройства. Без чипов ASIC был бы невозможен быстрый интернет, трехмерные игры и ускорители машинного обучения. 

Микросхемы ASIC, их родственники FPGA и выросшие с ними технологии проектирования позволили закладывать сложные алгоритмы прямо в «железо». Они разрушили стереотип, что вычислительная система — это только процессор, память и программирование. В статье я расскажу, как развивались ASIC, какую роль в этом процессе сыграли FPGA и каким может быть «железо» будущего.

Читать далее

Приёмник с чередованием во времени

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

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

Во время курса по радиосигналам (по их приему и обработке) в моей голове представлялось это всё как конструктор, и я не видел в этом ничего сложного. По крайней мере, все модели, построенные в Mathcad и MATLAB, давали обнадеживающие результаты, но хотелось это всё проверить на практике и в качестве результата не увидеть первоначально промодулированную идеальную синусоиду, а услышать незнакомый аудиосигнал.

Читать далее

Видеокарта VGA для микроконтроллера. Часть 2. От идеи до мелкой серии

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

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

Идея была обкатана на макете и показала свою жизнеспособность. Однако для ее реализации «в железе», а тем более в серии, необходимо пересмотреть несколько моментов.
Читать дальше →

Реализация кодека 66b/64b на языке VHDL

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

В протоколах передачи данных для стабильной работы используются кодеки, выбранные разработчиками с учётом следующих требований:

равномерное распределение 0 и 1 в канале

простота кодирования/декодирования

иметь небольшую избыточность

Один из самых распространённых протоколов, о которых думаю, если не каждый человек, то уж каждый инженер точно слышал, является Ethernet, который имеет большое количество стандартов. Он так же использует кодек, а именно 66b/64b, который широко известен в инженерных кругах. Вот небольшой список популярных протоколов, использующих этот кодек:

Ethernet (10,40,100G)

Common Public Radio Interface

Fibre Channel (10G, 16G)

Infiniband (FDR, EDR)

Thunderbolt

Читать далее

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

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

Разработка процессора и вообще программируемых микросхем — процесс сложный и длительный. От старта проектирования до получения первых образцов в кремнии проходит больше года. При этом ПО желательно писать и отлаживать параллельно процессу производства, чтобы оптимизировать сроки выхода продукта. Но как это делать, если «железо» еще не на руках или оно есть в очень ограниченном количестве, а нужно многим? 

Спойлер: делать имитацию. О том, какие подходы существуют и как выжать из них максимум эффективности для имитации сложных многоядерных систем, рассказали инженеры-программисты отдела разработки системного ПО YADRO Светлана Бурлака и Александр Солдатов.

Читать далее

Простая сеть для связи нескольких устройств с ПЛИС

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

Продолжая тему самодельного простого интерфейса https://habr.com/ru/articles/769986/ , как всегда, интереса ради и просто так, разработал концепцию сети на описанном ранее протоколе нижнего уровня. Представленная сеть, может быть пригодна для связи между несколькими ПЛИС внутри печатной платы (ПП); связи между ПП внутри блока, а также связи отдельных блоков с длиной линии передачи между узлами сети до 50м, а может и более.

Читать далее

Создаем I2C Master Controller на Verilog. Пишем HDL код

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров9.4K
Закончив в предыдущей статье описание того, как должны осуществляться атомарные операции и каким образом осуществляется выполнение команд я бодро перешел к написанию HDL-кода. Пришлось разобраться с тем, как организовать FSM, как организовать считывание и выставление данных на шине.  

Весь этот процесс перехода от идеи и результатов моделирования к написанию кода — я и хотел бы описать в данной статье. 

Всем интересующимся — добро пожаловать под кат! =)

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

Реализация Avalon-MM Master в виде конечного автомата на VHDL

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

Шина Avalon-MM является одной из стандартных шин передачи данных, используемых в ПЛИС фирмы Intel. Использование этой шины в своих модулях для передачи данных существенно повышает их возможность повторного применения и повышает надежность проектов. Также упрощается интеграция модулей в проект с помощью Platform Designer.

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

Отрабатываем протокол valid/ready и конвейеры на микроархитектурном тренажере

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

Чем хорош FPGA-хаб на Хабре это еще и тем что тема протокола valid/ready время от времени тут всплывает. И это действительно важно так как valid/ready является одним из основных протоколов организации управления потоком (flow-control). Понимание valid/ready для микроархитектора так же необходимо как необходимо понимание закона Ома электрику.

На прошлом занятии мы отработали концепцию очереди FIFO на микроархитектурном тренажере - hdlgadgets. В этот раз мы возьмем два FIFO буфера (которые образуют конвейер с valid/ready рукопожатиями) и будем менять flow-control логику конвейера.

Мы покажем что valid/ready это не только механизм передачи данных от одной очереди к другой, но еще и метод для организации разного рода логического функционала между очередями.

Если до этого момента вы не сталкивались с протоколом valid/ready, то будете приятно удивлены как легким движением руки (а если точнее, написанием пары строк на верилоге) мы можем реализовывать разного рода функционал взяв за основу конвейер из двух FIFO.

Читать статью целиком и смотреть видео

Создаем I2C Master Controller на Verilog. FSM, Clock, Output Logic, etc

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров6.6K
После длительного перерыва я продолжил разработку I2C Master Controller на Verilog. В прошлых статьях я рассмотрел основной теоретический материал, необходимый для реализации изначальной задумки. В этом материале переходим к более интересному содержанию: я последовательно расскажу про процесс проектирования конечного автомата I2C, расскажу про тактирование и как организована логика выходных сигналов и многое другое.

Всем, кому интересно — добро пожаловать под кат!

image


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

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

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

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

Читать далее

Сонары, роботы и чем флейта лучше гитары

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

Несколько лет назад мне довелось посетить университет Харви-Мадд, в котором работали Дэвид Харрис и Сара Харрис, авторы известного учебника "Цифровая схемотехника и архитектура компьютера". Cлучайно зашел в комнату, в которой сидела группа студентов и лежало нечто, напоминающее торпеду. Выяснилось, что это подводный робот, а студенты работают над общением этого робота с рыбами с помощью сонара (так я перевел для себя "IVER AUV for Sonar Mapping and Fish-Robot Interaction Modeling Projects"), и даже получили пару грантов на полмиллиона долларов.

Но чтобы студенты могли сделать что-нибудь полезное в обработке сигнала от сонара, им нужно знать кучу математики из области, которая в Америке называется DSP, а в России - ЦОС, или Цифровая Обработка Сигналов. Потом, в своих поездках по России я выяснил, что российские студенты в ЦОС тоже не лыком шиты.

Читать далее

Сборник встраиваемых модулей на ПЛИС

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

Интереса ради сделал несколько простеньких модулей (аля платки для встраиваемых систем), про которые и хочу рассказать и поделиться исходниками, вдруг кому пригодится. Да, эта статья не про ПЛИСовую тематику, а что бы её немного разбавить, хотя кого я обманываю, модули же с ПЛИСами.

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

Читать далее

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

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

Вторая статья из цикла, посвященного проектированию с использованием стандартного интерфейса AXI-Stream, а также отладке и документации проектов.

Читать далее

Автосборка Fsbl, U-Boot, linux kernel и установка debian для arm64 для Zynq Ultrascale zcu106

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

В данной статье описывается способ создания минималистичного образа sd карты c debian arm64 на примере отладочной платы с zynq ultrascale zcu106. Данный способ можно использовать для создания загрузочных образов других устройств с соответствующими изменениями. Битстрим, ядро Linux и dts для удобства разработки размещаются отдельными файлами.

Также описан способ загрузки по сети ядра Linux, dts и корневой файловой системы debian, который позволит сократить время разработки и ресурс карты памяти.

Читать далее

Вклад авторов