
FPGA *
Программируемые логические интегральные схемы
Intel PAC N3000 — FPGA для сетевых приложений

В полном соответствии с тематикой выставки Mobile World Congress 2019, проходящей в эти дни в Барселоне, компания Intel представила на ней целый ряд новинок, предназначенных для телекоммуникационной отрасли. Хотим обратить внимание на одну из них; она достаточно специфична и не будет использоваться широко, но, с другой стороны, отражает текущие тенденции в области сетевых устройств. Речь идет о Intel PAC N3000 — первом специализированном FPGA ускорителе Intel для задач сетевой виртуализации.
Ещё раз о задержках в исходном коде проекта FPGA или простой вопрос для собеседования на вакансию разработчика FPGA

Некоторое время назад при обсуждении в компании профессиональных разработчиков FPGA возникла дискуссия о прохождении собеседования. Какие вопросы там задают, и что можно было бы задать. Я предложил два вопроса:
- Приведите пример синхронного кода без использования задержек, который даст разные результаты при моделировании и при работе в реальной аппаратуре
- Исправьте этот код при помощи задержек.
После этого вопроса завязалась оживлённая дискуссия, в результате которой я решил более подробно рассмотреть этот вопрос.
Сравнение tick-to-trade задержек CEPappliance и Solarflare TCPDirect
Как нам кажется, полученные нами результаты могут быть интересны высокочастотным трейдерам, алготрейдерам и всем неравнодушным к обработке данных с малыми задержками.
Портирование MIPSfpga на другие платы и интеграция периферии в систему. Часть 3
В этой части добавим к MIPSfpga-plus встроенный АЦП, и популярный LCD от Nokia 5100.
С предыдущих частей можно сделать вывод, что интеграция периферии в MIPSFPGA состоит из пять основных этапов:
- Добавление модуля интерфейса общения с периферией (i2c, spi, и т.д.).
- Соединение входных/выходных портов модуля с шиной AHB-Lite.
- Присваивание адресов сигналов подключаемого устройства.
- Добавление констрейнов на физические контакты платы.
- Написание программы для MIPS процессора.
Подключение встроенного в cmoda7 АЦП
Как я уже говорил плата cmodA7 имеет встроенный АЦП, pin 15 и 16 используются в качестве аналоговых входов модуля FPGA. Диапазон работы встроенного АЦП от 0-1V, поэтому используется внешняя схема для увеличения входного напряжения до 3.3V.

Эта схема позволяет модулю XACD точно измерить любое напряжение от 0 В и 3,3 В (по отношению к GND). Чтобы работать с АЦП в Vivado существует блок IP (интеллектуальной собственности) Xilinx, с помощью которого можно будет просто его интегрировать в нашу систему MIPSfpga.
ИИ на FPGA — создание нейронной сети XOR с помощью LLM

Иногда лучший способ чему-то научиться, будь то ПЛИС, модель ИИ или простейшая логическая задача — это позволить технологии научить саму себя.
Моделирование реализации модуля Быстрого Преобразования Фурье (БПФ/FFT) и сравнение с аналогичным ядром от Xilinx

При разработке сложно-функциональных блоков (СФБ) цифровой обработки сигналов важным этапом является моделирование алгоритма работы. Этот этап может занимать существенное время, откладывать запуск написания RTL и, как результат, увеличивать общее время разработки. Поэтому в условиях ограниченного времени на разработку многие предпочитают этот этап пропускать. А зря.
Сложные цепи из последовательных звеньев и параллельных шин — согласование цифрового сигнала внутри таких схем

Нет согласующих резисторов в FPGA - что мешает реализовать целый ряд схем, но зато есть чем заменить их для цифрового сигнала внутри таких схем. Пытался найти в сети альтернативу согласующему резистору для применения внутри синтезируемой схемы, поисковик выдал скромный результат поиска, содержанием которого оказалось ничего по существу - категоричное нет на всех форумах, и иногда что-то близкое, но моей задачи не решающее. Да и собственно в схеме развёрнуты две задачи - некоторый кэш нового типа и механизм управления таким кэшем, по сути - часть процессора нового типа.
Тут нужно много вникать. И если Вы не верите IDE Logisim Evolution - можете просто пройти мимо и не принимать тут изложенный материал во что-то нужное и полезное. Тем более что это в общем-то работа новичка, который просто развивает свой проект и взгляды в новых областях, сталкивается с новыми задачами и решает их новыми способами.
Инженерный хакатон YADRO для студентов

14-15 мая 2022 г. YADRO впервые в России проведёт инженерный хакатон для студентов старших курсов.
Студенты смогут прокачать навыки проектирования современных микропроцессоров на базе архитектуры RISC-V и попробовать свои силы в решении практических задач маршрута проектирования системы на кристалле (СнК) по направлениям:
- RTL проектирование;
- функциональная верификация;
- топологическое проектирование.
Делаем блок SPI to AVALON_MM для USB-устройства на базе FX3
Дело в том, что когда мы работаем на чистом TCL, как делали это здесь и здесь, всё замечательно. Но для задач, гоняющих десятки или даже сотни мегабайт, этот вариант слишком медленный. Поэтому мы вынуждены добавить программу на С++, работающую через USB 3.0.
Вариант с TCL-сервером, к которому обращается плюсовая программа, рассмотренный в этой статье, требует сложной ручной подготовки при каждом запуске. Надо обязательно запустить среду исполнения (для Windows и Linux они разные), запустить серверный скрипт, а затем – в программе синхронизировать работу с данными по USB и с командами через TCP. Не люблю такие сложности. Оставим те варианты под случаи, когда они не создают трудностей. Здесь же у нас есть USB-устройство, мы всё равно с ним работаем, вот и будем обращаться к шине AVALON_MM через него. Приступаем.

Знакомство с FPGA iCE40 UltraPlus Mobile Development Platform от фирмы Lattice Semiconductor
Введение
Всем доброго времени суток, друзья! Недавно на работе обзавелись новенькой навороченной платой iCE40 UltraPlus Mobile Development Platform от фирмы Lattice Semiconductor. Со слов разработчиков на официальном сайте iCE40 UltraPlus MDP — это плата, на которой расположены 4 ПЛИС iCE40 UltraPlus, каждая из которых управляет своим набором периферии. В набор входят:
- мобильный дисплей с разрешением 240x240 с интерфейсом MIPI DSI;
- датчик изображения с разрешение 640x480 (OVM7692);
- малопотребляющие микрофоны в количестве 4 штук;
- BLE модуль для беспроводной передачи данных;
- программируемая SPI Flash память;
- пак различных датчиков (давления, компас, гироскоп и акселерометр);
- ну и всякие кнопочки и лампочки.
Вся круть данного кита заключается в том, что на нем с помощью специальных программных пакетов можно разворачивать нейронные сети для работы с видео и звуком. И это не говоря уже о том, что ПЛИСы фирмы Lattice являются низкопотребляемыми, малогабаритными и достаточно дешевыми.
Intel Quartus Prime — все что нужно для работы с FPGA Intel

В 2015 году Intel приобрела компанию Altera — одного из известнейших разработчиков FPGA и SoC. Постепенно все продукты Altera — как аппаратные, так и программные — сменили свое название, в частности, ПО для дизайна FPGA-систем Altera Quartus стало именоваться Intel Quartus Prime. Мы часто упоминали о нем в связи с выходом очередных FPGA Intel, но никогда не описывали подробно. Сейчас есть время это сделать, тем более что со времен смены имени вышло уже несколько больших релизов, принесших новый функционал и поддержку новых устройств.
Статический временной анализ demystified. Часть 2
Ближайшие события
Верификация FPGA. Что это?
Если не все, то многие здесь слышали про ПЛИС. Возможно некоторые даже плотно с ними работали, но, думаю, с верификацией проектов на ПЛИС сталкивалось намного меньше людей. Сегодня я расскажу о процессе верификации.
Как изменить ситуацию, что вузы готовят не кадры для промышленности, а следущее поколение преподавателей

Провели мероприятие в Калифорнийском политехническом государственном университете в Сан-Луис-Обиспо. Докладчиками были: ваш покорный слуга Юрий Панчул, два американских инженера проектирующие чип по ускорению ИИ, и китайский студент из Университета Калифорнии в Санта-Барбаре. Идея мероприятия возникла, когда я встретился с выпускником Cal Poly Стенли на конференции самоделкиных OpenSause, и он поведал мне то, что я уже знал из собеседований американских студентов: они изучают в вузе карты Карно, доходят до конечного автомата светофора, отдельно постигают классический 5-стадийный конвейер MIPS (ныне RISC-V), а потом идут на собеседование на работу, и - хоба! - выясняется что их карты Карно никого в индустрии не интересуют, а вопросы идут про сопряжение конвейера обработки данных (не процессорного!) и FIFO, чего они не проходили.
Привожу ниже мой отчет на английском.
Знакомство с FPGA-тян или, что такое ПЛИС

Привет с вами снова Александр и FPGA-тян. На самом деле хочется признаться, что эта статья задумывалась как первая, поэтому и имеет в названии слово " Знакомство". Но она никак не могла пройти модерацию (по неизвестной мне причине), однако я всё же решил выложить и этот пробный материал. Поэтому давайте мысленно представим, что она всё же вышла первой и будем отталкиваться от этого при прочтении.
Асинхронная логика — насколько же это может быть быстро… (+ небольшая победа над багом в Gowin EDA)

Речь пойдёт всё так‑же о асинхронной логике. Похоже, что тут никто и никого не ждал... к такому выводу можно прийти, если посмотреть на сравнения, в сети и материалах, по части синхронной и асинхронной логики, и на фактические цифры, ну и на традиционную забагованность (в частности Gowin EDA) в таких нужных местах как массивы, впрочем эта забагованность вполне победима посредством небольшого «шаманства», об этом будет тоже. Приходится делать «двухшаговые » публикации, потому что если свалить всё в прошлую — то это вряд ли станет всё читабельным, а одного шага явно мало для полноценной публикации, особенно на фоне борьбы с чужими багами. Если не лень читать новые «приключения» в асинхронном, и не только, мире — то пожалуйста.
Делители часов

Для стабильной работы последовательным схемам нужен надежный тактовый сигнал для обеспечения стабильной синхронизации по времени. Для обеспечения стабильного источника частоты схемы генератора тактовых сигналов используют кварцевый резонатор. Драйверные схемы усиливают сигнал от кристалла (или генератора) в цифровой сигнал, который распространяется на остальные, например, запоминающие устройства в цифровой системе.
Большинству цифровых схем требуется несколько (или даже десятки) различных тактовых сигналов для управления различными подсистемами. Например, система на основе ППВМ может использовать тактовую частоту 48 кГц для создания аудиопотока, тактовую частоту 1 кГц для запуска таймера, тактовую частоту 10 МГц для запуска небольшого процессора и тактовую частоту 12 кГц для запуска контроллера двигателя. Было бы слишком дорого использовать отдельные внешние схемы осциллятора для создания такого количества различных тактовых сигналов, поэтому системы обычно производят необходимые им тактовые сигналы всего из одного или двух основных тактовых входов.
Использование шифрования для защиты битового потока Xilinx 7-й серии

Когда возникла необходимость защитить устройство от нежелательного использования, оказалось, что на эту тему мало информации. В конце концов, процесс перехода по множеству ссылок, которые выдал поисковик, вывел на XAPP1239, UG470 и XAPP1084. Перед прочтением этой статьи лучше с ними ознакомится, так будет понятнее о чём идёт речь. Ниже будут пошагово описаны процессы создания зашифрованного bitstream и конфигурации ПЛИС на отладочной плате ARTY A7 и XC7K325T KINTEX-7 на кастомной плате для программирования этим зашифрованным bitstream.
Симуляция высокоскоростных приёмопередатчиков с динамической реконфигурацией для ПЛИС Intel серии IV. Подготовка
Наверное каждый "ПЛИСовод" использовал высокоскоростные приёмопередатчики хотя бы раз в своей практике. В семействе ПЛИС Intel/Altera серии IV IP ядро с этим функционалом называется ALTGX.
Основная задача этого IP ядра - преобразование параллельной шины на низкой частоте в последовательную шину на высокой.
Динамическая реконфигурация позволяет менять различные параметры приёмопередатчиков "на лету", то есть не меняя прошивку ПЛИС.
Основными из них являются:
скоростные характеристики, то есть на какой скорости будут принимать и передавать данные
включать/выключать встроенные кодеки (в ПЛИС серии IV - кодек 8b/10b)
менять аналоговые параметры, такие как TX VOD, TX Preemphasis, RX Offset Cancelation, RX Adaptive Equalizer
Ни для кого не секрет, что компиляция и тестирование проектов ПЛИС занимает достаточно большую часть времени всего процесса разработки. Поэтому часто разработчики используют различные среды симуляции для тестирования своих модулей. Но многие ли использовали среду симуляции для тестирования разработанных модулей в связке с используемыми IP ядрами от разработчика ПЛИС. В этой статье мы решили поделиться своим опытом, начиная с создания IP ядра ALTGX для ПЛИС Intel Cyclone IV до симуляции созданного проекта для тестирования модулей динамической реконфигурации с связке с ALTGX.
Вклад авторов
YuriPanchul 3062.0andreyzaostrovnykh 923.0KeisN13 743.5nckma 626.0hukenovs 429.0Armleo 421.3ishevchuk 419.0yadro_team 371.0iliasam 283.0BarsMonster 281.0