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

FPGA *

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

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

Zynq 7000. Обмен информацией между PS и PL

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

Продолжаю повествование о том, как проходит мое изучение возможностей отладочной платы с SoC Zynq 7000 на базе отладочной платы QMTech. В этой статье я опишу то, как я решал задачу примитивного обмена данными между PS и PL с использованием baremetal application и при использовании Linux. Всем интересующимся добро пожаловать под кат!

Читать далее

Искусство отладки FPGA: как сократить срок тестирования за счет грамотной разработки

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

Давайте попробуем оптимизировать самый времязатратный этап разработки устройств на базе ПЛИС — отладку прошивки. В этой статье мы расскажем о принципе 20/80 при планировании времени, рассмотрим инструменты для отладки FPGA, вспомним Гордона Мура и Уинстона Черчилля (да-да), затроним отладку сложных распределенных систем и внешних интерфейсов, а в конце — разберемся с типичными ошибками и поделимся полезными практическими советами.

Для начала рассмотрим типовой цикл разработки и моделирования FPGA-прошивки:

Читать далее

Continuous Integration для Intel FPGA (Altera)

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

Собирая как-то в очередной раз разные ревизии для одного и того же проекта вручную, у нас возникла навязчивая мысль: а можно ли собирать это все автоматически по нажатию одной кнопки? Забегая вперед, сообщим, что мы решили эту проблему, причем мы упростили сборку проекта не только на локальном компьютере, но и запустили удаленную сборку на GitLab CI.

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

Читать далее

Zynq 7000. Собираем Linux и RootFS при помощи Buildroot

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

Продолжаем изучение SoC Zynq 7000 и разбираемся с тем, как организовать подготовку, сборку Linux для отладочной платы QMTech. В прошлой статье я рассмотрел процедуру быстрой сборки (без кастомизации) основных компонентов встраиваемой системы Linux и шаг за шагом прошли путь до приглашения к вводу в работающей ОС. Согласитесь, что если вы новичок - то работа была выполнена колоссальная! К счастью, всю эту работу можно автоматизировать! И в этой статье я хотел бы уделить внимание этому вопросу и рассказать как это сделать с помощью Buildroot. Эту статью можно считать логическим продолжением общего повествования о начале работы с Linux на Zynq.

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

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

Читать далее

Практическое применение сервера с FPGA

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

В данной статье будет рассказано о попытке ускорить операции над разреженными булевыми матрицами, реализованные на OpenCL, с помощью замены целевой платформы GPGPU на FPGA.

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

Объем таких данных неуклонно растет и потому для получения хорошей производительности в задачах анализа графов все острее встает вопрос о разработке параллельных алгоритмов, что оказывается нетривиальной задачей из-за нерегулярности данных.
Читать дальше →

Zynq 7000. Собираем Linux для платы QMtech

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

В этой статье я решил сделать небольшое отступление от общей линии повествования и зарулю на дорогу Linux. За то непродолжительное время, что я работаю с Zynq 7000, в тематических чатах я видел много вопросов насчет того, как запустить Linux на отладке. Я в общем-то, недолго думая, сел проштудировал документацию, примеры и завёл его своими руками под ту плату, что у меня есть в распоряжении. После этого я решил обобщить свои знания по этому вопросу и описать процедуру сборки, подготовки загрузочного образа Linux, который включает в себя U-boot, Device Tree Source, RootFS, и само ядро Linux. В дополнение к этому, я решил немного усложнить задачу и выяснил, как можно поморгать светодиодом подключенным к PL-части устройства из пространства пользователя Linux.

Обо всём этом я написал в этой статье. Всем интересующимся - добро пожаловать под кат.

Читать далее

Zynq 7000. Порты GPIO, PS, PL

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

Продолжаю описывать свою “беготню по граблям” по мере освоения SoC Xilinx Zynq XC7Z020 с использованием отладочной платы QMTech Bajie Board. В этой статье хотелось бы рассказать, как я решил задачу по настройке тактирования из PS, получению и работе с входными сигналами с кнопок, реализацию примитивного фильтра антидребезга и логического элемента "И" в PL.

Читать далее

8 битный компьютер Sprinter / Спринтер

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

Памяти Ивана Петровича Макарченко
От поклонников его творчества, и по совместительству моих собеседников

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

Информации о данном проекте в интернете чрезвычайно мало, есть темы на форуме http://winglion.ru/ . Основные свои представления о Спринтере, я почерпнул из личного общения и telegram, поэтому возможно в моем посте будут содержаться фактические ошибки, или же простое недопонимание. Простой поиск по Хабру показал, что на нем нет статей по компьютеру Спринтер / Sprinter, есть только упоминания о нем в статьях посвященных zx spectrum. Моя статья это попытка закрыть этот пробел. Это моя первая статья на хабре, надеюсь она будет полезной для сообщества компьютера Sprinter, так и интересной для любителей ретро техники. Хотя, она может и выглядит довольно сумбурной. Сейчас необходимо сообщить всем лицам, которые могут быть заинтересованны в данном проекте, о его оживлении, а так же о текущем состоянии дел, кроме того дать ссылки на тематические ресурсы, и каналы связи с разработчиками.

Персональный компьютер Спринтер, достаточно современный 8 -битный компьютер, чья окончательная версия была представлена фирмой Петерсплюс/Peters Plus 7 августа 2000 г. Хотя рабочий прототип был впервые представлен на компьютерной выставке enlight'96, в 1996 году. Его производство было остановлено в 2003 году. 1 февраля 2007 Иван Мак - Иван Макарченко- winglion (разработчик компьютера Спринтер) объявил о том, что фирма Петерсплюс отдала ему все наработки, по - этому компьютеру, и теперь он готов со временем открыть проект. После его смерти, поддержкой, восстановлением проекта, и дальнейшей разработкой данного компьютера занимается группа энтузиастов.

Читать далее

Начинаем работу с Zynq 7000. Пособие для начинающих

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

Совсем недавно мне в руки попался один из вариантов отладочной платы с SoC Zynq XC7Z020. Поискав в Интернете материалы, а-ля how-to, и попробовав накидать свой минимальный проект обнаружил, что есть целый ряд подводных камней. Именно об этом я и хотел бы рассказать в статье. Кому интересно - добро пожаловать под кат.

Читать далее

Как прошла наша вторая конференция FPGA разработчиков FPGA-Systems 2021.1?

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

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

FPGA-движ, хоть и не быстро, но набирает свои обороты и проведение уже второй за полгода встречи ПЛИСоводов, прошедшей в формате конференции, это подтверждает. Мы пересмотрели формат конференции, учли приобретенный ранее опыт организации / проведения мероприятия и также постарались прислушаться к вашим пожеланиям и отзывам. В итоге у нас получилось: два типа докладов (суммарно их было 9 ), хакатон и 3 викторины с призами. Обо всём этом под катом.

Читать далее

Как разработать микросхему. Собственный процессор (почти)

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

Как же разработать свою микросхему. Задался я этим вопросом, когда я захотел создать собственный процессор. Пошёл я гуглить и ничего годного не нашёл. Ответы в основном два։ "Ты не сделаешь свой процессор, потому что слишком сложно" и "Забей и собери компьютер из комплектующих".

Очевидно что это меня не устаивает, поэтому я решил изучить вопрос серьезнее. Оказалось можно сделать свой процессор описав его с помощью Verilog и FPGA. Купил плату в Китае, 3 года спокойным темпами написал свой процессор, оттестировал, скомпилировал и залил на FPGA. Но мне этого не достаточно.

Читать далее

Генерация клока на примитиве LUT

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

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

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

Читать далее

Новостной дайджест событий из мира FPGA/ПЛИС — №0010 (2021_03) + конференция FPGA разработчиков

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

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

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


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

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

Прикоснемся к магии или как я вступил в ряды MISTического общества

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

Ниже предложен рецепт приготовления деликатеса, позволяющего Вам попробовать различные 8 и 16-битные приставки и компьютеры. Основное же блюдо для меня miniMIG — Amiga core с графикой OCS/AGA/RTG и CPU до 68020 в 20 раз быстрее стандартной A600.


В свои студенческие годы после ZX-Spectrum (Пентагон-128 с дисководом) я прикоснулся к волшебному миру Амига, сначала A600, затем A1200, аксели от 030-40MHz до PPC603+040. И вот, совсем недавно я узнал о Apollo Vampire (цена конечно кусачая) решил поискать что-нибудь подобное. Нашел несколько вариантов, но самый интересный, на мой взгляд, проект MIST доделанный Павлом Рябцовым. Проштудировал ветку Сборка, настройка платы MiST v 1.31 , заказал на сайте CHIPkin две печатные платы (как оказалось потом правильное решение, попеременно возникали проблемы то с одним, то с другоим экземпляром) и детали, которые были в наличии. Остальное было куплено на Али и "Чип и Дип", по мере прибытия деталей, начал сборку, о чем и хочу рассказать вам. Если Вы являетесь таким же OLD-фагом старых компьютеров, как и я, пожалуйста, приготовьтесь к прочтению.

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

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

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

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

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


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

Новостной дайджест событий из мира FPGA/ПЛИС — №009 (2021_02) + FPGA конференция

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

ПЛИСкульт привет,  FPGA  хаб. 


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



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

Делаем блок SPI to AVALON_MM для USB-устройства на базе FX3

Время на прочтение18 мин
Количество просмотров2.7K
В предыдущей статье мы научились подавать Vendor команды в устройство USB3.0 на базе контроллера FX3 и реализовали программную шину SPI. Сегодня мы продолжим начатое и сделаем компонент SPI to Avalon_MM. Может возникнуть вопрос: мы же уже умеем работать с шиной Avalon_MM через JTAG средствами TCL-скриптов, зачем нам что-то ещё?

Дело в том, что когда мы работаем на чистом TCL, как делали это здесь и здесь, всё замечательно. Но для задач, гоняющих десятки или даже сотни мегабайт, этот вариант слишком медленный. Поэтому мы вынуждены добавить программу на С++, работающую через USB 3.0.

Вариант с TCL-сервером, к которому обращается плюсовая программа, рассмотренный в этой статье, требует сложной ручной подготовки при каждом запуске. Надо обязательно запустить среду исполнения (для Windows и Linux они разные), запустить серверный скрипт, а затем – в программе синхронизировать работу с данными по USB и с командами через TCP. Не люблю такие сложности. Оставим те варианты под случаи, когда они не создают трудностей. Здесь же у нас есть USB-устройство, мы всё равно с ним работаем, вот и будем обращаться к шине AVALON_MM через него. Приступаем.


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

Реализация процессорной архитектуры из книги Чарльза Петцольда «Код. Тайный язык информатики»

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

Наверное многие, из тех, кто увлекается изучением того, как работает компьютер на самом низком уровне читали такие книги как: Таненбаум "Архитектура компьютера" или Харрис, Харрис "Цифровая схемотехника и архитектура компьютера", которые безусловного являются объемлющими трудами и хорошими книгами для обучения. Но если вы не являетесь инженером, но всё равно хотите погрузиться в мир цифровых вычислений и более глубоко понять то, а как же работает компьютер. В этом вам сможет помочь книга Чальза Петцольда "Код. Тайный язык информатики", которая начинает свой рассказ от причин, по которым людям понадобился обмен информацией и её обработка , с какими проблемами при этом столкнулись и заканчивает рассказам об устройстве реальных операционных систем и процессоров и их архитектуру. При этом автором был отлично подобран уровень абстракции, которого он придерживался при написании. В каких-то моментах подробно описывая работу элементарных частей процессора, а в других рассказывая простыми словами о сложных вещах.

Читать далее

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

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

ПЛИСкульт привет,  FPGA  хаб. 


Мы продолжаем держать вас в курсе последних событий из мира программируемой логики и решили немного пересмотреть формат дайджеста. Мы добавили категории, чтобы было проще искать информацию. В этот выпуск мы добавили: вебинары, анонсы, статьи, стримы, вакансии и даже сделали pdf версию. Подробности по катом



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

Добавляем поддержку Vendor-команд к USB3.0 устройству на базе FX3

Время на прочтение11 мин
Количество просмотров2.4K
В предыдущих статьях мы сделали достаточно интересную железку, состоящую из контроллера FX3 и ПЛИС Cyclone IV. Мы научились гонять через шину USB 3.0 потоки данных с достаточно высокой скоростью (я доказал, что поток 120 МБ/с из ULPI будет проходить через эту систему без искажений и потерь). Всё хорошо, но система, которая просто гонит данные, не имеет смысла. Любую систему надо настраивать. То есть, хочешь — не хочешь, а кроме скоростных данных надо слать не очень спешные команды.

У шины USB для передачи команд предназначена конечная точка EP0. Сегодня мы потренируемся дорабатывать «прошивку» FX3 так, чтобы она обрабатывала команды от PC, а также транслировала их через GPIO в сторону ПЛИС. Кстати, именно здесь проявляется преимущество контроллера над готовым мостом. Что меня в текущей реализации Redd сильно удручает – я не могу посылать никаких команд. Их можно только упаковать в основной поток. В случае же с контроллером – что хочу, то и делаю. Начинаем творить, что хотим…


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