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

FPGA *

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

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

Maple BUS в ореховой скорлупе или Периферия SEGA Dreamcast, как сделать

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

Описание протокола MapleBUS или как cделать устройство ввода для DREAMCAST.

Читать далее

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

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


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

Прокачиваем скрипты симуляции HDL с помощью Python и PyTest

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

Все делают это. Ну ладно, не все, но большинство. Пишут скрипты, чтобы симулировать свои проекты на Verilog, SystemVerilog и VHDL. Однако, написание и поддержка таких скриптов часто бывает довольно непроста для типично используемых Bash/Makefile/Tcl. Особенно, если необходимо не только открывать GUI для одного тестбенча и смотреть в диаграммы, но и запускать пачки параметризированных тестов для различных блоков, контролировать результат, параллелизировать их выполнение и т.д. Оказалось, что всё это можно закрыть довольно прозрачным и легко поддерживаемым кодом на Python, что мне даже обидно становится от того, как я страдал ранее и сколько странного bash-кода родил.

Читать далее

Учимся работать с USB-устройством и испытываем систему, сделанную на базе контроллера FX3

Время на прочтение20 мин
Количество просмотров38K
В двух предыдущих статьях мы сделали USB 3.0 систему на базе контроллера FX3. Пришла пора научиться работать с нею из своих программ для PC. Ну, и попутно понять, насколько получившаяся система пригодна для практического применения. Действительно ли ширины канала хватает на весь поток? И не теряются ли единичные байты из потока? Кто хоть немного поработал тестировщиком, не поверит в то, что если система в принципе работает, значит, работает и в деталях. А я на этой должности проработал лет пять, не меньше, поэтому привык проверять всё на практике. В общем, приступаем.


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

PAL, GAL и путешествие в цифровое ретро

Время на прочтение17 мин
Количество просмотров24K
Идея сделать цифровые логические микросхемы с изменяемой структурой была всегда. Почему? Достаточно посмотреть на толстенный каталог чипов серии TTL 74xx (или советской К155), чтобы такая идея самозародилась. В СССР почти у каждого инженера и радиолюбителя был справочник В.Л. Шило «Популярные цифровые микросхемы», который вышел каким-то невероятным тиражом. Но всё равно, хотелось иметь некий «универсальный кристалл», из которого можно сделать все остальные микросхемы (ну хорошо, не все, но многие).

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

Новостной дайджест событий из мира FPGA/ПЛИС — №007 (2020_12)

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

Здравствуйте друзья.


Продолжаем публиковать новости из мира FPGA/ПЛИС.


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



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

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

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

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


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

Zynq. Передача данных между процессорным модулем и программируемой логикой

Время на прочтение19 мин
Количество просмотров23K
Как и обещал в предыдущей статье (Что такое Zynq? Краткий обзор), поговорим о передаче данных между процессорным модулем и программируемой логикой. В предыдущей статье упоминалось четыре способа передачи данных, в статье будут рассмотрены два способа, которые нашли большее применение. Подробности под катом. Осторожно, много картинок!
Читать дальше →

Высокоэффективный 600 Вт усилитель НЧ на нитрид-галлиевых силовых транзисторах

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

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

Читать далее

Начинаем опыты с интерфейсом USB 3.0 через контроллер семейства FX3 фирмы Cypress

Время на прочтение14 мин
Количество просмотров14K
В целом, основной цикл статей про работу с комплексом Redd можно считать завершённым. Мы познакомились с методиками доступа к основным компонентам комплекса, научились писать и отлаживать на нём программы для центрального процессора, при этом локально используя хоть Linux, хоть Windows. Мы научились разрабатывать «прошивки» для ПЛИС, а также начерно освоили типовой цикл их разработки (написание кода моделирование, запуск в железе). Вроде, всё.

Но тут мне пришлось освоить работу с шиной USB 3.0 через контроллер семейства FX3 фирмы Cypress. Пока свежи воспоминания, я решил задокументировать детали процесса, так как сделав всё по фирменным описаниям, можно либо не получить ничего, либо получить не совсем оптимальную систему. И снова вышел целый блок статей. В первой из них, мы рассмотрим, где взять «прошивку» для самого контроллера, как её собрать и залить в него. Также сделаем базовую «прошивку» для ПЛИС.


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

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

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


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

Как прошла наша первая FPGA конференция?

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

Привет, FPGA хаб!


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


Так вот, конференция состоялась 28 ноября 2020 года, и этим постом я бы хотел поведать вам об этом «немаловажном» для отечественного FPGA сегмента событии. Постараюсь рассказать обо всём «от идеи до реализации».




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

Скоростной АЦП с нуля. 16 бит за 10 лет

Время на прочтение12 мин
Количество просмотров38K
Чего стоит разработать быстродействующий аналого-цифровой преобразователь, почти не имея опыта? Насколько сильно наше отставание в этой области? Есть ли в этой нише шанс найти коммерческое применение своей продукции и отщипнуть хоть кусочек рынка у гигантов мира сего? Выпуская в свет новый 16-битный 80 МГц АЦП, хотим порассуждать на эти темы и рассказать о самой микросхеме и опыте её создания.

image

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

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

Оптимизация цифрового автомата (FSM)

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

Знаешь что такое цифровой автомат(FSM)!? Интересуешься цифровой схемотехникой? Если да, то вам будет интересно посмотреть решение одной проблем, которую часто игнорируют. Если нет, то вам придётся потратить дополнительно 5 минут на введение)

Для тех кто хочет загрузить свой мозг новой интересной задачей. Результаты вас удивят.

Читать далее

Новостной дайджест событий из мира FPGA/ПЛИС — №006 (2020_10)

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

Здравствуйте, друзья.


Продолжаем публикации последних событий из мира FPGA/ПЛИС. Ниже приведены несколько ссылок на новости, анонсы, вебинары, воркшопы, туториалы, видео и тд. Подобные новостные дайджесты есть, например, на хабе про php, почему бы и не сделать что-то подобное и для ПЛИС?


А еще в РФ очень очень скоро будет FPGA конференция/митап :)



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

Сверхдлинное преобразование Фурье на FPGA

Время на прочтение13 мин
Количество просмотров21K
Всем привет!

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

В этой статье показана невозможность реализации «классической» схемы очень длинного БПФ даже на самых современных кристаллах ПЛИС и предложен алгоритм, позволяющий это сделать. Также пошагово рассмотрена основная идея алгоритма: от математической составляющей до создания законченного решения на базе ПЛИС с использованием внешней DDR-памяти. Статья затронет тонкости проектирования многоканальных систем обработки для подобного класса задач и, в частности, опишет мой практический опыт.


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

Практические опыты с USB-анализатором на базе Redd

Время на прочтение18 мин
Количество просмотров3.3K
Три статьи назад мы сделали голову для шинного анализатора USB, после чего – обсуждали вопросы моделирования и гоняли эту голову на моделях. Правда, всё это было не зря. В прошлой статье я показательно нашёл пару сбоев логики, а в реальности их было чуть больше. Поэтому, начни я всё проверять сразу в железе — сидел бы и сокрушался: «А чего оно так себя ведёт?» Теперь же я уверен, что в поведенческой модели вся логика делает именно то, что было задумано. Что дальше? Те, кто делает серьёзные большие проекты, дальше переходят к моделированию синтезированной модели, а в конце — модели, привязанной к реальной топологии упаковки в ПЛИС (так называемое Gate-Level моделирование). Там уже учитываются задержки на всех трассировочных ресурсах при именно этом результате компиляции. Но проект нашей сложности этого не требует. Нам было достаточно убедиться, что вся логика реализована верно. И теперь мы можем перейти к сборке реального анализатора и проверке его работы на практике.


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

Второй HDMI монитор к Raspberry Pi3 через DPI интерфейс и FPGA плату

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

На этом видео показаны: плата Raspberry Pi3, к ней, через разъем GPIO, подключена FPGA плата Марсоход2rpi (Cyclone IV), к которой подключен HDMI монитор. Второй монитор подключен через штатный разъем HDMI Raspberry Pi3. Все вместе работает, как система с двумя мониторами.

Дальше расскажу, как это реализовано.

Процессор Forth J1 в FPGA плате M02mini

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


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

Недавно я занимался запуском процессора Forth j1 в FPGA плате и пришлось вспоминать фортовские азы программирования. Да уж… чертовски трудно, но получил громадное эстетическое удовольствие. Как будто впервые взял кубик Рубика, и сам собрал его, и пазл сложился и программа работает…

Запуск Unix-подобной ОС на самодельном CPU с помощью самодельного компилятора C

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

Два года назад я начал работать разработчиком ПО. Иногда я рассказывал своим коллегам о студенческом проекте, которым занимался на третьем курсе университета, и они восприняли его настолько хорошо, что я решил написать этот пост1.

Позвольте задать вам вопрос: вы когда-нибудь проектировали собственную архитектуру набора команд (ISA), создавали на FPGA процессор на основе этой ISA и собирали для него компилятор? Запускали ли вы операционную систему на этом процессоре?

А у нас это получилось.

В этом посте я расскажу о своей учёбе в 2015 году, о четырёх месяцах создания самодельного CPU на самодельной архитектуре набора команд RISC, создании самодельного тулчейна C и портировании на этот процессор Unix-подобной ОС Xv6.

Процессорный эксперимент в Токийском университете


Всё это делалось в рамках студенческого экспериментального проекта под названием CPU Experiment. Давайте начнём с того, что же такое CPU experiment.
Читать дальше →