Все потоки
Поиск
Написать публикацию
Обновить
38.37

FPGA *

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

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

Самосинхронные схемы. Вычисление логических функций непосредственно по графу событий. Часть 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 лет назад. Как это удалось без асинхронного дешифратора?

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

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

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

Статический временной анализ demystified. Часть 2

Время на прочтение5 мин
Количество просмотров9.2K
Многие начинающие разработчики не до конца понимают значение таких параметров триггера как время установки (Setup) и удержания (Hold). Про метастабильность и природу этих двух параметров написано достаточно много (https://habrahabr.ru/post/254869/), поэтому сосредоточимся на том, как бороться с нарушениями Setup и Hold в процессе проектирования схем.
Читать дальше →

Верификация FPGA. Что это?

Время на прочтение4 мин
Количество просмотров16K
По воле судьбы я занимаюсь несколько лет верификацией конфигураций ПЛИС. И с самого начала меня поражало малочисленность информации по данному вопросу.

Если не все, то многие здесь слышали про ПЛИС. Возможно некоторые даже плотно с ними работали, но, думаю, с верификацией проектов на ПЛИС сталкивалось намного меньше людей. Сегодня я расскажу о процессе верификации.
Читать дальше →

ИИ на FPGA — создание нейронной сети XOR с помощью LLM

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

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

Читать далее

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

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

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

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

Читать далее

Моделирование реализации модуля Быстрого Преобразования Фурье (БПФ/FFT) и сравнение с аналогичным ядром от Xilinx

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

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

Читать далее

Сложные цепи из последовательных звеньев и параллельных шин — согласование цифрового сигнала внутри таких схем

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

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

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

Читать далее

Инженерный хакатон YADRO для студентов

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

14-15 мая 2022 г. YADRO впервые в России проведёт инженерный хакатон для студентов старших курсов.

Студенты смогут прокачать навыки проектирования современных микропроцессоров на базе архитектуры RISC-V и попробовать свои силы в решении практических задач маршрута проектирования системы на кристалле (СнК) по направлениям:

  • RTL проектирование;
  • функциональная верификация;
  • топологическое проектирование.
Читать дальше →

Делаем блок SPI to AVALON_MM для USB-устройства на базе FX3

Время на прочтение18 мин
Количество просмотров2.8K
В предыдущей статье мы научились подавать Vendor команды в устройство USB3.0 на базе контроллера FX3 и реализовали программную шину SPI. Сегодня мы продолжим начатое и сделаем компонент SPI to Avalon_MM. Может возникнуть вопрос: мы же уже умеем работать с шиной Avalon_MM через JTAG средствами TCL-скриптов, зачем нам что-то ещё?

Дело в том, что когда мы работаем на чистом TCL, как делали это здесь и здесь, всё замечательно. Но для задач, гоняющих десятки или даже сотни мегабайт, этот вариант слишком медленный. Поэтому мы вынуждены добавить программу на С++, работающую через USB 3.0.

Вариант с TCL-сервером, к которому обращается плюсовая программа, рассмотренный в этой статье, требует сложной ручной подготовки при каждом запуске. Надо обязательно запустить среду исполнения (для Windows и Linux они разные), запустить серверный скрипт, а затем – в программе синхронизировать работу с данными по USB и с командами через TCP. Не люблю такие сложности. Оставим те варианты под случаи, когда они не создают трудностей. Здесь же у нас есть USB-устройство, мы всё равно с ним работаем, вот и будем обращаться к шине AVALON_MM через него. Приступаем.


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

Знакомство с FPGA iCE40 UltraPlus Mobile Development Platform от фирмы Lattice Semiconductor

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

Введение


Всем доброго времени суток, друзья! Недавно на работе обзавелись новенькой навороченной платой iCE40 UltraPlus Mobile Development Platform от фирмы Lattice Semiconductor. Со слов разработчиков на официальном сайте iCE40 UltraPlus MDP — это плата, на которой расположены 4 ПЛИС iCE40 UltraPlus, каждая из которых управляет своим набором периферии. В набор входят:

  • мобильный дисплей с разрешением 240x240 с интерфейсом MIPI DSI;
  • датчик изображения с разрешение 640x480 (OVM7692);
  • малопотребляющие микрофоны в количестве 4 штук;
  • BLE модуль для беспроводной передачи данных;
  • программируемая SPI Flash память;
  • пак различных датчиков (давления, компас, гироскоп и акселерометр);
  • ну и всякие кнопочки и лампочки.

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

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

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

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

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

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

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

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

Неожиданный взгляд на асинхронные схемы, независящие от скорости

Время на прочтение4 мин
Количество просмотров3.7K
В асинхронной науке центральное место занимает свойство схем, называемое независимостью от скорости, по английски speed independent (далее SI). Считается, что это свойство является аналогом независимости асинхронных схем от задержек логических элементов. Неудивительно, что термин SI упоминается практически в каждой работе по асинхронике. Но периодически по части этого термина возникают какие-то смутные сомнения. Не случайно, что все чаще этот термин заменяется другим термином, именуемом самосинхронностью. Прояснить эту ситуацию поможет обращение к первоисточнику. Речь идет о втором томе книги Р. Миллера «Теория переключательных схем», а если точнее, о главе 10, именуемой «Теория переключательных схем, не зависящих от скорости».

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

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

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

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

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

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



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

Знакомство с FPGA-тян или, что такое ПЛИС

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

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

Читать далее

Асинхронная логика — насколько же это может быть быстро… (+ небольшая победа над багом в Gowin EDA)

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

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

Читать далее

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

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

Наверное каждый "ПЛИСовод" использовал высокоскоростные приёмопередатчики хотя бы раз в своей практике. В семействе ПЛИС 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.

Читать далее

Отрабатываем протокол 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 Давид Ян - посягнул на проблему сознания. В качестве показателя прогресса ИИ в этой области Давид приводил решение компьютером задачек, в которых нужно ставить себя на место других людей. Типа (это не задачка Яна, а мой аналог приведенных им задачек):

Читать далее

Вклад авторов