
FPGA *
Программируемые логические интегральные схемы
Intel PAC c FPGA Stratix 10 SX — ускоритель для больших задач

FPGA Intel Stratix 10 SX/GX, появившиеся в продаже 2 года назад, стали новым словом в области вентильных матриц. Выполненные по минимальному на тот момент 14-нм техпроцессу, они были в два раза производительнее и на 70% энергоэффективнее предшественников. Однако чтобы реализовать все заложенные в FPGA Intel возможности, нужна такая же продвинутая «обертка». Аппаратно-программный конструктив, выпускаемый Intel для использования Stratix в хост-системах, называется Programmable Acceleration Card (PAC) — его очередная версия анонсирована в сентябре этого года.
ECO Flow в Vivado или работа в режиме редактирования нетлиста
Аннотация
В статье рассмотрен режим работы Vivado, позволяющий вносить изменения в проект на уровне редактирования списка соединений (в дальнейшем – нетлиста). Описаны как сам режим ECO, так и некоторые нюансы, которые появляются во время работы в нём. Приведён демонстрационный пример и описана полная последовательность действий для получения результата, в работоспособности которой может убедиться каждый желающий. Статья будет полезна для «общего развития» FPGA-разработчикам, а особенно — тем, кто часто отлаживает проекты в Logic Analyzer. Надеюсь, работа в этом режиме вызовет интерес у разработчиков, работающих с большими кристаллами, время компиляции в которых может достигать часов (а то и десятков часов), поскольку в этом режиме время, затрачиваемое на имплементацию, при внесении изменений в нетлист может сократиться до буквально пары минут.

Оглавление
- Аннотация
- Введение
- 1. ECO: краткий обзор
- 2. Design Сheckpoint
- 3. Разработка тестового проекта
- 3.1. Создание проекта
- 3.2. Создание и добавление HDL файлов в проект
- 3.3.Создание проекта MicroBlaze и работа в IP Integrator
- 3.4.Синтез и имплементация
- 3.5.Написание программы для MicroBlaze
- 3.6.Запуск программы и отладка
- 4. Переход в режим ECO
- 5. ECO: описание интерфейса
- 6. Внесение изменений в проект
- 6.1. Создание новых элементов в нетлисте
- 6.2. Изменение свойств/параметров компонентов
- 6.3. Подключение других цепей к пробникам и ILA
- 6.4. Замена портов ввода/вывода
- 7. Сравнительный анализ
- 8. Заключение
- 9. Домашнее задание
- Библиографический список
В статье очень много картинок не в спойлерах (140 штук). Пожалуйста, будьте внимательны, если заходите с телефона
Как я blakecoin майнер делал

Не знаю кому как, а меня прошедший 2017 год шокировал стремительным взлетом биткоина. Сейчас, конечно, ажиотаж уже ушел, а в 17-м году про криптовалюты говорили и писали все кому не лень.
Я видел, что люди пытаются зарабатывать на криптовалютах. Кто как умеет. Кто-то на все сбережения скупал видеокарты и начинал самостоятельно майнить в гараже. Кто-то вкладывался в облачный майнинг. Кто-то пытается организовать свой пул. Кто-то запустил в производство шоколадные биткоины, а кто-то выпускает минеральную воду:

Я тоже стал изучать, что же такое эти самые биткоины. Когда-то я даже начал свое собственное иследование алгоритма SHA256 и написал статью здесь на хабре "Можно ли вычислять биткоины быстрее, проще или легче?". Мои исследования алгоритмов хеширования до сих пор продолжаются и еще и близко не завершены… Может быть когда нибудь напишу про это отдельную статью. А сейчас пока вот это…
Портирование MIPSfpga на другие платы и интеграция периферии в систему. Часть 1
В даной статье будет описано на примере Digilent cmodA7 как портировать процессор MIPSfpga-plus на другие платы.
На сегодняшний день MIPSFPGA портирован на популярные платы таких фирм как ALTERA и Xilinx, среди них Basys 3, Nexys4 ddr, и другие (полный список находится на github). Такие платы наиболее популярны среди разработчиков на FPGA. Цена на такие платы довольно не маленькая, да и загружаются программы в ядро MIPSfpga с использованием интерфейса EJTAG и адаптера Bus Blaster ценой около 50$. Адаптер Bus Blaster получает команды по высокоскоростному кабелю USB 2.0 и преобразует их в последовательный протокол EJTAG, это позволяет загружать программы в ядро MIPSfpga и управлять отладкой программ, которые на нем выполняются. Проблема с относительно дорогим Bus Blaster была решена введением в систему MIPSfpga ряда улучшений. Улучшеный вариант системи MIPSfpga, названый MIPSfpga-plus включает в себя такие новые функции:
— Возможность загрузки программного обеспечения с использованием USB-to-UART коннектора ценой в $ 5 FTDI вместо $ 50 Bus Blaster, который иногда не так уж и легко достать.
— Возможность изменять тактовую частоту на лету с 50 или 25 МГц до 1 Гц (один цикл в секунду) для наблюдения за работой процессора в режиме реального времени, включая промахи в кэш-памяти и перенаправления конвеера.
— Пример интеграции датчика освещенности с протоколом SPI.
— Небольшая последовательность инициализации программного обеспечения, которая вписывается в 1 КБ вместо 32 КБ памяти, что позволяет переносить MIPSfpga на более широкий выбор плат FPGA без использования внешней памяти. Реализация UART описана в статье: MIPSfpga и UART.
Программирование SoC Zynq
Простой одноплатник мне как-то не хотелось приобретать, поэтому выбор мой пал на SoC'и. Выбирал я между Zynq и Cyclone V. По названию темы, думаю, догадались, что же я решил выбрать.

Данная публикация будет состоять из небольшого обзора платки с заглавной картинки и того, как «программировать» и «конфигурировать» подобное железо. Кому это интересно прошу под кат.
Altera + OpenCL: программируем под FPGA без знания VHDL/Verilog

Всем привет!
Altera SDK for OpenCL — это набор библиотек и приложений, который позволяет компилировать код, написанный на OpenCL, в прошивку для ПЛИС фирмы Altera. Это даёт возможность программисту использовать FPGA как ускоритель высокопроизводительных вычислений без знания HDL-языков, а писать на том, что он привык, когда это делает под GPU.
Я поигрался с этим инструментом на простом примере и хочу об этом вам рассказать.
План:
- Пару слов об FPGA
- На чём запускать?
- Процесс разработки (workflow)
- OpenCL BSP
- Компилируем кернел
- … и запускаем
- Заключение
Добро пожаловать под кат! Осторожно, будут картинки!
Свободные инструменты для программирования FPGA

Подборка свободных инструментов для программирования FPGA, включающая в себя средства поддержки языков HDL, синтезаторы, симуляторы и некоторые другие.
Метод «Безумного Макса» для тренировки проектировщиков кастомных вычисляющих структур

Когда студент устраивается на работу в электронную компанию, очень здорово, если он уже умеет строить одну и ту же электронную схему разными способами, в зависимости от требований пропускной способности, максимальной тактовой частоты, размера и энергопотребления.
Как натренировать такое умение? Для новых домашних работ в программе Школы Синтеза Цифровых Схем мы решили разодрать на блоки реальный процессор и дать студентам задачу собирать разные специализированные вычислительные устройства из этих блоков, примерно как герои фильма "Безумный Макс: Дорога ярости" собирали свои боевые драндулеты из частей реальных автомобилей.
Где увидеть косимуляцию в «железе» и RFSoC FPGA своими глазами?

Уже в эту субботу, 25 мая, в Санкт-Петербурге состоится ежегодная конференция FPGA-Systems 2024.1. Еще есть возможность присоединиться офлайн: не только послушать доклады про организацию верификации, ошибки FPGA-специалистов и пообщаться с коллегами, но и посмотреть на любопытные стенды, подготовленные инженерами. Один из них — «черный ящик» на КДПВ, в нем — симбиоз трех симуляторов для моделирования систем на кристалле. Что внутри — читайте под катом.
А еще — раскрываем тайну, кто будет приглашенным спикером московской FPGA-Systems, которая пройдет 1 июня, вслед за первой конференцией.
Как провезти в чемодане баночку урановой руды в Москву из Сан-Франциско?

"Но как провезти в чемодане баночку урановой руды в Москву из Сан-Франциско?" - спросил я у итальянца Габриэле Горла, которого встретил на выставке самоделкиных, Maker Faire в городе Вальехо (этот город интересен тем, что дважды был столицей штата Калифорния, один раз на неделю в 1852 году, а другой — в течение месяца в 1853, но впрочем пост наш не о нем).
Габриэле рассмеялся и подтвердил, что таможни, авиалинии и спецслужбы не очень дружелюбны к таким идеям. Сам он использовал баночку на выставке, чтобы показать работу счетчиков Гейгера собственного производства. Я прикрутил его счетчик к своей FPGA плате, чтобы показывать его на своих семинарах в России и Украине, и обсудил с Габриэле, как модифицировать мой дизайн, чтобы оценить энергию частиц по ширине получаемого импульса.
Только придя домой, я обнаружил, что Габриэле не просто самоделкин.
Реализация кодека 66b/64b на языке VHDL
В протоколах передачи данных для стабильной работы используются кодеки, выбранные разработчиками с учётом следующих требований:
равномерное распределение 0 и 1 в канале
простота кодирования/декодирования
иметь небольшую избыточность
Один из самых распространённых протоколов, о которых думаю, если не каждый человек, то уж каждый инженер точно слышал, является Ethernet, который имеет большое количество стандартов. Он так же использует кодек, а именно 66b/64b, который широко известен в инженерных кругах. Вот небольшой список популярных протоколов, использующих этот кодек:
Ethernet (10,40,100G)
Common Public Radio Interface
Fibre Channel (10G, 16G)
Infiniband (FDR, EDR)
Thunderbolt
Простая сеть для связи нескольких устройств с ПЛИС

Продолжая тему самодельного простого интерфейса https://habr.com/ru/articles/769986/ , как всегда, интереса ради и просто так, разработал концепцию сети на описанном ранее протоколе нижнего уровня. Представленная сеть, может быть пригодна для связи между несколькими ПЛИС внутри печатной платы (ПП); связи между ПП внутри блока, а также связи отдельных блоков с длиной линии передачи между узлами сети до 50м, а может и более.
Ближайшие события
Автосборка Fsbl, U-Boot, linux kernel и установка debian для arm64 для Zynq Ultrascale zcu106

В данной статье описывается способ создания минималистичного образа sd карты c debian arm64 на примере отладочной платы с zynq ultrascale zcu106. Данный способ можно использовать для создания загрузочных образов других устройств с соответствующими изменениями. Битстрим, ядро Linux и dts для удобства разработки размещаются отдельными файлами.
Также описан способ загрузки по сети ядра Linux, dts и корневой файловой системы debian, который позволит сократить время разработки и ресурс карты памяти.
Назвался груздем — полезай в кузов (задали вопрос о входе в Design Verification процессоров и сетевых чипов)

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

В викенд я зашел в кафе Red Rock и встретил там программистку встроенных систем Машу Горбунову. Вообще, у этого кафе в Маунин-Вью, Калифорния можно встретить кого угодно - например однажды на меня прямо из-за угла вылетел основатель Гугла Сергей Брин. Так вот Маша рассказала мне что программирует RTOS (семафоры, мейлбоксы, сигналы), чему выучилась в свое время в питерском институте ГУАП (аэрокосмического приборостроения).
Я решил, что такая девушка не должна оставаться в другой отрасли и показал ей плату ПЛИС, внутри которого можно засинтезировать пару ядер ARM микроконтроллерного класса. На что Маша среагировала так (видео):
Причина агонии студентов во время интервью, или популярно о моделях интерфейсов шины

Сейчас я интервьирую кандидатов которые приходят на позиции в RTL design / проектировщики микросхем на уровне регистровых передач. Но 5 лет назад я интервьировал студентов и других инженеров на позиции в DV / Design Verification / верификаторы блоков микросхем.
Моим стандартным вопросом было написать маркером на доске псевдокод для упрощенного драйвера модели шины (Bus Functional Model - BFM) для протокола AXI. На этом вопросе у ~80% кандидатов наступала агония - они как ужи на сковородке пытались натянуть сову на глобус - приспособить решение для последовательной шины а-ля APB, которое они прочитали в каком-нибудь тьюториале - к шине AXI, которая во-первых конвейерная, а во-вторых, допускает внеочередные ответы на запросы чтения с разными идентификаторами.
Аналогия из другой области: представьте, что кто-то пытается обходить дерево или решить "ханойские башни" - не зная концепций рекурсии и стека. Или написать GUI интерфейс, не зная концепции cобытийно-ориентированной архитектуры.
IV Конференция FPGA разработчиков: Мск, СПб и Томск

ПЛИС-культ привет, FPGA хаб!
В очередной раз мы собираемся нашим ламповым FPGA комьюнити для обмена опытом, всякими премудростями и просто для общения в кругу таких же ПЛИСоводов как и ты.
Программа уже сформирована, регистрация открыта и возможно тебе повезет стать частью фактически единственного FPGA движа на постсоветском пространстве. Не откладывай на завтра и регистрируйся на IV конференцию FPGA-Systems 2023.1.
Из FPGA-дизайнера в ASIC: четыре личных истории и анонс курса переподготовки от YADRO Microprocessors

Во всем мире и в нашей стране резко возрос интерес к разработке микроэлектроники, ключевым элементом которой являются системы на кристалле. Разработка этого класса устройств требует глубоких специальных знаний и опыта, а специалистов такого профиля в индустрии не хватает. При этом традиционные способы подготовки дают хорошую фундаментальную базу, но выпускники вузов не обладают необходимым опытом работы в реальных проектах.
В то же время в отрасли немало специалистов с практическим багажом, которые уже решают прикладные задачи проектирования цифровой логики, но в смежных с разработкой ASIC областях — например, FPGA инженеры. Мы заметили, что у нас в компании нередким стал кейс, когда в команду приходят специалисты с опытом в FPGA-разработке, довольно быстро включаются в задачи проектирования ASIC и потом целиком уходят в эту смежную область, ведь маршруты проектирования и инструменты похожи.
Мы решили систематизировать этот опыт и превратить его во внутренний курс переподготовки из FPGA-дизайнеров в ASIC. Если вы тоже задумывались о том, чтобы начать проектировать IP-блоки для ASIC, прочитайте эту статью. Мы поговорили с нашими инженерами, которые самостоятельно прошли путь от цифрового синтеза под FPGA к проектированию ASIC о том, какие знания и опыт для этого нужны, и в чем разница в построении процессов и устройстве работы команд. И, кажется, нашли много плюсов перехода в эту смежную область.
Реализация кэш-компрессии по алгоритму base+delta

Существенную часть кристалла современных ЦП занимает кэш-память. Дальнейшее увеличение кэш-памяти без изменения технологических норм приведет к соответствующему увеличению кристалла. Одним из способов увеличения объема хранимой информации в кэше без увеличения самого кэша является использование алгоритмов компрессии. Среди них выделяются алгоритмы Base+Delta и Base-Delta-Immediate. Данная статья посвящена реализации первого алгоритма.
Вклад авторов
YuriPanchul 3064.0andreyzaostrovnykh 923.0KeisN13 743.5nckma 626.0hukenovs 429.0Armleo 421.3ishevchuk 419.0yadro_team 371.0iliasam 283.0BarsMonster 281.0