Все потоки
Поиск
Написать публикацию
Обновить
13.4

FPGA *

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Привет, Хабр! Не так давно, у себя в блоге мы анонсировали студенческий инженерный «хакатон» 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.3K
Итак, в блоке из предыдущих трёх статей, мы рассмотрели, как можно изменить идеологию, принятую в первой версии комплекса Redd, заменив двухпроходную прокачку потоковых данных (сначала в буферное динамическое ОЗУ, а уже затем – в PC через интерфейс USB 2.0) на однопроходную (сразу в PC через интерфейс USB 3.0). Всё было замечательно, все тесты проходили на ура… И тут я решил проверить систему при поведении источника, отличном от того, в котором работали инженеры Cypress. И сразу нарвался на проблему, которая чуть было не похоронила все мои задумки. Как я к этому пришёл, и как прорвался – будет описано в данной внеплановой небольшой статье. Девизом её я бы сделал фразу, что не всегда хорошие показатели являются признаком полностью работающей системы.


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

Intel eASIC N5X — «структурированный ASIC» для 5G и AI

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


В 2018 году Intel приобрела eASIC — разработчика «структурных ASIC», интересных и перспективных устройств, представляющих собой нечто среднее между классическим ASIC и FPGA. Далее в течение нескольких лет компания использовала ранее сделанные наработки, и вот мы фиксируем знаковое событие: анонсирована новая линейка eASIC N5X, которая совместима с FPGA компании, то есть имеет полное право называться Intel eASIC N5X, продуктом следующего поколения с улучшенной архитектурой и 16-нм техпроцессом.
Давайте посмотрим на характеристики этой линейки, а заодно вспомним, что представляет из себя «структурированный ASIC».
Читать дальше →

Встраивание Haskell: компиляторы и компиляция компиляторов

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

Эта статья является переводом поста Chris Hodapp Embedding Haskell: Compilers, and compiling compilers В своём посте автор рассматривает различные подходы к использованию Haskell для написания кода для встраиваемых систем. Предоставим слово автору.


В моем последнем посте упоминалось, что некоторые вещи требуют лучшего объяснения, потому что я всегда пытаюсь объяснить и уточнить.


Этот блог посвящен использованию Haskell со встраиваемыми системами. Что это хотя бы значит? Мы видим пару широких категорий (которые отражают слайды на последней странице, а также наша страница ссылок):


  • Полная компиляция: компиляция кода на Haskell для встраиваемого назначения.
  • Ограниченная компиляция: компиляция некоторого ограниченного подмножества кода на Haskell для встраиваемого назначения.
  • Хостинг EDSL и компилятора: хостинг в Haskell, EDSL и компилятор для встраиваемого назначения.
Читать дальше →

Собственный софт-процессор на ПЛИС с компилятором языка высокого уровня или Песнь о МышЕ

Время на прочтение17 мин
Количество просмотров9.3K
Собственный софт-процессор на ПЛИС с компилятором языка высокого уровня или Песнь о МышЕ — опыт адаптации компилятора языка высокого уровня к стековому процессорному ядру.

Распространенной проблемой для софт-процессоров является отсутствие средств разработки для них, особенно, если их система команд не является подмножеством команд одного их популярных процессорных ядер. Разработчики в этом случае вынуждены будут решать эту проблему. Прямым её решением является создание компилятора языка ассемблера. Однако в современных реалиях не всегда удобно работать на Ассемблере, так как в процессе развития проекта может изменяться система команд в связи, например, с изменившимися требованиями. Поэтому задача легкой реализации компилятора языка высокого уровня (ЯВУ) для софт-процессора является актуальной.

Компилятор языка Python — Uzh представляется легким и удобным инструментарием для разработки программного обеспечения для софт-процессоров. Инструментарий определения примитивов и макросов как функций целевого языка позволяет критичные места реализовывать на ассемблере процессора. В данной работе рассмотрены основные моменты адаптации компилятора для процессоров стековой архитектуры.
Читать дальше →

Простая реализация небольших CAM на ПЛИС

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

Введение


Как-то раз мне потребовалось по работе реализовать небольшой блок CAM (ассоциативной памяти). Почитав, как это делается у Xilinx на BRAM (блоках статической памяти) или на SRL16 (16 — битных сдвиговых регистрах), я несколько опечалился, так как их реализации занимали довольно много места. Решил попробовать сделать его самостоятельно. Первым вариантом стала реализация в лоб. Забегая вперед, она практически сходу мне и подошла, благо, целевая частота для дизайна была всего 125 МГц.

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

Асинхронные (самосинхронные) схемы. Вычисление логических функций непосредственно по графу событий. Часть 2

Время на прочтение6 мин
Количество просмотров3.2K
Напомню, в первой части речь шла о вычислении простых импликант (конъюнкций) для циклических поведений без параллелизма, выбора и кратных сигналов по трем точкам (состояниям).



Задача состояла в том, чтобы импликанта покрыла точку 2 (то есть была равна 1 на этом состоянии) и не выходила за пределы обозначенные точками 1 и 3… При этом положение левой границы импликанты (левее точки 2) безразлично. Правая граница (правее точки 2) должна быть максимально сдвинута вправо. Невозможность вычисления импликанты означает наличие CSC конфликта. То есть существует непрерывная последовательность событий (но не все поведение целиком), в которой каждый сигнал переключается четное число раз.

Приступим теперь к вычислению минимальной логической функции (ДНФ) для сигнала x.



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

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

Текущая активность вокруг MIPSfpga и не только

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

КДПВ


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


  • релиз MIPSfpga 2.0;
  • процессор schoolMIPS и Летняя школа юных программистов в Новосибирске;
  • школа-семинар по цифровому дизайну и компьютерной архитектуре в Томске;
  • запуск ванильного ядра Linux на MIPSfpga-plus;
  • поддержка АЦП Altera MAX10 в MIPSfpga-plus;
  • логотип MIPSfpga-plus.

Если тематика MIPSfpga-plus вам не безразлична, то в конце есть небольшой опрос на тему чего мне писать (или не писать) следующую статью. Ваш выбор поможет мне сориентироваться и расставить приоритеты. Welcome!

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

Отладочная плата ПЛИС — Франкенштейн. Контроллер елочных гирлянд

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

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


Сделать контроллер елочных гирлянд не просто, а очень просто! Hello World на ПЛИС — это помигать светодиодом. А "С новым годом" на ПЛИС — это помигать несколькими светодиодами. Принцип прост, как и в предыдущих статьях: создаем счетчик, который делит частоту тактового генератора, выбираем биты из слова счетчика, для получения нужной скорости. Несколько бит из этого слова дадут нам определенный шаг отображения (в зависимости от количества выбранных бит 1, 2, 4, 8 и т.д. шагов). В зависимости от номера шага задаем значения для N светодиодов.


Для управления реальной гирляндой, можно взять какой-нибудь shield с электромагнитным реле. У меня оказался вот такой, на 8 реле. Схема подключения. Принципиальная схема.


Дальше

UltraCMOS Фирмы «Peregrine Semiconductor»: СВЧ возможности КМОП-технологии

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


Полагаю, что у большинства аббревиатура КМОП (CMOS) ассоциируется с микросхемами логики и полевыми транзисторами. Для производства СВЧ компонентов в основном используются элементы из групп ///-/V Таблицы Менделеева: GaAs, InP, SiGe. Развивая технологию КНС – Кремний На Сапфире (Si & Al2O3) более 25 лет, компания «Peregrine Semiconductor» создала технологию UltraCMOS 11, которая по показателю Ron*Coff обладает лучшими параметрами, чем доминирующая на рынке десятилетиями технология GaAs.

Толчком к развитию технологии КНС послужила ее повышенная радиационная стойкость, которая необходима для космических (Space) и высоконадежных (Hi-Rel) применений. Так, например, полностью отсутствует «тиристорный эффект» (SEL). Отсутствует и повышенная чувствительность к низким дозам радиации (ELDRS). В настоящий момент такая продукция поставляется через подразделение компании E2V. Фирма «Peregrine Semiconductor» поставляет гражданскую продукцию — в данный момент до 40 ГГц – и продолжает повышать планку!
Читать дальше →

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

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

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

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

Всем привет!

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

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

Читать далее

Митап FPGA-Systems: RnD-цикл современных SoC, физическая имплементация для FPGA и ASIC, обзор систем прототипирования

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

26 октября в 11:00 стартует первая осенняя встреча сообщества FPGA-Systems, организованная совместно с YADRO. Инженеры поделятся опытом и расскажут про разработку ASIC, физический дизайн, новый чип AG32 от AG micro и многое другое. Митап интересен не только программой, но и открытой демозоной с наработками инженеров — приходите лично, чтобы посмотреть на FPGA во плоти.

Регистрируйтесь, чтобы попасть на митап в Питере или получить ссылку на трансляцию в VK, YouTube или Rutube, где можно будет задать вопросы спикерам.

Изучить программу

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

Уровень сложностиПростой
Время на прочтение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).

Читать далее

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