Обновить
26.17

FPGA *

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

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

Отрабатываем протокол valid/ready и конвейеры на микроархитектурном тренажере

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

Чем хорош FPGA-хаб на Хабре это еще и тем что тема протокола valid/ready время от времени тут всплывает. И это действительно важно так как valid/ready является одним из основных протоколов организации управления потоком (flow-control). Понимание valid/ready для микроархитектора так же необходимо как необходимо понимание закона Ома электрику.

На прошлом занятии мы отработали концепцию очереди FIFO на микроархитектурном тренажере - hdlgadgets. В этот раз мы возьмем два FIFO буфера (которые образуют конвейер с valid/ready рукопожатиями) и будем менять flow-control логику конвейера.

Мы покажем что valid/ready это не только механизм передачи данных от одной очереди к другой, но еще и метод для организации разного рода логического функционала между очередями.

Если до этого момента вы не сталкивались с протоколом valid/ready, то будете приятно удивлены как легким движением руки (а если точнее, написанием пары строк на верилоге) мы можем реализовывать разного рода функционал взяв за основу конвейер из двух FIFO.

Читать статью целиком и смотреть видео

Отчет с GPT Party, или что Далай-Лама сказал Давиду Яну

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

В эти выходные в Silicon Valley прошла парти на 400 человек под названием GPT-Party, из которых все 400 человек говорили по-русски (когда ведущий спросил кто не говорит, никто не поднял руку).

На парти выступали основатели ИИ компаний, русские венчурные капиталисты (Давыдов, Шойфот, Орешкин), украинские венчурные капиталисты (Сорока) , а также креаторы контента (Алекс Кролл). Креаторы говорили, что из-за ChatGPT всех инженеров выгонят с работы и останутся только бармены и креаторы контента.

Под конец самый богатый человек на парти, основатель ABBYY Давид Ян - посягнул на проблему сознания. В качестве показателя прогресса ИИ в этой области Давид приводил решение компьютером задачек, в которых нужно ставить себя на место других людей. Типа (это не задачка Яна, а мой аналог приведенных им задачек):

Читать далее

Автоматическая сборка схемы в Simulink

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

Схема на картинке содержит в себе повторяющиеся части. Если их количество постоянно меняется в ходе разработки, то было бы неплохо, если бы всё это собиралось автоматически, правда? Как это реализовать, читайте в данной статье.

Читать далее

Проектировщик процессоров Zilog расскажет про Z80 в космосе и про свое новое RISC-V ядро

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

Что общего между популярным у хоббистов компьютером Синклер ZX Spectrum и космической станцией Juno, которая сейчас вращается вокруг Юпитера? И на одном, и на другом стоит процессор с архитектурой Zilog. На Синклере просто Z80, а на Juno - радиационно стойкий Y180-S. Y180-S спроектировал Монте Далримпл (Monte J. Dalrymple), выпускник Беркли, который проработал 16 лет в Zilog, после чего сделал собственный бизнес, компанию под названием Systemide.

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

Вы можете послушать Монте в эту субботу

RAM with Simple direct-mapped cache simulation on FPGA in Verilog

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

Simple direct-mapped cache simulation on FPGA




This article is a part of a course work for first year bachelor students of Innopolis University. All work is done in a team. The purpose of this article is to show an understanding of the topic, or to help to understand it using simulation.




Git repository link




Principle of work but from the user side should look like:


  • To write any data in memory, you need to access the RAM with data and address in which we want to write.
  • To access the data, we have to adress to cache. If the cache cannot find the necessary data, then it accesses the RAM by copying data from there.

When working with Verilog, it should be understood that each individual block of the program is represented as a module. As you know, the cache is not an independent part of fast memory, and for its proper operation it needs to take data from another memory block — RAM. Therefore, in order to simulate the work of the cache at the FPGA, we have to simulate whole RAM module which includes cache as well, but the main point is cache simulation.


The implementation consists of such modules:


  • ram.v — RAM memory module
  • cache.v — Cache memory module
  • cache_and_ram.v — module that operates with data and memory.
  • testbench.v and testbench2.v — module to show that main modules work perfectly.
Читать дальше →

Знакомство с AI, собеседование и основы DSP

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

Пару месяцев назад я проходил собеседование, где требовался некоторый опыт в DSP, и на вопрос, является ли CIC фильтр БИХ или КИХ, я ответил, что КИХ, на что мне ответили, что раз там в структуре рекурсия, то он именно БИХ. Я несколько удивился, но понял ход рассуждений собеседующего и в принципе согласился с таким подходом. Мой давний опыт с CIC фильтрами касался программирования DDC GrayChip и Analog Devices и моделирования трактов SDR на С и в Octave, при этом в качестве имплементации CIC для моделей я использовал всем хорошо известную функцию скользящего прямоугольного окна.

Читая Хабр и отмечая постоянный рост сообщений об успехах AI - и микросхемы он разрабатывает, и программы пишет, и даже угрожает Stack Overflow, решил, что пора познакомиться c этой технологией в каким-нибудь проявлении.

Установив в Chrome Merlin, спросил его как сделать эхолот для рыбалки, какие датчики можно для него купить, какой многоканальный быстродействующий АЦП можно купить на Али для RaspberyPI и как посчитать ширину диаграммы направленности антенной решётки из 8 элементов. В целом я не узнал ничего нового, кроме предупреждения, что с АЦП могут быть проблемы подключения по SPI по быстродействию, зато этот бот одобрил применение режима DMA для ввода данных. Ну и программу для расчёта ДН на С мне показали достаточно правдоподобную. Ссылок на товары на Али я не получил, но получил набор фраз для поиска. В общем, несмотря на периодические упоминания сложности обсуждаемых вопросов и потенциальной нехватки квалификации у вопрошающего, общение было если и не очень плодотворным, но вполне профессиональным и дружелюбным.

Читать далее

Симуляция высокоскоростных приёмопередатчиков с динамической реконфигурацией для ПЛИС Intel серии V

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

Этой статьей мы продолжает серию статей, цель которых поделиться опытом создания проектов в среде симуляции для тестирования динамической реконфигурации высокоскоростных интерфейсов (приёмопередатчиков) различных поколений ПЛИС фирмы Intel/Altera. В предыдущей статье мы описали IV поколение, теперь очередь "обуздать" V поколение.

Читать далее

Как использовать ПЛИС в полунатурных стендах и стендовых испытаниях без единой строчки кода

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

Добрый день! В этой статье я расскажу, как наши заказчики используют ПЛИС в полунатурных стендах и стендовых испытаниях.

В центре инженерных технологий и моделирования «Экспонента» уже много лет мы занимаемся продвижением модельно-ориентированного проектирования в России. Поэтому наш опыт сконцентрирован вокруг инструментов модельно-ориентированного проектирования — то есть различных сред моделирования и симуляции — и применения их в инженерных разработках.

Эта статья написана совместно с нашими хорошими партнерами — компанией «РИТМ». Компания занимается разработкой полунатурных стендов и комплексов полунатурного моделирования «РИТМ» (КПМ «РИТМ»), которые используются нашими заказчиками.

КПМ «РИТМ» представляет собой программно-аппаратное решение для тестирования в реальном времени. Спектр его применений широкий: от быстрого прототипирования алгоритмов управления до полунатурного моделирования объекта управления (Hardware-in-the-Loop или HIL тестирование). РИТМ применяется нашими заказчиками в различных инженерных областях: от авиастроения и ВПК до автомобилестроения и электроэнергетики.

КПМ «РИТМ» поставляется настроенным «под ключ» под задачи проекта или стенда, и оснащен всеми необходимыми модулями ввода-вывода (аналоговыми, цифровыми, специализированными интерфейсами и протоколами). Пользователи могут быстро и бесшовно запускать свои модели в реальном времени (содержащие алгоритмы или модели объекта управления) и подключать их к реальным устройствам (например, блоку управления или исполнительным механизмам) через модули ввода-вывода.

Наши заказчики успешно используют этот подход уже многие годы, но в некоторых узких задачах сталкиваются со следующими проблемами:

•‎ Необходимо существенно сократить шаг расчета алгоритма;

•‎ Не хватает вычислительных ресурсов для решения задачи в реальном времени на процессоре;

•‎ Требуется подключить к алгоритму высокоскоростные цифровые, аналоговые или другие интерфейсы;

•‎ Требуется поддержать заказные интерфейсы или протоколы обмена.

Если вы тоже сталкиваетесь с такими проблемами, то добро пожаловать под кат — даже если вы раньше никогда не слышали о модельно-ориентированном проектировании или ПЛИС.

Читать далее

AMD проводит суперкомпьютерный день в Казахстане. Можно подсоединиться по Зуму

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

AMD проводит суперкомпьютерный день в Назарбаевском Университете в Астане, в Казахстане. 29 сентября. Можно подсоединиться по Зуму. Зарегистрироваться можно до 27 сентября по ссылке

Вообще приезжающие в Астану замечали, что в городе есть амальгамация духа советских городов с духом американского Лас-Вегаса, в частности в элементах архитектуры.

Теперь можно добавить и другое сходство: в Лас-Вегасе помимо казино есть университет, в котором еще в допотопные времена стояли суперкомпьютеры и велись конкурсы на качество распознавания образов. Также там сейчас преподает Сара Харрис, соавтор известного учебника. Кроме этого в Лас-Вегасе иногда проводится конференция DAC по автоматизации проектирования электроники. Почему бы не превратить Астану в евразийский центр такого рода?

Расписание докладов суперкомпьютерного дня

Стековые процессоры: способы повышения производительности и блоки, которые для этого используются. Библиография

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

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

Часть положений не имеет ссылок на литературу., в силу не полной разработанности темы. И еще потому, что это довольно общеизвестные факты, которые легко найти. А так же потому, что упор сделан на то что неизвестно широким массам общественности.

Широко распространено мнение, что стековые процессоры являются тупиковой ветвью развития, я считаю что это не так. Многие люди полагают, что в стековом процессоре нельзя реализовать те же решения, которые в регистровых процессорах являются основными причинами повышения производительности. Поэтому на сегодняшний момент, стековые, форт -процессоры, в основном используются во встраиваемых системах. Это обусловлено не только их принципиальной ограниченностью, но и основным полем деятельности их разработчиков. Я полагаю, что стековые процессоры могут быть не только процессорами реального времени, но и процессорами общего назначения, пригодными для десктопного и серверного использования.

Статья очень обзорная, даже поверхностная и в ней я не буду углубляться в детали реализации, так как основной целью является сбор и публикация в одном месте тех сведений которые остаются малоизвестными широкой общественности, что бы можно было проводить работу вокруг уже стабильного текста. Малоизвестность их, связана и с недоступностью патентных баз, с тем что некоторые исследования либо недавние, либо только относительно недавно попали в открытый доступ и пылились в архивах.

Читать далее

HALF: целостное автоматическое машинное обучение для ПЛИС

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

Глубокие нейронные сети (DNN) способны решать сложные задачи в областях, связанных со встроенными системами, таких как обработка изображений и естественного языка. Чтобы эффективно реализовать DNN на конкретной платформе ПЛИС для заданного критерия стоимости, например, энергоэффективности, необходимо учитывать огромное количество параметров проектирования, начиная с топологии и заканчивая конечной аппаратной реализацией. Необходимо учитывать и эффективно исследовать взаимозависимости между различными уровнями проектирования, что делает поиск оптимизированных решений вручную едва ли возможным.

Автоматический, целостный подход к проектированию может значительно улучшить качество реализации DNN на ПЛИС. С этой целью мы представляем метод исследования межслойного пространства проектирования.

Читать далее

Самосинхронные схемы. Вычисление логических функций непосредственно по графу событий. Часть 3. Декомпозиция

Время на прочтение7 мин
Количество просмотров2.1K
Напомню важный вывод из предыдущих частей. Для циклического последовательного поведения, не содержащего кратных сигналов (переключающихся за цикл более двух раз), минимальная логическая функция каждого сигнала может быть представлена в следующем виде (естественно при отсутствии CSC конфликтов):

1)

$x=a*b*...*c+x*f+g+h+...+i,$



где a*b*...*c — это импликанта, состоящая из одной или более переменных. g+h+...+i — это возможно пустое множество импликант, состоящих из одной переменной. x*f — это импликанта из 2 переменных, наличие которой в минимальной форме не обязательно. Все переменные, кроме x, могут входить в формулу как в прямом, так и в инверсном виде, в зависимости от расстановки знаков соответствующих событий. Все переменные входят в формулу в качестве аргументов строго по одному разу.

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

а) одну или более импликант,
б) несколько сигналов (переменных) одной импликанты,
в) один входной инвертор.
Читать дальше →

Асинхронный дешифратор

Время на прочтение3 мин
Количество просмотров6.4K
Как и обещал в предыдущей статье, речь в этой статье пойдет о представлении в асинхронном виде операций над адресами. В качестве примера опишу операцию дешифрации адреса. Сразу же хочу предупредить инсинуации, с которыми столкнулся после опубликования предыдущей статьи. Речь пойдет о целиком и полностью асинхронном устройстве. И прошу, не надо ссылаться на реферат узбекского университета. Якобы асинхронный дешифратор можно получить из синхронного с помощью нехитрых манипуляций. Заодно вопрос тем, кто утверждает, что асинхронный процессор произведен 20 лет назад. Как это удалось без асинхронного дешифратора?

Итак, об асинхронном дешифраторе. После размышлений я пришел к выводу, что единственный вменяемый путь синтеза асинхронного дешифратора это поэтапное удвоение разрядности адреса с помощью схемы надстройки над двумя дешифраторами вдвое меньшей разрядности. Доказать что альтернативного пути нет я не берусь. Но могу утверждать что альтернативный путь (если он есть) куда более затратен по количеству добавляемых новых сигналов.

Ввиду изложенного, речь в этой статье пойдет о двухразрядном дешифраторе. Как удвоить разрядность асинхронного дешифратора, тема следующей статьи.

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

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

Чем отличается изобретатель вечного двигателя от просто изобретателя?

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

Если десятью словами: неумением ставить корректные эксперименты и экстремально гипертрофированным ощущением собственной важности. Я не буду описывать конкретный случай, с которым я столкнулся, а опишу выдуманный случай с такими же чертами.

Предположим к вам обратился товарищ, который хочет чтобы вы дали ему контакты принимающих решения менеджеров и топ-алгоритмистов в условном Микрософте. Зачем? После обмена репликами, где он сначала сопротивляется, выясняется что он изобрел новый алгоритм сортировки. В качестве доказательства он показывает программу на питоне, которая, по его словам, сортирует 10 чисел быстрее чем сортировка по умолчанию на питоне.

Читать далее

Асинхронная обработка данных (асинхронные вычисления). Анализ поведения

Время на прочтение43 мин
Количество просмотров6.1K
На первый взгляд кажется, что в асинхронном дизайне обработки данных изобрести что-либо новое маловероятно. Действительно, все возможные приемы и компоненты синтеза уже давно известны: и кодирование, и многофазность, и индикация, и хэндшейк, и С-элементы, и пороговые элементы… Но, в отношении практически любого метода асинхронной обработки данных можно достаточно уверенно утверждать: все они заведомо избыточны. Причина такого положения видится в несколько поверхностном понимании различий между асинхронными и синхронными схемами. Принято считать, что асинхронной является такая схема, в которой отсутствует тактовый сигнал. Отсюда вытекает и решение: достаточно взять за основу архитектуру синхронного дизайна (комбинационную логику, регистры), а тактовый сигнал заменить какой-то управляющей схемой. Таким подходом в той или иной мере грешит практически любой метод. Блочный синтез — идея более оригинальная, но от этого не менее избыточная.

Однако различие меду синхронными и асинхронными схемами носит более существенный характер. Синхронные схемы отличаются наличием временных интервалов, маскируемых тактовым сигналом. И эти временные интервалы включают все переходные процессы. То есть синхронные схемы не рассматривают переходные процессы и имеют дело только с результатами переходных процессов. Таким образом синхронная схема по сути представляет собой причинно-следственные отношения на множестве состояний. Асинхронные же схемы рассматривают как результат переходного процесса, так и сам процесс. Говорить в этом случае о состояниях можно лишь с большой долей условности. Переходный процесс и его результат описываются таким явлением, как событие (переключение сигнала). И асинхронная схема представляет собой те же причинно-следственные отношения только на множестве событий.
Читать дальше →

Очередной подход к RS-триггеру, теперь с TLA+

Время на прочтение4 мин
Количество просмотров2.9K
Я уже моделировал RS-триггер как полностью синхронную схему. Но в некоторых приложениях таких моделей не достаточно, требуется рассмотреть переходные процессы, которые могут возникнуть. TLA+ разработан для анализа параллельных асинхронных систем. Поупражнявшись в решении головоломок с его помощью, можно начать применять этот инструмент и для более серьезных задач.
Читать дальше →

Часть 4. Модель вычисления логических функций по графу для асинхронных параллельных процессов

Время на прочтение8 мин
Количество просмотров2.2K
Перейдем к вычислению логических функций по графу для более широкого класса поведений. Будем рассматривать циклические автономные поведения, не содержащие кратных сигналов (или по другому: не содержащие индексированных событий). Еще одно ограничение: для удобства не будем рассматривать соединение параллельных ветвей по ИЛИ. Рассматриваем только соединение по И, то есть событие инициируется только тогда, когда сработают все его события-предшественники.

Для описания поведения будем использовать STG, но с дополнительными ограничениями. Для каждого плэйса количество входящих в него и выходящих из него дуг равно строго по одной. Соответственно, плэйс с входящей и выходящей дугами можно рассматривать как одну дугу, соединяющую два события (перехода). Соответственно маркировка перемещается по дугам. Так как поведения с кратными сигналами сейчас не рассматриваются, индексы при событиях запрещены, они не нужны. Пустые события запрещены. Также запрещена ситуация, когда две дуги, входящие в одно событие, выходят из событий, которые не параллельны друг другу (частный случай — из одного и того же события). Цель этого — избавиться от дуг, не несущих смысловой нагрузки. В остальном рассматривается корректное (нормальное, живое, безопасное) с точки зрения STG поведение с учетом вышеизложенных ограничений. Поведение не содержит CSC конфликтов.

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

От Торонто до Томска: подведение итогов и планирование будущих семинаров по микроэлектронике в России

Время на прочтение4 мин
Количество просмотров4.3K
Видите японского робота-собачку слева от девушки Ирины? Этот робот из компьютерного музея у офиса Гугла управлялся встроенным процессором MIPS R4000. Дальний потомок этого процессора, MIPS microAptiv UP, станет темой нескольких докладов на семинаре по обмену опытом преподования электроники, который пройдет в Томске на следущей неделе. Ядро MIPS microAptiv UP, в своем бесплатном варианте, MIPSfpga, стало удобной морской свинкой для студенческих экспериментов по микроархитектуре процессорных ядер и созданию систем на кристалле.

Важная часть экспериментов с MIPSfpga случилась в России, на Украине и в Казахстане в течении двух прошлых лет — про это рассказала на конференции в Торонто Сара Харрис, профессор Университета Лас-Вегаса. В семинарах на эту и смежные темы проектирования чипов (Nanometer ASIC) приняли участие МГУ, МФТИ, МИФИ, МИЭТ, ИТМО и другие ведущие университеты.

Сейчас эксперимент продолжается: в этом месяце, помимо конференции в Томске, в Россию приезжает Роберт Оуэн, известный консультант по университетским образовательным программам в области микроэлектроники. За последние 23 года Роберт Оуэн посетил сотни университетов в Европе, Азии, Америке и даже Африке, как представитель Texas Instruments, ARM, Xilinx и Imagination. Он помогал университетам поставить программы в области DSP, микроконтроллеров, встроенных процессоров и систем на кристалле.

Вся эта деятельность — не абстрактное образование ради образования. На технологиях разработки микросхем с использованием языков описания аппаратуры Verilog и VHDL и использовании синтезируемых ядер стоит бизнес таких российских компаний как ЭЛВИС-НеоТек и Байкал Электроникс, о которых расскажет в лекции на этой неделе никто иной как Чубайс.



Про эти и другие мероприятия из прошлого и будущего подробнее под катом.
Читать дальше →

Цифровая фильтрация на ПЛИС – Часть 2

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


Всем привет!

Это вторая публикация на тему «Цифровая фильтрация на ПЛИС». Вторая часть будет посвящена практической реализации КИХ фильтров на FPGA. В процессе подготовки материала я понял, что она раздуется до небывалых размеров, но делить ее на несколько частей не хочется. Поэтому все тонкости теории и синтеза FIR фильтров будут в одной статье, разбитой на взаимосвязанные разделы. Начну обзор с теоретической части, в частности — расскажу об особенностях и методах расчета коэффициентов фильтров. Подробно рассмотрю создание КИХ фильтров в различных средах — MATLAB, CoreGENERATOR, Vivado HLS. Всех заинтересовавшихся прошу под кат.
Читать дальше →

Временной анализ FPGA или как я осваивала Timequest

Время на прочтение2 мин
Количество просмотров24K
Доброго времени суток, уважаемые хабравчане.

На самом деле я инженер-радиофизик и программирование ПЛИС не является моей непосредственной деятельностью, но в один момент понадобилось написать программу для синхронизации нескольких осцилографических модулей. Пришлось осваивать эту науку. О том, какие у меня возникли с этим проблемы, под катом.


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