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

FPGA *

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

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

Оцифровка звука FPGA платой MCY316

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

Вот уже почти закончился сентябрь. Студенты уже давно вернулись за парты и учатся.
Многие начали изучать цифровую обработку сигналов. А как известно, лучше предмет пощупать один раз своими руками, чем десять раз прочитать о нём в учебнике.

В этой статье я расскажу о захвате звукового сигнала платой FPGA MCY316. Захват сигнала это только первый этап перед обработкой. Получим сигнал и передадим эти данные в ПК. Если всё получится, то в следующих работах добавим в ПЛИС цифровой фильтр
Читать дальше →

Первое занятие Школы Синтеза и удар в спину от Ubuntu

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

В субботу прошло первое занятие Школы Синтеза Цифровых Схем. Записалось 650 человек в 15 городах России и Беларуси, пришли 400 (250 офлайн и 150 онлайн). Российский флаг на мониторе нарисован комбинационной логикой FPGA (первое что пришло в голову рисовать студентам сразу в двух кластерах). Вообще обычно на первом занятии мигают светодиодами, но мы решили пойти дальше и показали им как рисовать картинки. Для этого два счетчика формируют X и Y, а задача студента - реализовать функцию RGB (X, Y).

Из-за наличия зоопарка плат, версий Windows и Linux, а также EDA софтвера, глючных программаторов, и при этом свежих и недотестированных bash-скриптов, возникла ситуация полного ада, особенно у онлайн-пользователей (преподаватели на местах героически справлялись). Возникла ошибка, которая меня реально удивила. И не только меня:

Читать далее

Британская фобия embarrassment-а и российская движуха портабильных примеров на ПЛИС

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

Гугл переводит английское слово embarrassment как "смущение", но для британцев это не просто смущение. Для них это сродне ощущение во сне, в котором вы приходите на экзамен совсем не готовым и при этом голым. Когда британцы проводят семинар с какими-нибуть платами в далекой стране, они панически боятся, что плата не заработает и будет embarrassment. Поэтому они стараются использовать один тип плат в фиксированной конфигурации, если всего этого нельзя избежать вообще и просто показывать плату издалека.

В глубине души британцы завидуют русским, которые "able to cope with difficulties". И вот вам свежий пример: когда выяснилось, что на более чем 300 заявок (UPD: сейчас уже больше 600) на Школу Синтеза Цифровых схем в 15 российских кластерах (UPD: уже 19, из них один белорусский) не хватает FPGA плат, группа волонтеров реализовала возможность легкого портирования учебных примеров на зоопарк из более чем 20 типов плат от Intel FPGA, GoWin и Xilinx, с идеей расшириться до 50 типов, с креативным добавлением недорогих внешних устройств.

Читать далее

Обучение больших нейронных сетей на ПЛИС: утопия или…

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

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

Пока не предложил!

Разбор работы FIFO на микроархитектурном тренажере

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

FIFO – ключевая концепция в хардварном дизайне. Понимание работы FIFO необходимо, в частности, для понимания протокола valid/ready, который в свою очередь необходим для организации flow-control как внутри цифровых блоков так и на межблочном уровне.

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

Микроархитектурный тренажер дает возможность «прощупать» хардварные сценарии в пошаговом (интерактивном) режиме, предоставляя детальную визуализацию цифровой логики.

Поскольку тренажер является "фронтендом" для HDL симулятора то на самом симуляторе исполняется реальный, синтезируемый SystemVerilog который можно посмотреть и даже поменять его функциональность.

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

Видеокарта VGA для микроконтроллера

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

Иногда, при разработке устройств на микроконтроллерах, возникает потребность в выводе на дисплей большого количества информации или же в выводе информации на крупный дисплей для возможности ее считывания с большого расстояния. К сожалению, готовых решений этой проблемы нет, а те что есть – весьма дороги. Например, графические ЖК-дисплеи с возможностью подключения к микроконтроллеру обычно имеют диагональ не более нескольких дюймов и достаточно существенную цену (причем, даже монохромные, о цветных вообще можно не говорить).

В то же время есть огромный парк старых ЖК мониторов. Модели с диагональю 15-19 дюймов можно приобрести в рабочем состоянии за 200 – 500 руб. Особенно это касается моделей с немодным сейчас соотношением сторон 4:3. Эти модели достаточно надежные. Лампы CCFL, используемые для подсветки, конечно, теряют яркость за годы эксплуатации и их спектр свечения уходит в неприятный красноватый оттенок, но благодаря большому количеству таких мониторов всегда есть возможность выбрать более-менее живой экземпляр. Кроме того, лампы CCFL относительно несложно заменить обычной светодиодной лентой, подключив ее напрямую к источнику питания 12 В монитора. Однако при этом обычно необходимо заблокировать цепи обратной связи от микросхемы управления подсветкой к контроллеру самого монитора, иначе монитор будет думать что подсветка неисправна и просто выключится. Также придется пожертвовать функцией регулировки яркости. Однако, этой функцией мало кто пользуется. Обычно яркость монитора настраивается один раз в жизни, сразу после его покупки и потом никогда не меняется.
Читать дальше →

Построение матрицы перехода для генератора псевдослучайной последовательности (PRBS)

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

Введение

В этой статье я хочу рассказать, как построить матрицу перехода для генератора псевдослучайной последовательности (PRBS - pseudorandom binary sequence). Данная задача особенно актуальная для реализации генератора на ПЛИС, где требуется за минимальное время (один такт) рассчитать как можно больше значений. Также данный метод позволит сократить время перехода на нужное состояние генератора в случае, если расчет производится на процессоре (микроконтроллере).

Читать далее

Об особенностях электротехнических (и не только) сообществ: вредные советы

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

Несмотря на то, что предпосылки к отставанию закона Мура от экспоненты обсуждаются ещё с 90‑х, сам закон, с рядом оговорок, справедлив и в наши дни. Это приводит к тому, что если человек поступил в университет в 2010 году, то первые микроконтроллеры STM32F1, выпущенные в середине 2007 года, имели заметные шансы не попасть в его учебные курсы. Как, впрочем, и памяти DDR3 (стандарт также вышел в середине 2007‑го). В момент же получения человеком диплома в 2015‑ом, стандарту DDR4 исполнилось бы три года, STMicroelectronics только что выпустила бы серию STM32F7 со встроенным графическим модулем, а сами STM32 уже два года как имели возможность программироваться при помощи MATLAB и Simulink, минуя код на Си (если верить рекламе).

Подобное положение вынуждает динамично актуализировать знания.

Академические курсы не всегда успевают за прогрессом. А их первоисточник — техническая документация — бывает крайне обширна. Например, базовая документация на микроконтроллеры STM32F103xB насчитывает 1252 страницы. Помимо неё имеются ещё 54 документа типа application note и десятка полтора документов других типов. Поэтому достаточно востребованным источником знаний оказываются профильные сообщества.

Для эффективного получения знаний в подобных сообществах проблема должна быть сформулирована максимально качественно. Ещё в 2001 году появилось (и было переведено на множество языков) фундаментальное руководство «Как правильно задавать вопросы на технических форумах». Представляется, что тезисы данного руководства во многом универсальны и актуальны как для сообществ программистов, так и для сообществ электронщиков, туристов, кулинаров или художников. Однако столь же универсален феномен, когда ответ на сформулированный в соответствии с духом этого руководства вопрос, оказывается не ответом по существу, а чем‑то «идентичным натуральному ответу по существу». Об этом феномене и пойдёт речь в настоящей статье.

Заглянуть сразу в ответы

Назвался груздем — полезай в кузов (задали вопрос о входе в Design Verification процессоров и сетевых чипов)

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

Сегодня в некоторой русско-американской группе по QA (я не даю ссылку потому что она закрытая, хотя и многочисленная) некий молодой человек задал вопроc как войти в Quality Assurance Automation. Я сказал, что могу показать путь в Design Verification, который является фактически специализированным QA в области проверки функциональности цифровых аппаратных блоков, спроектированных с помощью синтеза из кода на языке описания аппаратуры SystemVerilog (я их собственно и проектирую). Так как получить ответ захотело еще человек десять, я понял, что нужно писать пост. К счастью, я об этом писал более 10 лет, так что можно делать выжимки из предыдущих постов.

Карьера Design Verification Engineer с писанием сред тестирования на SystemVerilog может понравится опытным программистам, которые хотят сменить карьеру с например писания программ на Джаве. В SystemVerilog есть элементы объектно-ориентированного и симулированно-многопоточного программирования. Суть деятельности заключается в создание фреймворков, которые тестируют хардверные дизайны на прочность, бомбардируя их превдослучайными транзакциями и учитывая покрытие интересных сценариев (functional coverage).

Читать далее

В России не любят Линукс, а я не люблю виртуальные машины. Что делать?

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

В России не любят Линукс. Студенты и корпорации всячески отлынивают его использовать, даже если Линукс насаждают преподаватели или госзаказчики. Но есть область, в которой Линукс придется полюбить. Это разработка микросхем. Даже внутри Apple и Microsoft инженеры используют Synopsys Design Compiler / IC Compiler и Cadence Genus / Innovus, у которых вообще нет версий для Windows и MacOS, только для Linux. Да, я знаю, что Synopsys и Cadence ушли из России. Но даже открытые тулы для синтеза ASIC - Open Lane - есть только под Linux.

Я уже несколько лет использую для семинаров по FPGA загружаемые через USB SSD диски, на который ставится весь необходимый софтвер. Такое решение позволяет избежать агонии первого дня семинара, когда приходит куча народу со своими ноутбуками, три часа ставят Quartus, а потом мучаются с драйверами USB Blaster для китайского контрафактного клона, который без танцев с бубном не хотят поддерживать не Win10, ни Linux, ни особенно Win11, который хочет подписанные драйверы.

А как же виртуальные машины? - спросите вы. С моей точки зрения они вносят дополнительный уровень танцев с бубном. И это не мое дремучее мнение - так же считает мой приятель, который работал над виртуализацией в Микрософте. То оно USB порт не пробивает, то еще какие-нибудь глюки. Плюс учить дополнительные опции, качать и копировать файлы в десятки гигабайт. А тут вставил в USB порт, и если загрузится, то заработает.

Конечно, загружаемые SSD тоже не без проблем: тут и Legacy BIOS boot против UEFI boot, и Secure Boot с Bit Locker, и зловещий "хвост GPT", и отрубание всего из-за скачка напряжения в USB хабе - но с этими проблемами мы методично разобрались. Решение я и описываю в этой заметке, предназначенной в первую очередь для учеников и руководителей кластеров в Школе Синтеза Цифровых Схем, которая начинается с сентября в 14 российских городах (объявления и точных дат еще нет, но уже записалось 200 учеников).

Прежде всего: как выглядит загружаемый SSD? А вот так:

Читать далее

Создаем I2C Master Controller на Verilog. Логический уровень

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

Делаю я это для того, чтобы изучить то, как функционирует этот интерфейс на всех уровнях и чтобы заложить основу для разработки I2C Master Controller на Verilog, с помощью которого будет будет организован обмен данными с дисплеем SSD1306 и Zynq.

Всем, кому интересно — приглашаю ознакомиться с материалом под катом! =)

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

Создаем I2C Master Controller на Verilog. Идея и физический уровень

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров12K
В рамках изучения Verilog я выбрал для себя интересную и полезную задачу, которую изначально планировал решить в рамках цикла статей по Xilinx Zynq. На отладочной плате, на которую я делал обзор в предыдущих статьях, есть OLED дисплей SSD1306 который управляется по I2C. Я решил, что было бы круто вывести на него какую-нибудь информацию из Linux, например температуру или загрузку CPU. Но чтобы это сделать — полезной информации нужно пройти путь от Userspace до I2C Master Controller который управляет SSD1306. И вот реализацию этого самого контроллера из этой связки я хотел бы описать в этом цикле статей.

И немного поразмыслив — я подумал, что на этапе разработки этого модуля быстрее было бы его реализовать плате с ПЛИС Altera. Уж очень долго собирается bitstream-файл под Zynq. А в качестве тестового подчиненного устройства — буду использовать EEPROM и по мере готовности задачи — потом просто перенесу модуль в Vivado.

В как раз о том, что такое I2C, как я реализовывал Master Controller для работы с подчиненным устройством, чем руководствовался и что получилось — я опишу для вас в этой и последующих статьях.

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

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

Hello World на регистрах в ПЛИС — мигаем светодиодом без регистрации, SMS и HDL

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

Воспользуемся одним лишь схемным редактором. Ну и ещё tcl-скриптом. И программатором. И немножко осциллографом...

Читать далее

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

Обзор отладочной платы Altera Cyclone IV OMDAZZ

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

Я решил в этом сезоне закончить обзоры разнообразных плат с ПЛИС и переключиться на действительно сложные (для меня) технические задачи. И последний свой обзор в этом сезоне я решил посвятить плате с Altera Cyclone IV на плате от OMDAZZ, которой со мной любезно поделилась компания из Питера - “РСВ Электроникс” в которой я рассматриваю возможность пройти обучение основам Verilog и обобщить свои знания по цифровой схемотехнике, получить практические навыки, которые помогут мне решать новые для себя задачи, а затем писать для вас разные крутые статьи! ?

Обзор будет не самый обычный - я еще попутно расскажу о том, как с использованием этой платы и при помощи наставников из РСВ Электроникс я буду повышать свой скилл по работе с FPGA с около нулевого до достаточно уверенного junior-уровня. Не всё же просто обзоры делать с мигалками. Пора двигаться дальше! :) 

Всем кого заинтересовала данная тема - прошу проследовать за мной (под кат)! 

Читать далее

Hello World на Tang Primer 20K под Linux

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров9.5K
После обзора на Tang Primer 20K — стало очевидно, что она вызывает немалый интерес и было решено немедля сделать разбор о том, каким образом можно настроить свой ПК и IDE для того чтобы начать взаимодействовать с отладочной платой, которую я рассмотрел в прошлой статье. Изначально, до момента пока я не познакомился сам лично с ПЛИС от Gowin и не запустил демо-проект — юзабельность, скорость и простота работы с их IDE вызывала сомнение. Но как только попробовал — все опасения были развеяны и я остался доволен.

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

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

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

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

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

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

Читать далее

Обзор платы Tang Primer 20K на Gowin GW2A-LV18

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров15K
После получения большого количества отзывов и комментариев на обзор платы на Cyclone IV из части из них четко прослеживались мысль: “А почему Cyclone IV, это же старый хлам!”. В ответ на это я решил сделать обзор на что-нибудь современное, функциональное и очень недорогое. И такой вариант нашелся — это отладочная плата Tang Primer 20K на ПЛИС от небезызвестной компании Gowin. На неё я и сделаю обзор в этой статье и расскажу про примеры проектов, доступных для этой платы.

Кого заинтересовала тема — добро пожаловать под кат! =)

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

Автоматическая сборка схемы в Simulink

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

Схема на картинке содержит в себе повторяющиеся части. Если их количество постоянно меняется в ходе разработки, то было бы неплохо, если бы всё это собиралось автоматически, правда? Как это реализовать, читайте в данной статье.

Читать далее

Altera Quartus Prime и ModelSim под Linux. Вводное руководство

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров11K
В очередной раз, начав изучать что-то новое для себя, я столкнулся с типичной для меня проблемой: нет нигде быстро гуглящегося how-to и step-by-step руководства по быстрому созданию какой-либо простой конструкции на Verilog и описания способа эту конструкцию быстро симулировать без необходимости запуска кода в железе для проверки конечного результата. Я надеялся очень быстро найти готовый материал о том, как под Altera Quartus 20.1 и ModelSim 2020.1 под Linux всё по-быстрому сделать и идти дальше. В итоге не найдя ничего системно и последовательно описанного в одном месте я традиционно разобрался самостоятельно и решил это исправить своей очередной статьей на Хабре. 

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

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

Обзор отладочной платы Altera Cyclone IV EP4CE6

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров16K
Очередной раз пролистывая Aliexpress, в поисках чего-нибудь интересного из мира FPGA-отладок, я наткнулся на один интересный экземплярчик. Попалась отладка на Altera Cyclone IV с большим количеством всякой периферии на борту + с которой за сравнительно небольшие деньги можно приобрести 4.3’’ LCD дисплей и камеру.

Посмотрев детально документацию и характеристики модулей — я особо не раздумывая решил ее заказать. После получения ее с пункта выдачи — я был в восторге и твердо для себя решил — нужно поделиться своей радостью со всеми интересующимися, сделав обзор этой отладочной платы со всеми ссылками и картинками. Поехали!
image
Читать дальше →

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