Как стать автором
Обновить
71.83

FPGA *

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

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

Если вы в Казани или Новосибирске и хотите проектировать микросхемы, как в Купертино

Время на прочтение3 мин
Количество просмотров22K
Господа! На фотографии Ирина, девушка из Новосибирска, рассматривает музейную экспозицию про персональные компьютеры 1980-х годов. Именно тогда, в 1980-х, окончательно произошел весьма неприятный разрыв между западной электроникой и советской. Если в 1970-х советская электроника просто отставала лет на 7 (если судить по датам выхода DEC PDP-11 и СМ-4), то в районе 386-го она просто померла.

Одновременно в конце 1980-х на Западе появилась технология логического синтеза из языков описания аппаратуры Verilog и VHDL. Эта технология стала мейнстримом в 1990-х и в конечном итоге в 21 веке привела к айфонам и нейроускорителям. Логический синтез ввели во всяких MIT и Стенфордах вместе с лабами на ПЛИС-ах еще в 1990-е, но в России и Украине того времени пораженческие настроения и неверие в отечественную электронику привели к тому, что исправлять ситуацию предстоит нам сейчас.

Для того, чтобы построить в России экосистему разработки электроники, с сотнями компаний, а не дюжиной, как сейчас, нужно делать то, что делали в США в 1990-х и делают сейчас в Китае: выучить кучу молодых инженеров принципам логического проектирования цифровых схем на уровне регистровых передач. Даже если не все из них будут проектировать микропроцессоры и сетевые чипы, а половина пойдет в чистое программирование, эти знания не пропадут зря: время повышения быстродействия компьютеров за счет уменьшения транзисторов подходит к концу, и везде наступают гибридные софтверно-хардверные решения, со специализированными аппаратными вычислительными блоками — об этом недавно даже произнес речь Джон Хеннесси, председатель совета директоров компании Alphabet / Google.



Я это все говорю к тому, что она днях в Новосибирске пройдет одно из мероприятий по вытаскиванию России из неразвитого состояния в данной области.
Читать дальше →
Всего голосов 45: ↑39 и ↓6+33
Комментарии173

Реализация NetFlow сенсора на FPGA + CPU — гибко и быстро

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

Добрый день!


Как вы поняли из названия, вас ждет очередная статья про NetFlow, но на этот раз с необычной стороны — со стороны реализации NetFlow сенсора на FPGA.



Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии3

Фильтрация изображения методом математической морфологии на FPGA

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

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

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

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

Все эти неудобства нисколько не умаляют степень его применимости в цифровых системах обработки изображений, однако существует и иной подход.
Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии12

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

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


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

Предполагается, что читатель знаком с основами цифровой обработки сигналов и имеет представление о CIC и FIR фильтрах. Приступим.
Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии0

Собственная платформа. Часть 0.1 Теория. Немного о процессорах

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

Здравствуй, мир! Сегодня у нас серия статьей для людей со средними знаниями о работе процессора в которой мы будем разбираться с процессорными архитектурами (у меня спелл чекер ругается на слово Архитектурами/Архитектур, надеюсь я пишу слово правильно), создавать собственную архитектуру процессора и многое другое.


4004


Принимаются любые замечания!


Читать дальше →
Всего голосов 53: ↑43 и ↓10+33
Комментарии63

Стартуем на ПЛИС, но сначала припаяем его с конструктором беспилотного автомобиля Zoox

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

Однажды мне не спалось ночью и я залип на сайтах про паяльники. Возникло желание купить и сразу появились вопросы: на сколько ватт? Не больше 30? А почему большинство на 60-80 ватт? 60/40 олово свинец? А почему куча паяльных станций идут в комплекте с lead-free проводами припоя? Канифоль сейчас внутри проводов? А почему есть и провода припоя без канифоли? Бронзовую мочалку для очистки? А почему столько комплектов с и белой и бронзовой?

Вспомнил и повод, чтобы научиться паять. Когда-то Руслан Тихонов, руководитель кружка из Москвы, говорил мне что хочет сделать простые упражнения на платах ПЛИС для школьников. Как часть триады "микросхемы малой степени интеграции - ПЛИС - Ардуино". По этому поводу я купил самую дешевую плату с CPLD Altera MAX II (ныне это Intel FPGA), но обнаружил что у нее не припаян переходник.

Я выставил вопросы по паяльники на фейсбук и после оживленной дискуссии мой приятель Денис Никитин вызвался научить меня паять как полагается. Денис работает проектировщиком печатных плат в компании Zoox, ныне часть компании Amazon. Zoox делает беспилотные автомобили, то есть Денис на передовом рубеже паятельного прогресса. Я заснял мастер-класс от Дениса на видео:

Читать далее
Всего голосов 38: ↑35 и ↓3+32
Комментарии50

Чем интересуется западная молодежь (в микроэлектронике)

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

Design Automation Conference (DAC) - главная выставка софтверных компаний, которые создают средства проектирования чипов. Именно на ней появляются стартапы, которые определяют проектирование через 10-15 лет (например появление Synopsys на рубеже 1980-1990-х привело к появлению iPhone в середине 2000-х).

На DAC помимо выставки и официальных докладов есть также и poster session - молодые исследователи из университетов вывешивают в виде плакатов, чем они занимаются. Я методически сфотографировал все постеры во время последней конференции DAC в Сан-Франциско, и вот перед вами картина маслом:

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

Больше про нейросети и трояны,но не только
Всего голосов 36: ↑34 и ↓2+32
Комментарии30

Как подружить Vivado и git: с микроблейзом и сабмодулями

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

Разработка под программируемые логические интегральные схемы (ПЛИС) и систем на кристалле (СНК) отличается монструозностью IDE и их проектов. В одном котле замешаны исходные коды логических модулей, специфические файлы для привязки к контретной модели ПЛИС, файлы ресурсов, тесты, скрипты сборки, IP-ядра, программы для процессорной системы и т.д. Всё это помножается на проприетарность инструментов, жесткие правила лицензирования и широкое использование бинарных форматов файлов.

Эта статья написана в продолжение рассказа про организацию автотестирования радиоаппаратуры и отвечает на вопрос "как вы подготовили проект FPGA для хранения в репозитории и автоматической сборки в контейнере?".

Читать далее
Всего голосов 32: ↑32 и ↓0+32
Комментарии17

Посох для Деда Мороза

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


Каждый год 31-го декабря я в костюме Деда Мороза и жена в роли Снегурочки разъезжаем по городу по своим друзьям с поздравлениями. Поскольку уже скоро наступит Новый Год, я решил проверить, все ли у меня к нему готово и достал из подвала свой давно видавший виды посох. К моему удивлению, пролежав в подвале целый год он исправно работал даже сейчас! Его аккумулятор все еще как-то заряжен! Посох не очень ярко, но светится. Конечно придется подзарядить, да и смотрю один светодиод перестал работать, но это дело поправимое — починим.

Этот посох я изготовил еще в 2012-м году и с тех пор он служил мне верой и правдой. Штука достаточно простая, но очень эффектная, особенно ему радуются дети. Он почти как меч джедая — только посох, а для настоящего Деда Мороза — это вещь просто необходимая. Решил написать про него здесь на Хабре — вдруг кто-то проникнется идеей и сделает такой и себе к Новому Году, время еще есть.
Всего голосов 34: ↑33 и ↓1+32
Комментарии23

Особенности оконной фильтрации на ПЛИС

Время на прочтение11 мин
Количество просмотров18K
Всем привет! В этой статье речь пойдет об одной важной части цифровой обработки сигналов — оконной фильтрации сигналов, в частности на ПЛИС. В статье будут показаны способы проектирования классических окон стандартной длины и «длинных» окон от 64K до 16M+ отсчетов. Основной язык разработки — VHDL, элементная база — современные кристаллы FPGA Xilinx последних семейств: это Ultrascale, Ultrascale+, 7-series. В статье будет показана реализация CORDIC — базового ядра для конфигурации оконных функций любой длительности, а также основных оконных функций. В статье рассмотрен метод проектирования с помощью языков высокого уровня С/C++ в Vivado HLS. Как обычно, в конце статьи вы найдете ссылку на исходные коды проекта.

КДПВ: типичная схема прохождения сигнала через узлы ЦОС для задач анализа спектра.


Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии12

Заметки дилетанта, или Сказ о том, как Scala-разработчик ПЛИС конфигурировал

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

Долгое время я мечтал научиться работать с FPGA, присматривался. Потом купил отладочную плату, написал пару hello world-ов и положил плату в ящик, поскольку было непонятно, что с ней делать. Потом пришла идея: а давайте напишем генератор композитного видеосигнала для древнего ЭЛТ-телевизора. Идея, конечно, забавная, но я же Verilog толком не знаю, а так его ещё и вспоминать придётся, да и не настолько этот генератор мне нужен… И вот недавно захотелось посмотреть в сторону RISC-V софт-процессоров. Нужно с чего-то начать, а код Rocket Chip (это одна из реализаций) написан на Chisel — это такой DSL для Scala. Тут я внезапно вспомнил, что два года профессионально разрабатываю на Scala и понял: время пришло...


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

Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии16

Макфол ответил на вопрос про санкции в микроэлектронике

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

Бывший посол США в России Майкл Макфол уже пару лет занимается санкциями против России, в том числе в микроэлектронике. Это происходит в рамках так называемой «Группы Ермака‑Макфола».

Документы группы пишут гуманитарии, например они путают Xilinx и Zilog, или «поправляют» слово ARM на слово ARMY, а также считают, что Zynq — процессор, а не гетерогенная система на кристалле с FPGA.

Кстати, Макфол мог бы попросить технических коллег из Стенфорда это править — в Стенфорде крутая электроника, его ректором был Джон Хеннесси, создатель процессоров MIPS и соавтором двух самых известных учебников по компьютерной архитектуре в мире.

Но короче, в прошлую пятницу Макфол устроил созвон в Zoom для платных подписчиков его блога на substack, я к этому созвону присоединился и задал ему такой вопрос:

Читать далее
Всего голосов 50: ↑40.5 и ↓9.5+31
Комментарии61

Разглядывая JTAG: что внутри?

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

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

Реализовать интерфейс JTAG
Всего голосов 31: ↑31 и ↓0+31
Комментарии8

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

Работа с SD-картой по интерфейсу SPI. Реализация на VHDL

Время на прочтение17 мин
Количество просмотров30K
Привет, Habr! Однажды на работе мне досталась задача оценить возможность реализации хранения данных на SD-карте при подключении ее к FPGA. В качестве интерфейса взаимодействия предполагалось использование SPI, так как он проще в реализации. Полученным опытом хотелось бы поделиться.


Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии39

Software Defined Radio руками шестнадцатилетнего подростка

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

SDR, или программно-определяемая радиосистема – это устройство для работы с радио, в котором работает мини-компьютер со специальным программным обеспечением. Он заменяет традиционные аппаратные компоненты: фильтры, усилители, модуляторы и демоуляторы. Это позволяет создать радиоприемник, работающий с самыми разными протоколами. Вообразите себе радиолу, которая кроме «ХитFM» может принимать аналоговое и цифровое телевидение, связываться по Wi-Fi, Bluetooth и GPS, а также засекать излучение пульсаров.


А теперь представьте себе американского девятиклассника, который решил сделать такую радиолу, заказал через интернет ПЛИС, радиомодуль, развёл шестислойную плату, а потом своими руками смонтировал на неё почти 300 компонентов. И через три ревизии это всё у него заработало!
Всего голосов 35: ↑33 и ↓2+31
Комментарии19

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

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

SDAccel это система программирования на OpenCL для ПЛИС фирмы Xilinx. В настоящее время всё более обостряется проблема разработки проектов для ПЛИС на традиционных языках описания аппаратуры, таких как VHDL/Verilog. Одним из методов решения проблемы является применение языка C++. OpenCL это один из вариантов применения языка С++ для разработки прошивок ПЛИС.
Читать дальше →
Всего голосов 33: ↑32 и ↓1+31
Комментарии30

Часы на ПЛИС Lattice

Время на прочтение19 мин
Количество просмотров33K
Некоторое время назад, хаброжитель DmitrySpb79 написал статьи о создании электронных часов. В них он рассмотрел источники точного времени, а так-же элементную базу для создания электронных часов. Были упомянуты Arduino, STM, Raspberry PI, ESP8266, но совсем забыли про ПЛИС.

Давайте заполним этот небольшой пробел. Узнаем, на сколько просто сделать часы на ПЛИС и какие аппаратные ресурсы для этого потребуются. К тому же, мне подарили микросхему ПЛИС очень малого объема — 64 макроячейки. Это ПЛИС LC4064v фирмы Lattice с которыми я до этого никогда не работал. Я думаю, будет интересно!

Цели:

  • попытаться уместить логику работы часов в ПЛИС малого размера (64 макроячейки);
  • освоить статическую либо динамическую светодиодную индикацию на ПЛИС для вывода времени;
  • собрать кучу граблей, связанных с самостоятельной разработкой схем и получить новый опыт;
  • освоить новую среду разработки и программирования для ПЛИС фирмы Lattice, оценить сложность перехода

Меня ожидает несколько очень приятных вечеров, посвященных разработке на ПЛИС!

Добро пожаловать под кат!
Всего голосов 31: ↑31 и ↓0+31
Комментарии13

Ethernet + PCIe + FPGA = LOVE

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

Доступ по Ethernet невозможен без сетевых карточек (NIC). На небольших скоростях (до 1G) NIC встраивают в материнки, а на больших (10G/40G) NIC размещается на отдельной PCIe плате. Основным ядром такой платы является интегральный чип (ASIC), который занимается приемом/отправкой пакетов на самом низком уровне. Для большинства задач возможностей этого чипа хватит с лихвой.

Что делать, если возможностей сетевой карточки не хватает? Либо задача требует максимально близкого доступа к низкому уровню? Тогда на сцену выходят платы с перепрограммируемой логикой — ПЛИС (FPGA).

Какие задачи на них решают, что размещают, а так же самых интересных представителей вы увидите под катом!

Осторожно, будут картинки!
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии56

SoC: поднимаем простой DMA на FPGA

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


День добрый! В прошлой статье я описывал, как «поднять» с нуля SoC от Altera.
Мы остановились на том, что измерили пропускную способность между CPU и FPGA, когда копирование выполняется процессором.

В этом раз мы пойдем немного дальше и реализуем примитивный DMA в FPGA.
Кому интересно — добро пожаловать под кат.
Тут интересно
Всего голосов 31: ↑31 и ↓0+31
Комментарии4

Опыт автоматизации управления FPGA-стендами для распределенной команды: отказ от готового решения и работа над ошибками

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

В software-разработке с автоматизацией обычно все неплохо: более-менее понятно, как настроить CI и автоматизировать отдельные этапы CI-конвейера. Есть множество готовых решений и практик. Но, когда речь заходит об автоматизации тестирования на «железе», появляется множество нюансов. Например, не всегда понятно как автоматизировать процессы, которые обычно делают люди, — банальную перезагрузку устройства в другом городе. Или другая особенность — целевые аппаратные ресурсы масштабируются не так хорошо, как софт, поэтому приходится придумывать свои подходы к распределению времени доступа к стенду для СI-конвейеров и инженеров.

Меня зовут Игорь Большевиков, я инженер по системному программированию систем на кристалле в YADRO В статье я расскажу о нашем опыте автоматизации процессов, связанных с разработкой на FPGA-стенде: удаленной загрузке плат, бронировании аппаратных ресурсов и решении вопросов по координации для распределенной команды. Я опишу ключевые этапы задачи без лишних технических деталей. Возможно, статья будет полезна тем, кто занимается или кому предстоит заняться автоматизацией работ с FPGA.

Читать далее
Всего голосов 30: ↑30 и ↓0+30
Комментарии4

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