Рубрика «fpga» - 24

К системам на кристалле через ПЛИСы: неделя цифровой микроэлектроники в Киеве — 24-29 апреля 2017 - 1


24-29 апреля в Киеве пройдет серия семинаров для школьников, которые не будут похожи на обычные классы со встроенными процессорами, которые стандартно используют Лего / Ардуино / Расберри Пай. Главный фокус семинаров — не научить программировать процессоры, а показать принципы, как процессоры проектируются внутри. Это как разница между «научить водить машину» и «научить проектировать двигатель». На семинарах школьники будут использовать язык описания аппарата Verilog и логический синтез — технологии, которые используют разработчики цифровых микросхем в Apple, Samsung и других электронных компаниях.

Главная официальная страница семинара, там же регистрация.
Читать полностью »

SDAccel – первое знакомство - 1

SDAccel это система программирования на OpenCL для ПЛИС фирмы Xilinx. В настоящее время всё более обостряется проблема разработки проектов для ПЛИС на традиционных языках описания аппаратуры, таких как VHDL/Verilog. Одним из методов решения проблемы является применение языка C++. OpenCL это один из вариантов применения языка С++ для разработки прошивок ПЛИС.
Читать полностью »

Фильтрация изображения методом математической морфологии на FPGA - 1
В этой статье я хочу рассмотреть один, на мой взгляд, достойный внимания подход к фильтрации изображений методом математической морфологии. Про математическую морфологию написано много статей, и одна из них размещена здесь на хабре. Читателю, незнакомому с данной темой, я рекомендую сначала ознакомиться с материалом по ссылке выше.

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

  • требует формирование оконной функции
  • очень сложен для расширения окна
  • большое запаздывание (latency) при последовательном соединении с другими оконными функциями.

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

Вращение изображения на FPGA - 1

Пол года назад я наткнулся в сети вот на это видео.

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

Прошло чуть больше месяца с тех пор, как я портировал open source модуль UART16550 на шину AHB-Lite. Писать об этом на тот момент было несколько не логично, так как еще не была опубликована статья про прерывания MIPSfpga.
Если вы опытный разработчик, то для вас только одна полезная новость: UART16550 добавлен в состав системы MIPSfpga-plus, дальше можете не читать. А тем, кого интересует разобранный пример использования этого модуля — добро пожаловать под кат.

image

Читать полностью »

Расчет корректирующего КИХ-фильтра на ПЛИС - 1

Всем привет! Написать эту статью меня побудило выступление на семинарах по цифровой обработке сигналов, где слушатели всегда заостряли интерес к методике вычисления корректирующих FIR-фильтров, несмотря на то, что эту тему я затрагивал поверхностно и по большей части рассказывал об этом в ознакомительных чертах. Если публика желает получить тайные знания, то почему бы ими не поделиться. В этой статье я постараюсь в доступной форме изложить алгоритм расчета корректирующих КИХ фильтров, который необходим для выравнивания АЧХ в полосе пропускания после звеньев CIC фильтров в задачах децимации и интерполяции сигналов. В частности, рассмотрим проектирование фильтров на современных ПЛИС Xilinx. Как обычно, в конце статьи будет ссылка на полезные скрипты для расчета различных фильтров и получение файла коэффициентов фильтра-корректора.

Предполагается, что читатель знаком с основами цифровой обработки сигналов и имеет представление о CIC и FIR фильтрах. Приступим.
Читать полностью »

Более 30 лет назад, в 1986 году, я участвовал во Всесоюзной Новосибирской Летней Школе Юных Программистов, где получил диплом 1 степени за разработку поддержки многозадачности в языке Си на компьютере MSX Yamaha. Тогда я написал на ассемблере Z80 обработчик прерывания по таймеру, в котором переключал контекст задач. Для времени и возраста было вполне. И вот теперь, в 2017 году, я решил поехать на ЛШЮП снова, но уже в качестве инструктора, и уже согласовал программу с организаторами. В процессе я познакомлю слушателей с некоторым инсайдом индустриальных проектов, в которых я участвую в Silicon Valley, в частности проекта чипа EyeQ5 для самоуправляемого автомобиля, который планируется для выпуска в 2020 году.

А еще до Новосибирска я решил съездить в Киев, где в том же 1986 году учился в физматшколе номер 145 (откуда меня собственно и отправили в Новосибирск). Но план 2017 года в Киеве еще не утвержден, он на стадии обсуждения, которое я предлагаю провести в комментариях.

Между транзистором и Ардуиной: планирование семинаров по электронике для школьников в Киеве и Новосибирске - 1
Читать полностью »

В статье приводится несколько примеров настройки и использования прерываний MIPS32 Release 2, включая подробное описание задаваемой при этом конфигурации, описывается работа с контроллером внешних прерываний.
Весь описываемый код опубликован на github в составе проекта mipsfpga-plus [L3].

image

Читать полностью »

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

Вот сейчас школьников учат программировать Ардуино и другие устройства на основе микроконтроллеров и встроенных процессоров (Лего, Расберри Пай итд). А вот в 1970-е годы школьников учили здесь же, в Калифорнии, собирать схемы на макетной плате, на транзисторах и микросхемах малой степени интеграции (7400 TTL, CMOS 4000 итд) с элементами И-ИЛИ-НЕ и D-триггерами. Это как бы и прогресс — на микроконтроллере можно написать программу, которая бы осмысленно двигала роботической рукой, чего трудно сделать на индивидуальных логических элементах, но как мы вырастим школьников, которые бы умели проектировать (не программировать) сами микроконтроллеры?

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

Зашел в офис Ардуино; поговорили о ПЛИС-ах; требуются добровольцы - 1

Идея учить школьников по всему фронту цифровой схемотехники и встроенного программирования звучит хорошо теоретически, но как воплотить это в жизнь?
Читать полностью »

Фильтрация изображения на FPGA - 1

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js