Обновить
26.97

FPGA *

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

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

Chisel, первый взгляд RTL-разработчика

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров943

Недавно возникла потребность в быстром погружении в язык разработки Chisel. Для пробы будет разработан простой блок, который будет принимать данные по интерфейсу AXI-Stream, проверять в них контрольную сумму и передавать данные в выходной интерфейс AXI-Stream в случае совпадения контрольной суммы. Реализация блока на SystemVerilog, Chisel, тестовое окружение для проверки - под катом.

Читать далее

От Шёлкового Пути — to the Road to Silicon: в Средней Азии есть RTL-дизайнеры

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

Оказывается, в Кыргызстане, который в 11 веке стоял аккурат посередине Великого шёлкового пути, спустя тысячу лет появились проектировщики цифровых схем на уровне регистровых передач. Во время семинара «Модели бизнеса и основы технологий микроэлектроники для Центральной Азии» мы встретились с инженерами Азаматом Бексадаевым и Бахтияром Кукановым, которые принимали участие в разработке двух блоков на верилоге для международного проекта Parallella. Этот проект был инициирован американской компанией Adapteva, которая сейчас превратилась в Zero ASIC.

Основой технологии Adapteva была решетка из большого количества процессорных ядер внутри одной микросхемы. Ядра имели собственную архитектуру под названием Epiphany и были оптимизированы под энергоэффективные вычисления с плавающей точкой. По микроархитектуре каждое ядро было суперскаляром с внеочередными выполнением инструкций (out-of-order – OoO).

Читать далее

FPGA Weekly News #001

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

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

Читать далее

Синтезируем SystemVerilog код в OpenSource среде Yosys/NextPNR

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

В предыдущей статье я поделился опытом работы с ПЛИС фирмы 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?

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

Вступление

Сжатие видео с камеры является важной задачей как при трансляции данных через сеть Интернет, так и при передаче данных через радиоканал. Это позволяет в разы сократить объем передаваемой информации при небольшой потере детализации в исходном видео. Сейчас самым популярным алгоритмом для сжатия видео является кодек h264. Хотя уже существует следующая реализация кодека – h265, но он имеет большую вычислительную сложность алгоритма и пока не нашел столь широкого применения, и его реализацию можно оставить на потом :)

Модельно-ориентированное проектирование - это что?

При разработке алгоритма для ПЛИС можно выделить два основных подхода: написать алгоритм сразу на языке описание аппаратуры VHDL/Verilog/SystemC или использовать более высокоуровневые средства проектирования. Во втором случае вначале строится эталонная модель алгоритма в MATLAB/Simulink, тестируется, верифицируется и постепенно подготавливается к автоматической генерации HDL кода из алгоритма. Конечно, мы выбрали второй вариант, т. е. наш план – на основе MATLAB кода сделать эталонную модель алгоритма Simulink, а после – адаптировать ее к автоматической генерации кода и получить HDL для ПЛИС.

Читать далее

Intel eASIC N5X — «структурированный ASIC» для 5G и AI

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


В 2018 году Intel приобрела eASIC — разработчика «структурных ASIC», интересных и перспективных устройств, представляющих собой нечто среднее между классическим ASIC и FPGA. Далее в течение нескольких лет компания использовала ранее сделанные наработки, и вот мы фиксируем знаковое событие: анонсирована новая линейка eASIC N5X, которая совместима с FPGA компании, то есть имеет полное право называться Intel eASIC N5X, продуктом следующего поколения с улучшенной архитектурой и 16-нм техпроцессом.
Давайте посмотрим на характеристики этой линейки, а заодно вспомним, что представляет из себя «структурированный ASIC».
Читать дальше →

Встраивание Haskell: компиляторы и компиляция компиляторов

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

Эта статья является переводом поста Chris Hodapp Embedding Haskell: Compilers, and compiling compilers В своём посте автор рассматривает различные подходы к использованию Haskell для написания кода для встраиваемых систем. Предоставим слово автору.


В моем последнем посте упоминалось, что некоторые вещи требуют лучшего объяснения, потому что я всегда пытаюсь объяснить и уточнить.


Этот блог посвящен использованию Haskell со встраиваемыми системами. Что это хотя бы значит? Мы видим пару широких категорий (которые отражают слайды на последней странице, а также наша страница ссылок):


  • Полная компиляция: компиляция кода на Haskell для встраиваемого назначения.
  • Ограниченная компиляция: компиляция некоторого ограниченного подмножества кода на Haskell для встраиваемого назначения.
  • Хостинг EDSL и компилятора: хостинг в Haskell, EDSL и компилятор для встраиваемого назначения.
Читать дальше →

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

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

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

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

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

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

Введение


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

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

Асинхронные (самосинхронные) схемы. Вычисление логических функций непосредственно по графу событий. Часть 2

Время на прочтение6 мин
Количество просмотров3.2K
Напомню, в первой части речь шла о вычислении простых импликант (конъюнкций) для циклических поведений без параллелизма, выбора и кратных сигналов по трем точкам (состояниям).



Задача состояла в том, чтобы импликанта покрыла точку 2 (то есть была равна 1 на этом состоянии) и не выходила за пределы обозначенные точками 1 и 3… При этом положение левой границы импликанты (левее точки 2) безразлично. Правая граница (правее точки 2) должна быть максимально сдвинута вправо. Невозможность вычисления импликанты означает наличие CSC конфликта. То есть существует непрерывная последовательность событий (но не все поведение целиком), в которой каждый сигнал переключается четное число раз.

Приступим теперь к вычислению минимальной логической функции (ДНФ) для сигнала x.



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

Текущая активность вокруг MIPSfpga и не только

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

КДПВ


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


  • релиз MIPSfpga 2.0;
  • процессор schoolMIPS и Летняя школа юных программистов в Новосибирске;
  • школа-семинар по цифровому дизайну и компьютерной архитектуре в Томске;
  • запуск ванильного ядра Linux на MIPSfpga-plus;
  • поддержка АЦП Altera MAX10 в MIPSfpga-plus;
  • логотип MIPSfpga-plus.

Если тематика MIPSfpga-plus вам не безразлична, то в конце есть небольшой опрос на тему чего мне писать (или не писать) следующую статью. Ваш выбор поможет мне сориентироваться и расставить приоритеты. Welcome!

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

Отладочная плата ПЛИС — Франкенштейн. Контроллер елочных гирлянд

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

Очередная серия про ПЛИС и отладочную плату Френки. Предыдущие серии 1, 2, 3.


Сделать контроллер елочных гирлянд не просто, а очень просто! Hello World на ПЛИС — это помигать светодиодом. А "С новым годом" на ПЛИС — это помигать несколькими светодиодами. Принцип прост, как и в предыдущих статьях: создаем счетчик, который делит частоту тактового генератора, выбираем биты из слова счетчика, для получения нужной скорости. Несколько бит из этого слова дадут нам определенный шаг отображения (в зависимости от количества выбранных бит 1, 2, 4, 8 и т.д. шагов). В зависимости от номера шага задаем значения для N светодиодов.


Для управления реальной гирляндой, можно взять какой-нибудь shield с электромагнитным реле. У меня оказался вот такой, на 8 реле. Схема подключения. Принципиальная схема.


Дальше

UltraCMOS Фирмы «Peregrine Semiconductor»: СВЧ возможности КМОП-технологии

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


Полагаю, что у большинства аббревиатура КМОП (CMOS) ассоциируется с микросхемами логики и полевыми транзисторами. Для производства СВЧ компонентов в основном используются элементы из групп ///-/V Таблицы Менделеева: GaAs, InP, SiGe. Развивая технологию КНС – Кремний На Сапфире (Si & Al2O3) более 25 лет, компания «Peregrine Semiconductor» создала технологию UltraCMOS 11, которая по показателю Ron*Coff обладает лучшими параметрами, чем доминирующая на рынке десятилетиями технология GaAs.

Толчком к развитию технологии КНС послужила ее повышенная радиационная стойкость, которая необходима для космических (Space) и высоконадежных (Hi-Rel) применений. Так, например, полностью отсутствует «тиристорный эффект» (SEL). Отсутствует и повышенная чувствительность к низким дозам радиации (ELDRS). В настоящий момент такая продукция поставляется через подразделение компании E2V. Фирма «Peregrine Semiconductor» поставляет гражданскую продукцию — в данный момент до 40 ГГц – и продолжает повышать планку!
Читать дальше →

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

Немного о проектировании самосинхронных схем

Время на прочтение4 мин
Количество просмотров10K
На форумах по электронике периодически вспоминают о самосинхронных схемах, но очень мало кто понимает, что это вообще такое, какие полезные свойства есть у самосинхронных схем, и какими недостатками они обладают. Краткий текст ниже позволит читателю ознакомиться с азами синтеза простейших самосинхронных схем, и самому попробовать их проектировать.
Читать дальше →

Задачки на Verilog — новый раздел на сайте

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

Программируемая Логика - увлекательный и своеобразный мир - к сожалению среди большинства из нас, знатоков Python, JS, Go, Java, C++ да и среди любителей Arduino и прочих микроконтроллеров она не так широко "распростирает свои руки".

Давно хотелось среди задачек и головоломок на "обычное" программирование внедрить на сайте и горстку упражнений из этой таинственной области. Мешало банальное отсутствие собственного опыта в ней (за исключением нескольких занятий по AHDL в далёкие вузовские годы).

Мотивация (или везение?) пришло с очередной новой работой - хотя она не связана с PLD/FPGA, но в моей текущей компании эти направления значительно развиты, есть и знатоки - которые подсказали кое-что по инструментам, по выбору языка - а заодно показали и репозиторий с "домашками" от их собственного курса... Я засучил рукава, добавил компилятор в "песочницу" и вот уже первые несколько заданий ждут энтузиастов :) Также ждём знатоков которые захотят помочь с идеями новых задач и верификацией существующих. Итак, переходим к подробностям...

Итак, к подробностям!

Митап FPGA-Systems: RnD-цикл современных SoC, физическая имплементация для FPGA и ASIC, обзор систем прототипирования

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

26 октября в 11:00 стартует первая осенняя встреча сообщества FPGA-Systems, организованная совместно с YADRO. Инженеры поделятся опытом и расскажут про разработку ASIC, физический дизайн, новый чип AG32 от AG micro и многое другое. Митап интересен не только программой, но и открытой демозоной с наработками инженеров — приходите лично, чтобы посмотреть на FPGA во плоти.

Регистрируйтесь, чтобы попасть на митап в Питере или получить ссылку на трансляцию в VK, YouTube или Rutube, где можно будет задать вопросы спикерам.

Изучить программу

Моделирование IP-ядер Xilinx в ModelSim

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.5K

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

Читать далее

Материалы для разработчиков систем на кристалле: функциональная верификация, итеративная сборка, свой ПЛИС-кластер

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

Привет, Хабр! Принесли материалы с недавнего митапа для FPGA/ASIC/RTL-инженеров — добавляйте в закладки, чтобы посмотреть в свободное время. В докладах вас ждут:

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

Обзор плюсов и минусов существующих систем для автоматизации тестирования на FPGA-стендах.

Способ оценки производительности коммерческого ПЛИС-кластера и собственного решения.

Читать далее

Обзор FPGA платы MCY112

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


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

Цель разработки этой платы — создать по возможности недорогую FPGA плату для студентов из минимального числа доступных и имеющихся в наличии компонентов. Далее давайте рассмотрим плату подробнее.
Читать дальше →

FPGA Weekly News #005

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

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




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