Наконец-то пришла пора продолжить изучение возможностей платы Zynq QMTech и SoC XC7Z020. Следующая интересная задача, которую я для себя придумал в качестве обучающей - оснастить плату Wi-Fi модулем Realtek RTL8822CS и, если Wi-Fi модуль будет не нужен, а нужна будет ещё одна флешка - вторым портом для SD-карточки. Если интересны подробности того, как я это всё реализовал - добро пожаловать под кат.
FPGA *
Программируемые логические интегральные схемы
Новости
Разглядывая JTAG: идентификация
Каждый электронщик, работающий (или отдыхающий) с цифровыми микросхемами рано или поздно обязательно сталкивается с протоколом JTAG. Значительное количество материалов о данном протоколе содержит три раздела:
1) Обширный экскурс в историю и рассказ о том, как стенд с летающими щупами и рентгеновская установка легко могут быть заменены отладчиком на 2-3 порядка дешевле их.
2) Достаточно сжатое описание протокола JTAG (с картинкой его конечного автомата).
3) Рассказ о том, что фирменный отладчик, а также программное обеспечение компании <COMPANY NAME> позволят почти без усилий протестировать почти любое устройство почти любой сложности и конфигурации.
Проблема второго раздела подобных материалов в том, что в протоколе JTAG можно выделить более одного уровня абстракции. И за один раз, причём без практических примеров, осознать JTAG целиком может быть весьма непросто. В отсутствие же целостного понимания, для инженера, использующего JTAG, данный протокол будет представлять чёрный ящик, который либо работает (и всё хорошо), либо не работает (и непонятно, что делать). Представляется, что, исключив из рассмотрения историю JTAG и рекламу бренда, а также разделив задачу на отдельные составляющие, возможно осознать JTAG полностью, обретя способность устранять проблемы в работе данного протокола на любом уровне. И первым шагом к такому пониманию будет чтение идентификационного номера микросхемы.
Как мы делали Warface для Денди
Суть в том, что в ноябре для их игры Warface выходило обновление, и Андрею пришла в голову идея разослать различным видеоблогерам картриджи для Денди, которые будут в качестве тизера демонстрировать несколько картинок из вселенной игры, а в конце показывать промокод.
Асинхронная обработка данных (асинхронные вычисления). Анализ поведения
Однако различие меду синхронными и асинхронными схемами носит более существенный характер. Синхронные схемы отличаются наличием временных интервалов, маскируемых тактовым сигналом. И эти временные интервалы включают все переходные процессы. То есть синхронные схемы не рассматривают переходные процессы и имеют дело только с результатами переходных процессов. Таким образом синхронная схема по сути представляет собой причинно-следственные отношения на множестве состояний. Асинхронные же схемы рассматривают как результат переходного процесса, так и сам процесс. Говорить в этом случае о состояниях можно лишь с большой долей условности. Переходный процесс и его результат описываются таким явлением, как событие (переключение сигнала). И асинхронная схема представляет собой те же причинно-следственные отношения только на множестве событий.
Алгоритм Томасуло как фактор импортозамещения российских процессоров
Проектированием простого процессора сейчас никого не удивишь. Любой способный студент может за пару недель написать на верилоге однотактный RISC-V или ARM процессор и синтезировать его для ПЛИС. Процессор будет работать на учебной плате и выполнять простые программы на Си и ассемблере.
Такой процессор можно постепенно усложнять: сделать его конвейерным, добавить кэш и прерывания. Но где находится граница между такими студенческими упражнениями - и взрослыми высокопроизводительными процессорными ядрами, которые стоят в сотовых телефонах и облачных серверах?
На границе между вводным и продвинутым курсом микроархитектуры CPU принято ставить внеочередное выполнение инструкций, именно оно отделяет мальчика от мужа. Эта фича впервые появилась еще в 1960-е годы в суперкомпьютерах CDC 6600 и IBM 360/91, но проникла в персоналки с PentiumPro только в 1996 году и в Apple iPhone в 2012 году.
Именно внеочередное выполнение инструкций - главная козырная карта самого горячего процессорного проекта российской микроэлектроники - двухгигагерцового RISC-V процессора для ноутбуков от компании Ядро / Syntacore. Этот проект был объявлен в прошлом году. Что с ним станет в результате известных событий?
Новости импортозамещения в пересечении тактового домена
Если вы собираетесь собеседоваться в Apple или Байкал на одну из позиций по проектированию или верификации систем на кристалле (System-on-Chip - SoC), вам совершенно абсолютно точно нужно подготовиться к вопросам по пересечению тактового домена (Clock Domain Crossing- CDC). В SoC типа айфона есть много разных блоков, которые работают на разной тактовой частоте. Чтобы передача данных между ними не глючила, нужно 1) знать почему она может глючить; 2) владеть приемами, которые позволяют избегать этих глюков и 3) четко понимать как используемые приемы влияют на пропускную способность соединения.
Подготовиться к этой секции интервью нужно основательно. Если вы только почитаете про метастабильность в Харрис & Харрис и начнете выкручиваться в стиле ответов Алисы Тепляковой "а, метастабильность ... даа, синхронайзеры ... ммм ... асинхронные FIFO ..." - то тройку на экзамене у жалостливого преподавателя нетопового университета стран бывшего СССР вы может и вытяните, но хорошую работу в коммерческой компании не выиграете.
Как же подготовиться? В Америке по такому вопросу готовят на шестичасом семинаре, который стоит $800 с каждого ученика в классе. Но в России группа энтузиастов подготовила бесплатный семинар, на основе как открытых статей автора американского семинара Клифа Каммингса, так и практикума из МИЭТ и собственных лабораторных занятий.
Темное искусство функциональной верификации цифровых микросхем
Сегодня, в субботу 26 февраля, на Сколковской Школе Синтеза Цифровых Схем Михаил Коробков проводит занятие по технологиям функциональной верификации: constrain solvers, cover bins и concurrent assertions. Примеры, которые мы подготовили для школы, вращаются вокруг протокола AXI для систем на кристалле, вопросы про который спрашивают например на интервью в хардверное отделение компании Meta и другие.
На предыдущих занятиях школы мы изучали в основном аспект проектирования на языке описания аппаратуры Verilog. Но как участники уже успели заметить, Verilog — это не только язык для описания и синтеза схем, но и язык программирования для написания тестов. В некоторых компаниях на каждого инженера, который пишет код на верилоге на уровне регистровых передач, приходится два или три инженера, которые пишут код для верификации.
Суть деятельности Verification Engineer заключается в создание фреймворков, которые тестируют хардверные дизайны на прочность, посылая к ним псевдослучайные транзакции и учитывая покрытие интересных сценариев (functional coverage). Базовые элементы этих технологий должен знать и хороший RTL Design Engineer.
Приглашаем присоединяться к трансляции занятия на канале школы в YouTube, в субботу 26 февраля с 12.00 до 15.00:
Стековые процессоры: способы повышения производительности и блоки, которые для этого используются. Библиография
Данная статья пишется с несколькими целями: изложить возможные методы повышения быстродействия стековых процессоров, собрать попутно небольшую библиографию, и закрепить на данный момент что мне известно в этой области. Статья или точнее пост, выйдет крайне сухим и лапидарным.
Статья очень обзорная, даже поверхностная и в ней я не буду углубляться в детали реализации, так как основной целью является сбор и публикация в одном месте тех сведений которые остаются малоизвестными широкой общественности, что бы можно было проводить работу вокруг уже стабильного текста. Малоизвестность их, связана и с недоступностью патентных баз, с тем что некоторые исследования либо недавние, либо только относительно недавно попали в открытый доступ и пылились в архивах.
Часть положений не имеет ссылок на литературу., в силу не полной разработанности темы. И еще потому, что это довольно общеизвестные факты, которые легко найти. А так же потому, что упор сделан на то что неизвестно широким массам общественности.
Широко распространено мнение, что стековые процессоры являются тупиковой ветвью развития, я считаю что это не так. Многие люди полагают, что в стековом процессоре нельзя реализовать те же решения, которые в регистровых процессорах являются основными причинами повышения производительности. Поэтому на сегодняшний момент, стековые, форт -процессоры, в основном используются во встраиваемых системах. Это обусловлено не только их принципиальной ограниченностью, но и основным полем деятельности их разработчиков. Я полагаю, что стековые процессоры могут быть не только процессорами реального времени, но и процессорами общего назначения, пригодными для десктопного и серверного использования.
Компрессия битового потока
Всем привет! Расскажу про нашу разработку, которая изменит подход к обработке данных в корне.
Мы разработали новый математический алгоритм обработки данных и программный продукт на его базе (кодек), позволяющий работать со сжатием битовых потоков любого формата (статические/динамические) – то есть, кодек позволяет проводить более глубокое сжатие уже существующих файлов (видео, изображения, архивы и т.д.), так и осуществлять сжатие исходных «сырых» данных.
Заложенная в алгоритме обработка представляет собой механизм квантования с применением многоцентричной развертки и алфавита изображения. Такой подход кардинально отличается от всех существующих на сегодня вариантов сжатия данных, базирующихся на принципе энтропийного сжатия.
Сжатие данных без потерь с дополнительной компрессией до 50% (не предел), является важным преимуществом и обеспечивает потенциальную возможность интеграции продукта практически в любые существующие программные решения. Также разработан алгоритм управления качеством визуализации изображения в зависимости от степени сжатия и конкретных приложений.
FPGA Weekly News #004
Ребята из FPGA комунити каждый день делают небольшую подборку новостей из мира FPGA и решили поделиться ею с читателями хаба FPGA. Внимание: возможны повторы!
Что такое гигагерц и при чем тут Илон Маск?
Проанализируем объявление о приеме на работу в Теслу на позицию джуниор-проектировщика процессора для AI автопилота автомобиля (скриншот ниже). Как мы видим, от соискателя требуется понимание микроархитектуры процессора, проектирование на уровне регистровых передач используя язык описания аппаратуры Verilog, а также понимание, как проектирование логики влияет на временные задержки. Иными словами, соискатель должен понимать, как связаны его строки на верилоге с гигагерцами синтезируемого из них процессора. А понимаете ли это вы?
Собираем компилятор для ПЛИС Lattice ECP5 в лице Yosys и NextPNR для работы в ОС Windows
Наш цикл про ПЛИС Lattice ECP5 растянулся уже на шесть статей. Мы уже научились не только создавать простые проекты для них, но набили руку в разработке сложных систем на базе кроссплатформенной открытой среды LiteX. В целом, я уже набрал материалов, чтобы выдать инструкцию, как подключится к шине Wishbone в роли активного устройства (Master), но перед публикацией хочется провести ряд проверок, чтобы не наболтать не того.
С другой стороны, ещё в первой статье цикла я обещал, как будет формализована методика сборки синтезатора Yosys и разводчика NextPNR под Windows, рассказать, как это сделать, так как на тот момент у меня процесс сборки прошёл в режиме «неделю промучился, как-то сделал, повторить не смогу». Мой коллега систематизировал все те наброски, и теперь я могу поделиться итогами с общественностью. Так что, кто дружит с Linux, сегодня вряд ли узнает что-то интересное, а вот любители Windows – получат сведения, как начать работать с ПЛИС Lattice в этой ОС. Приступаем.
Что видит на своем экране проектировщик айфона в Купертино, Калифорния
Каждый год мы видим очереди фанатов, которым не терпится первыми прикоснуться к только что выпущенному новому айфону. А хотите узнать, как выглядит смартфон за два года до начала его продаж в магазине? Он в это время уже существует, как набор файлов в компьютерах проектировщиков его системы на кристалле.
Что же видит проектировщик Apple на своем экране? Завесу над этой тайной поможет над приоткрыть знаменитый в узких кругах блоггер Джон Кули (John Cooley), который начал свой вебсайт deepchip.com еще в 1990-е годы. Джон собирает всякие слухи, сливы и мнения тысяч инженеров больших электронных компаний, стартапов и контракторов, которые потом все это с большим интересом читают.
Когда-то в 2015 году, Джон опубликовал заметку "За закрытыми дверями", на основе анонимных емейлов от 36 инженеров. Аккурат в это время Apple переходил на собственные версии CPU и GPU (до этого Apple использовал готовые ядра от ARM и Imagination Technologies). Заметка выглядела так:
“FPGA наизнанку” — мультфильм про вычисление CRC и parallel CRC
Друзья пришла в голову идея создать несколько обучающих мультфильмов про FPGA в которых было бы показано не только мигание светодиодов на плате во время манипуляций над ней, а так же визуализация логики схемы в реальном времени.
Для первого видео в качестве экспериментальной схемы выбран вычислитель CRC (cycle redundancy check) на основе сдвигового регистра с обратной связью.
Каким экспериментам подвергается схема в процессе демонстрации проще показать чем «пером описать» - поэтому давайте посмотрим видео:
FPGA Weekly News #003
Ребята из FPGA комунити каждый день делают небольшую подборку новостей из мира FPGA и решили поделиться ею с читателями хаба FPGA. Внимание: возможны повторы!
FPGA: конечные автоматы с переключаемым контекстом
В статье речь пойдёт о ПЛИС производства Xilinx, в частности Spartan-3 и Spartan-6, на которых эта идея была опробована. Применять её можно и в других семействах.
Очень кратко суть идеи: триггер (FF, flip-flop), который может менять своё состояние по фронту тактового сигнала, можно заменить на синхронное ОЗУ (distributed RAM), которое тоже может менять состояние одной своей ячейки по фронту тактового сигнала.
HALF: целостное автоматическое машинное обучение для ПЛИС
Глубокие нейронные сети (DNN) способны решать сложные задачи в областях, связанных со встроенными системами, таких как обработка изображений и естественного языка. Чтобы эффективно реализовать DNN на конкретной платформе ПЛИС для заданного критерия стоимости, например, энергоэффективности, необходимо учитывать огромное количество параметров проектирования, начиная с топологии и заканчивая конечной аппаратной реализацией. Необходимо учитывать и эффективно исследовать взаимозависимости между различными уровнями проектирования, что делает поиск оптимизированных решений вручную едва ли возможным.
Автоматический, целостный подход к проектированию может значительно улучшить качество реализации DNN на ПЛИС. С этой целью мы представляем метод исследования межслойного пространства проектирования.
PCIExpress 1.0 2.5GT/s analyzer на базе ПЛИС своими руками
На работе я занимаюсь созданием PCIExpress устройств на ПЛИС. Некоторые из ПЛИС имеют встроенное PCIExpress ядро, позволяющее работать с этим интерфейсом на уровне пользовательского приложения. ПЛИС серии ECP5UM фирмы Lattice использует Soft-IP Core для реализации протокола, написанный на языке HDL, а в микросхему лишь встроен блок, отвечающий за работу физического уровня. Мне пришла в голову идея попробовать сделать PCIExpress анализатор на базе этой микросхемы.
Цены на профессиональные анализаторы не доступны простому разработчику, да и зачастую неподъёмны даже для небольших фирм. Хотя для целей диагностики и обучения возможно создание бюджетного прибора, который хоть и будет уступать профессиональному устройству, но при этом будет выполнять основные функции анализатора, удовлетворяющие большинству потребностией в вопросах отладки протокола.
В данной статье я предлагаю описание первого устройства, созданного для проверки концепции. В ней содержится краткое описание архитектуры PCIExpress, общая идея проекта, результаты реализации и тестирования первого прототипа.
Подключаем Slave-устройства с шиной Wishbone к системе на базе LiteX
В предыдущих трёх статьях мы построили ПЛИС систему на базе LiteX, рабочие блоки для которой могут быть написаны не на странном языке, базирующимся на Питоне, а на чистом Верилоге. А благодаря LiteX, база для системы была создана для нас автоматически. Такой подход позволяет резко упростить и ускорить процесс разработки систем.
Пока что наши собственные модули были подключены к системе через регистры команд и состояний (CSR). Часто этого более, чем достаточно, но иногда всё-таки разрабатываемые блоки должны содержать в себе сложные наборы регистров, а может даже и память. И без прямого подключения к системной шине не обойтись.
Сегодня мы подключим пару собственных Slave-устройств к системной шине Wishbone, которая будет создана средой LiteX. Устройства, разумеется, будут описаны на Верилоге. Приступаем!
FPGA Weekly News #002
Ребята из FPGA комунити каждый день делают небольшую подборку новостей из мира FPGA и решили поделиться ею с читателями хаба FPGA. На этой неделе ~90 ссылок. Внимание: возможны повторы!
Вклад авторов
-
YuriPanchul 1328.8 -
hukenovs 429.0 -
Armleo 421.3 -
ishevchuk 419.0 -
nckma 398.0 -
KeisN13 303.5 -
BarsMonster 281.0 -
EasyLy 268.0 -
ClusterM 241.0 -
dsmv2014 213.0