Обновить
60.12

FPGA *

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

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

Самая доступная плата для экспериментов с SoC'ом MCU&FPGA

Время на прочтение2 мин
Охват и читатели12K
Технологии шагают вперёд. И вот уже несколько лет как есть SoC’и MCU+FPGA. И на
КДПВ платка как раз с таким SoC’ом.

image

Это — Microsemi SmartFusion 2 Maker-Board. Кому интересно, что это за плата прошу под кат. Будет краткий обзор.
Читать дальше →

Знакомство с GOWIN. Отладочная плата DK-START-GW1N4/GW1N9

Время на прочтение3 мин
Охват и читатели28K
Недавно ко мне в руки попала китайская ПЛИС, а именно отладочная плата GW1N DK-START-GW1N4, на которой по факту стоит чип GW1N-LV9LQ144C6/I5 (Flash-based FPGA, 8640 LUT4, User flash:608Kb,B-SRAM:468Kb, S-SRAM:17280bit). GOWIN предоставляет много разных вариантов комплектации своих FPGA со встроенным Cortex M3, BluetothFPGA, System-in-Package(SoC + RAM), SecureFPGA…

GW1N-9 представитель базового варианта ПЛИС с наименьшим количеством наворотов и по этому привлекательна демократичной ценой в ~3.5$/1kQty.


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

Разбираем RF-backscatter на коленке

Время на прочтение8 мин
Охват и читатели3.6K
Являясь крупнейшим русскоязычным агрегатором различных статей технического характера, Хабр как-то не добирает «массы» в области разработки цифровой электроники — ПЛИС/FPGA, ASIC, HDL в целом. Хотя пласт технологий в данном случае просто огромный, и я бы сказал, что требуемые знания здесь — это настоящая full-stack разработка: схемотехника, электроника, топология, цифровая логика, синтез и цифровая трассировка, прототипирование в ПЛИС, затем — схемотехника тестовых плат, а если это что-то сложнее простого регистрового управления аналоговым трактом, то еще и низкоуровневое программирование, да и без написания прикладных приложений для управления всем этим тоже по итогу не обходится.

Говорят, критикуя — предлагай, поэтому вниманию читателей предоставляется небольшой экскурс в один из рабочих проектов, а именно — оцифровка и декодирование данных в сфере пассивных RFID-HF устройств.
Читать дальше →

Технология FPGA для тысячи применений

Время на прочтение4 мин
Охват и читатели71K
Трудно представить другую технологию, которая настолько разносторонняя как FPGA.
FPGA — Field-Programmable Gate Array, то есть программируемая логическая матрица (ПЛМ), программируемая логическая интегральная схема (ПЛИС). Это технология, при которой создается микросхема с набором логических элементов, триггеров, иногда оперативной памяти и программируемых электрических связей между ними. При этом программирование FPGA оказывается похоже на разработку электрической схемы, а не программы. Пользуюсь данной технологией давно и попробую описать самые полезные с моей точки зрения применения по мере их усложнения.

1. Помощь при разводке плат


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


И все это благодаря возможности внутренней перекоммутации сигналов внутри FPGA.
Читать дальше →

Очередной подход к RS-триггеру, теперь с TLA+

Время на прочтение4 мин
Охват и читатели3K
Я уже моделировал RS-триггер как полностью синхронную схему. Но в некоторых приложениях таких моделей не достаточно, требуется рассмотреть переходные процессы, которые могут возникнуть. TLA+ разработан для анализа параллельных асинхронных систем. Поупражнявшись в решении головоломок с его помощью, можно начать применять этот инструмент и для более серьезных задач.
Читать дальше →

Как работает адресная светодиодная лента?

Время на прочтение4 мин
Охват и читатели72K

Наверное этот вопрос «как работает» очень многим покажется глупым. Ответ почти очевиден: адресная светодиодная лента состоит из множества последовательно соединенных «умных светодиодов». Это можно увидеть просто рассматривая устройство ленты. Видны отдельные микросхемы, припаянные к гибкому шлейфу, видны соединения: микросхемы соединены последовательно всего тремя проводами, при этом два из них это питание и земля. Только один провод передает данные о цвете пикселей. Как же это? Что такое «умный светодиод»?

Дальше я расскажу о протоколе передачи данных, используемом в светодиодной ленте на базе WS2812B, и, более того, я почти создам свою «микросхему светодиодной ленты» в микросхеме ПЛИС.

Новый лабник «Цифровой синтез» продолжает книгу Харрисов и помогает сделать видеоигру на FPGA

Время на прочтение11 мин
Охват и читатели18K


Новый лабник «Цифровой синтез» продолжает традиции учебника Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», скачивания которого завалили британский сайт. Лабник позволяет потрогать руками всю теорию из Харрис & Харрис на плате FPGA, от мигания лампочек до процессора. В лабнике также разобрана концепция конвейерной обработки, без которой вы не пройдете интервью на работу проектировщиком ни в одну микроэлектронную компанию. В конце показан путь от FPGA до ASIC, массовых микросхем, которые стоят в айфонах, теслах и ИИ-акселераторах.

В книжке есть интервью команды из Питера, которую Intel привез в свою штаб-квартиру в Silicon Valley за их победу на конкурсе Innovate FPGA. Книжку «Цифровой синтез: практический курс» поддержала ведущая компания в автоматизации пректирования микросхем Cadence Design Systems (на фото выше сибирячка Наташа стоит с FPGA платой перед штаб-квартирой Cadence в Silicon Valley — в посте будет ее видео).

Лабник делался под эгидой Высшей Школы Экономики / МИЭМ (Александр Романов, Вероника Прохорова и Игорь Агамирзян), при этом разные главы в нем писали преподаватели Московского, Киевского и Самарского университетов, Питерского ИТМО, Черниговского политеха и Университета Калифорнии Санта-Круз (Чарльз Данчек, вечернее отделение в Silicon Valley). В создании учебника приняли участие инженеры российских компании IVA Technologies (Станислав Жельнио, аппаратный ускоритель ИИ + образовательный проект schoolMIPS) и ФГУП НПЦАП
(отделение Роскосмоса), американских компаний MIPS, Juniper Networks и AMD. Издало учебник ДМК-Пресс.

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

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


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

Проект LLHD — универсальный язык описания аппаратуры

Время на прочтение10 мин
Охват и читатели12K

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


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


Предлагаемая иерархия инструментов (здесь и далее изображения из оригинальной статьи)


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


Под катом описание текущего положения дел, краткий обзор языка и отличия нового подхода.

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

PCI Express в ПЛИС V-й серии Intel: основы интерфейса и особенности аппаратных ядер

Время на прочтение16 мин
Охват и читатели20K

Введение


Знакомый многим интерфейс PCI Express или PCIe был доступен разработчикам систем на ПЛИС уже тогда, когда он только начинал распространяться в цифровой технике. В это время существовало решение, в котором программное ядро подключалось ко внешней микросхеме физического уровня [5]. Это позволяло создавать одноканальную линию PCIe со скоростью 2,5 гигатранзакций в секунду. В дальнейшем, благодаря развитию технологий, физический уровень интерфейса перекочевал в аппаратные блоки PCIe внутри самих ПЛИС; количество возможных каналов увеличилось до 8, а в ряде новых микросхем — и до 16; вслед за современными стандартами выросли возможные скорости передачи данных.

В то же время, в русскоязычных источниках по-прежнему затруднительно найти вспомогательные материалы по работе с аппаратными ядрами современных ПЛИС, не так и много информации доступно по самому интерфейсу PCIe. Руководство к аппаратным ядрам PCI Express подразумевает, что разработчик уже ознакомился со стандартом и понимает основы передачи данных между устройством и персональным компьютером (ПК). Однако обилие информации в самом стандарте PCIe не дает сразу же разобраться в том, какие шаги необходимо предпринять, чтобы успешно передать данные от устройства в память ПК или обратно. Чтобы получить более полную картину, немалую часть сведений приходится собирать по крупицам из разных источников. Для разработчиков систем на ПЛИС фирмы Intel сложность также заключается в том, что большинство доступных материалов и статей описывают работу с аппаратными ядрами ПЛИС фирмы Xilinx.

В данной статье автор постарается рассказать о том, что необходимо знать разработчику систем на ПЛИС для работы с интерфейсом PCI Express; рассмотрит особенности работы с аппаратными ядрами PCI Express ПЛИС V-й серии фирмы Intel в варианте Avalon-ST.
К основной части

Собственный софт-процессор на ПЛИС с компилятором языка высокого уровня или Песнь о МышЕ

Время на прочтение17 мин
Охват и читатели9.9K
Собственный софт-процессор на ПЛИС с компилятором языка высокого уровня или Песнь о МышЕ — опыт адаптации компилятора языка высокого уровня к стековому процессорному ядру.

Распространенной проблемой для софт-процессоров является отсутствие средств разработки для них, особенно, если их система команд не является подмножеством команд одного их популярных процессорных ядер. Разработчики в этом случае вынуждены будут решать эту проблему. Прямым её решением является создание компилятора языка ассемблера. Однако в современных реалиях не всегда удобно работать на Ассемблере, так как в процессе развития проекта может изменяться система команд в связи, например, с изменившимися требованиями. Поэтому задача легкой реализации компилятора языка высокого уровня (ЯВУ) для софт-процессора является актуальной.

Компилятор языка Python — Uzh представляется легким и удобным инструментарием для разработки программного обеспечения для софт-процессоров. Инструментарий определения примитивов и макросов как функций целевого языка позволяет критичные места реализовывать на ассемблере процессора. В данной работе рассмотрены основные моменты адаптации компилятора для процессоров стековой архитектуры.
Читать дальше →

Домашка по арифметике

Время на прочтение11 мин
Охват и читатели8.3K
Лёшенька, Лёшенька, сделай одолжение!
Выучи, Алёшенька, таблицу умножения !

Агния Барто


Сначала задачка для первоклассника. Дано некоторое положительное число. Нужно умножить на него другое число, заранее неизвестное. Вопрос, как посоветуют это сделать благородные доны ??? Бывалый разраб наверняка скажет, мол мужик, ставь умножитель и не парь мне мОзги. И возможно будет в корне неправ! Ибо кроме монстров от Alterra и Xilinx существует ещё и такое замечательное семейство как iCE-40 от Lattice. Ультрамикропотребляющее. Очень дешевое. Да вот беда, больно мелкие они, и увы, умножителей там нет. Я столкнулся с этим года 4 назад, когда портировал некий ADPCM-кодек с ассемблера adsp-2185 на такой кристалл.
Читать дальше →

Инкапсулятор Etherblade.net и импортозамещение сетевых компонентов (часть вторая)

Время на прочтение5 мин
Охват и читатели5.5K
image

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

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

Данный текст является некоторым экскурсом в сетевые технологии и для того чтобы уместить такую обширную тему в рамках одной статьи, я решил написать ее в контексте некоторого плана действий или, если желаете, ответа на следующий вопрос – «Как используя FPGA и опенсорс максимально эффективно заместить оборудование от Cisco и Juniper».
Итак, начнем.
Читать дальше →

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

Построение отказоустойчивой системы Embedded Linux на базе модуля Mars ZX3 фирмы Enclustra

Время на прочтение5 мин
Охват и читатели6.1K
В связи с загруженностью специалистов, несколько лет назад мы вынуждены были отдать одну разработку контрагентам. Разработка велась на модуле Mars ZX3 фирмы Enclustra, в котором используется SOC ARM+FPGA Zynq-7020. Для сборки Linux использовался BSP от Enclustra (bsp-xilinx), который был немного модифицирован.

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

Верификация цифровых схем. Обзор

Время на прочтение9 мин
Охват и читатели23K

image


Я постараюсь в общем рассказать о верификации цифровых схем.


Верификация в данной области — это важный процесс, требующий привлечения опытных инженеров. Например, специалист по верификации, работающий над системами с ЦПУ, как правило должен владеть скриптовыми языками и языками командных оболочек (Tcl, bash, Makefile и т.п.), языками программирования (С, С++, ассемблер), HDL/HDVL (SystemVerilog [10, Appendix C — история языка][11], Verilog, VHDL), современными методологиями и framework’ами (UVM).


Доля времени, затраченного на верификацию, доходит до 70-80% от всего времени проекта. Одна из основных причин такого внимания в том, что к микросхеме нельзя выпустить “патч” после того, как ее отдали в производство, можно только выпустить “silicon errata” (это не касается проектов ПЛИС/FPGA).


Под цифровыми схемами я подразумеваю:


  • сложно-функциональные блоки/intellectual properties (СФБ/IP);
  • специализированные заказные микросхемы/application-specific integrated circuit (ASIC);
  • проекты программируемых логических интегральных схем/field-programmable gate array (ПЛИС/FPGA);
  • системы на кристалле/system-on-crystal (СнК/SoC);
  • и т.п.
Читать дальше →

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

Время на прочтение4 мин
Охват и читатели10K


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

Этот посох я изготовил еще в 2012-м году и с тех пор он служил мне верой и правдой. Штука достаточно простая, но очень эффектная, особенно ему радуются дети. Он почти как меч джедая — только посох, а для настоящего Деда Мороза — это вещь просто необходимая. Решил написать про него здесь на Хабре — вдруг кто-то проникнется идеей и сделает такой и себе к Новому Году, время еще есть.

Vivado: Picasso mode

Время на прочтение9 мин
Охват и читатели3.9K

Аннотация


Безумию все возрасты покорны


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


Такой необычный «маршрут проектирования» был реализован еще полтора года тому назад, но вот только сейчас пришла мысль оформить его в виде заметки, в которой имеется небольшая практика применения Tcl скриптов для управления средой проектирования, в данном случае Vivado. Однако при небольших доработках все легко может быть адаптировано под другие среды разработки, например Quartus II.


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

SP701 + PCAM-5C + 15 Минут+ VITIS = Easy MIPI на FPGA

Время на прочтение4 мин
Охват и читатели11K

Аннотация


Интерфейс MIPI сегодня становится всё более популярным интерфейсом для подключения камер и дисплеев. По этой причине всё больше отладочных комплектов на основе FPGA содержат на борту соединители интерфейса MIPI – как для подключения камер(ы) и дисплея(ев). Для того чтобы начать работать с новой технологией или просто посмотреть что она собой представляет разработчики пытаются отыскать на просторах интернета подходящее руководство, в котором были бы описаны соответствующие нюансы работы. С одной стороны тестовый пример должен достаточно просто подниматься на отладочном комплекте, а с другой стороны давать достаточно простое и широкое понимание происходящего в этом тестовом примере.

Цель статьи – показать, как начать работать с интерфейсом MIPI используя одну из новейших отладок от Xilinx – SP701, камеру с интерфейсом MIPI от компании Digilent PCAM-5C и среду разработки Vivado+VITIS(SDK) от компании Xilinx


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

Простая реализация небольших CAM на ПЛИС

Время на прочтение3 мин
Охват и читатели6.2K

Введение


Как-то раз мне потребовалось по работе реализовать небольшой блок CAM (ассоциативной памяти). Почитав, как это делается у Xilinx на BRAM (блоках статической памяти) или на SRL16 (16 — битных сдвиговых регистрах), я несколько опечалился, так как их реализации занимали довольно много места. Решил попробовать сделать его самостоятельно. Первым вариантом стала реализация в лоб. Забегая вперед, она практически сходу мне и подошла, благо, целевая частота для дизайна была всего 125 МГц.

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

Применение MATLAB/Simulink с аппаратурой производства АО «ИнСис»

Время на прочтение6 мин
Охват и читатели11K
Важной практической задачей является использование Matlab/Simulink с реальной аппаратурой которая позволит принять сигнал из реального мира. Это очень полезно для отладки алгоритмов. В данной работе представлена технология подключения к Simulink устройств АЦП производства АО «ИнСис». Для подключения используется DLL, которая видна в Simulink как компонент sm_adc. Для работы с аппаратурой используется отдельная консольная программа. Связь с DLL производится через разделяемую память. По данной технологии могут быть подключены любые АЦП на любых несущих модулях АО «ИнСис». В работе представлена система из генератора A7_DAC и модуля сбора FMC128E/FM412x500M.

Данная работа демонстрировалась на конференции «Технологии разработки и отладки сложных технических систем» 27-28 марта 2018 года.



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