
FPGA *
Программируемые логические интегральные схемы
YADRO x Альянс RISC-V: что было на самом большом митапе в России по открытой архитектуре

Факт: как минимум 150 человек в нашей стране интересуются RISC-V настолько, что их не пугает девятибалльный шторм. Примерно столько мы собрали в офлайне 14 марта в Москве на совместном митапе YADRO с Альянсом RISC-V. Оценили, готов ли RISC-V для мобильных устройств, а для RISC-V, в свою очередь, — высокопроизводительные библиотеки. Рассмотрели экосистему RISC-V для сценариев АСУ ТП — автоматизированных систем управления технологическим процессом. И наконец, в большой дискуссии обсудили, готова ли открытая архитектура к развитию широкой экосистемы открытого ПО в различных областях. Записи выступлений и некоторые интересные тезисы — далее в статье.
HDLbits + Qwen ИИ – пожалуй, лучший способ выучить Verilog

Verilog вряд ли можно назвать простым языком. Он требует понимания основ цифровой логики, работы аппаратуры, смены парадигмы мышления с процедурной на декларативную (описание структуры, а не алгоритма)...
В классическом программировании вы видите результат сразу после запуска программы. Скажем, программирование на C# - доступно каждому, кто готов сделать первый шаг. Немного текста, и по нажатию F5 вы увидите на экране классический "Hello, World!". Всё, ключ к двери в мир разработки в ваших руках... Пусть впереди вас ждут сложные концепции и океан возможностей, именно эта простота делает старт таким увлекательным и доступным.
С Verilog всё гораздо сложнее. И хотя, в мире ПЛИС аналогом "Hello, World!" может быть мигающий светодиод или простой счётчик, результат вашей работы будет виден только после загрузки кода на плату и проверки его работы.
Появление онлайн-симулятора HDLBits сделало изучение Verilog гораздо проще и увлекательнее, чем когда-либо прежде. А доступные каждому платы с ПЛИС китайской компании Gowin Semiconductor (отладочная плата с ПЛИС, на которой можно развернуть процессор RISC-V — стоит всего 2000 рублей) позволяют попрактиковаться на реальном «железе» практически бесплатно. При наличии опыта программирования, освоить Verilog будет проще, чем вы думаете. 😉
Если вам нужно закрыть этот «пробел в образовании» и познакомиться с RTL-дизайном, начинайте прямо сейчас! Но обо всём по порядку.
Chisel, первый взгляд RTL-разработчика

Недавно возникла потребность в быстром погружении в язык разработки Chisel. Для пробы будет разработан простой блок, который будет принимать данные по интерфейсу AXI-Stream, проверять в них контрольную сумму и передавать данные в выходной интерфейс AXI-Stream в случае совпадения контрольной суммы. Реализация блока на SystemVerilog, Chisel, тестовое окружение для проверки - под катом.
От Шёлкового Пути — to the Road to Silicon: в Средней Азии есть RTL-дизайнеры

Оказывается, в Кыргызстане, который в 11 веке стоял аккурат посередине Великого шёлкового пути, спустя тысячу лет появились проектировщики цифровых схем на уровне регистровых передач. Во время семинара «Модели бизнеса и основы технологий микроэлектроники для Центральной Азии» мы встретились с инженерами Азаматом Бексадаевым и Бахтияром Кукановым, которые принимали участие в разработке двух блоков на верилоге для международного проекта Parallella. Этот проект был инициирован американской компанией Adapteva, которая сейчас превратилась в Zero ASIC.
Основой технологии Adapteva была решетка из большого количества процессорных ядер внутри одной микросхемы. Ядра имели собственную архитектуру под названием Epiphany и были оптимизированы под энергоэффективные вычисления с плавающей точкой. По микроархитектуре каждое ядро было суперскаляром с внеочередными выполнением инструкций (out-of-order – OoO).
FPGA Weekly News #001

Ребята из FPGA комунити каждый день делают небольшую подборку новостей из мира FPGA и решили поделиться ей с читателями хаба FPGA. Внимание: возможны повторы!
Синтезируем SystemVerilog код в OpenSource среде Yosys/NextPNR

В предыдущей статье я поделился опытом работы с ПЛИС фирмы Lattice через инструменты с открытым исходным кодом Yosys и NextPNR. Как я отмечал, освоить их меня заставило не столько любопытство, сколько требования Заказчика. В том проекте у меня просто не было выбора. И та статья, скорее, была написана в помощь для быстрого старта тем, кого тоже заставят. А можно ли использовать эту сцепку для дома, для семьи? Для этого она должна быть удобной.
Как мы обсудили в комментариях к прошлой статье, в минусы этой сцепке можно записать отсутствие такого полезного инструмента, как SignalTap (Altera) или ChipScope (Xilinx). Замену этой парочке пока что удалось найти только в виде физического анализатора. Так себе замена, но хоть что-то.
Более серьёзная трудность заключалась в том, что все примеры, которые я находил, были реализованы на чистом Верилоге. А я уже не могу писать автоматы, не используя такой механизм, как enum. Меня каждый раз злит необходимость перенумеровывать состояния, если я правлю автомат по ходу разработки. Но чтобы был enum, надо пользоваться более прогрессивным стандартом языка, который уже называется SystemVerilog.
На странице Yosys YosysHQ/yosys: Yosys Open SYnthesis Suite (github.com) описано, что данный язык ограниченно поддерживается синтезатором, и даже указана опция для его использования. А именно сказано, что команде read_verilog надо добавить ключ –sv. Но попытки найти в сети готовую инструкцию для новичков, как её активировать, я не нашёл, потому что если кто-то и пользуется этой командой, то для одного файла, а не для списка.
Наконец, я разобрался, поэтому делаю такую инструкцию, чтобы любой желающий смог быстро найти готовое решение.
Как выполнить аппаратную реализацию энкодера h264, не написав ни строчки кода на VHDL/Verilog?

Вступление
Сжатие видео с камеры является важной задачей как при трансляции данных через сеть Интернет, так и при передаче данных через радиоканал. Это позволяет в разы сократить объем передаваемой информации при небольшой потере детализации в исходном видео. Сейчас самым популярным алгоритмом для сжатия видео является кодек h264. Хотя уже существует следующая реализация кодека – h265, но он имеет большую вычислительную сложность алгоритма и пока не нашел столь широкого применения, и его реализацию можно оставить на потом :)
Модельно-ориентированное проектирование - это что?
При разработке алгоритма для ПЛИС можно выделить два основных подхода: написать алгоритм сразу на языке описание аппаратуры VHDL/Verilog/SystemC или использовать более высокоуровневые средства проектирования. Во втором случае вначале строится эталонная модель алгоритма в MATLAB/Simulink, тестируется, верифицируется и постепенно подготавливается к автоматической генерации HDL кода из алгоритма. Конечно, мы выбрали второй вариант, т. е. наш план – на основе MATLAB кода сделать эталонную модель алгоритма Simulink, а после – адаптировать ее к автоматической генерации кода и получить HDL для ПЛИС.
Оптимизация цифрового автомата (FSM)

Знаешь что такое цифровой автомат(FSM)!? Интересуешься цифровой схемотехникой? Если да, то вам будет интересно посмотреть решение одной проблем, которую часто игнорируют. Если нет, то вам придётся потратить дополнительно 5 минут на введение)
Для тех кто хочет загрузить свой мозг новой интересной задачей. Результаты вас удивят.
Практические опыты с USB-анализатором на базе Redd

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.
Установка Quartus II Web Edition для Linux

В публикации рассказывается о том, как произвести установку САПР Altera Quartus II Web Edition (далее просто Quartus) в пакетном режиме на компьютер, работающий под управлением ОС Debian Linux amd64. Автор использует Quartus для работы с платами семейства Марсоход, так что в публикации также приведён небольшой обзор этого семейства, и то, какие версии Quartus для каких плат Марсоход годятся.
Материал будет полезен всем, кто начинает работать с Quartus под ОС GNU/Linux.
Задачки на Verilog — новый раздел на сайте

Программируемая Логика - увлекательный и своеобразный мир - к сожалению среди большинства из нас, знатоков Python, JS, Go, Java, C++ да и среди любителей Arduino и прочих микроконтроллеров она не так широко "распростирает свои руки".
Давно хотелось среди задачек и головоломок на "обычное" программирование внедрить на сайте и горстку упражнений из этой таинственной области. Мешало банальное отсутствие собственного опыта в ней (за исключением нескольких занятий по AHDL в далёкие вузовские годы).
Мотивация (или везение?) пришло с очередной новой работой - хотя она не связана с PLD/FPGA, но в моей текущей компании эти направления значительно развиты, есть и знатоки - которые подсказали кое-что по инструментам, по выбору языка - а заодно показали и репозиторий с "домашками" от их собственного курса... Я засучил рукава, добавил компилятор в "песочницу" и вот уже первые несколько заданий ждут энтузиастов :) Также ждём знатоков которые захотят помочь с идеями новых задач и верификацией существующих. Итак, переходим к подробностям...
Моделирование IP-ядер Xilinx в ModelSim

Недавно у меня возникла потребность в том, чтобы смоделировать в ModelSim дизайн, использующий IP-ядра Xilinx. У меня не сработала стандартная схема с компиляцией исходников в Vivado и я решил попробовать скомпилировать всё самостоятельно. В итоге у меня всё получилось! Более того, я написал несколько Tcl-скриптов, которые помогают немного упростить этот процесс. Все, у кого возникла такая же потребность — прошу к прочтению.
Материалы для разработчиков систем на кристалле: функциональная верификация, итеративная сборка, свой ПЛИС-кластер

Привет, Хабр! Принесли материалы с недавнего митапа для FPGA/ASIC/RTL-инженеров — добавляйте в закладки, чтобы посмотреть в свободное время. В докладах вас ждут:
• Шаблоны документов, которые нужны при функциональной верификации, и шаблон проекта для организации итеративной сборки.
• Обзор плюсов и минусов существующих систем для автоматизации тестирования на FPGA-стендах.
• Способ оценки производительности коммерческого ПЛИС-кластера и собственного решения.
Обзор FPGA платы MCY112

Что-то давно на Хабре не было статей про FPGA и я решил немножко восполнить этот пробел. Расскажу про нашу новую плату на ПЛИС Cyclone I. Да-да, вы правильно прочитали. На плате стоит первый циклон компании Альтера. Микросхеме больше десяти лет, но еще поработает. Причины использования этого чипа думаю всем понятны: санкции и плюс недавно случившийся мировой кризис полупроводников, который еще не вполне закончился.
Цель разработки этой платы — создать по возможности недорогую FPGA плату для студентов из минимального числа доступных и имеющихся в наличии компонентов. Далее давайте рассмотрим плату подробнее.
FPGA Weekly News #005
Ребята из FPGA комунити каждый день делают небольшую подборку новостей из мира FPGA и делятся ею с читателями хаба FPGA. Внимание: возможны повторы!

Вклад авторов
YuriPanchul 3032.3megalloid 923.0KeisN13 709.5nckma 626.0hukenovs 429.0Armleo 421.3ishevchuk 419.0yadro_team 337.0iliasam 283.0BarsMonster 281.0