Обновить
23.14

FPGA *

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

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

Синхронный системный интерфейс взаимодействия с периферийными блоками в объёме кристалла СБИС или ПЛИС. STI 1.0

Время на прочтение21 мин
Количество просмотров6.4K
В статье предложена организация взаимодействия функциональных блоков в объёме кристалла СБИС, а именно: процессорных ядер, контроллеров DMA и мостов системных шин с периферийными блоками, такими как: контроллеры GPIO, SPI, I2C, UART, таймеры и широтно-импульсные модуляторы – ШИМ. Рассмотрен набор сигналов и протокол обмена стыка простого исполнителя – локального системного интерфейса, реализующего взаимодействие перечисленных блоков кристалла. Приведены примеры синтезируемых моделей контроллера GPIO и регистрового файла, поддерживающие описанный интерфейс.
Читать дальше →

Настройка Sublime Text 3 для работы с VHDL файлами

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

Работа с VHDL в Sublime Text 3


Редактор Sublime Text существенно экономит время при работе с vhdl и verilog файлами. Для тех, кто не работал с редакторами типа Sublime Text, Notepad++ и т.п. опишу основные полезные функции данных редакторов:

  • множественное выделение/редактирование строк кода (нажатие средней кнопки мыши или при зажатой клавише Ctrl)
  • установка меток (закладок) в коде, помогает ориентироваться в больших файлах. (Ctrl + F2 или через пункт меню Goto→ Bookmarks)
  • возможность разделения рабочей области на несколько окон (Alt + Shift + 2 или из меню View→ Layout)
  • открытие одного файла несколько раз (File→ New View into File)
  • комментирование выделенных строк кода (Ctrl + /)
  • поиск и замена (Ctrl + h)
  • поиск по всем открытым файлам (Ctrl+Shift+f)
  • вставка сниппетов (шаблонов кода) (написать ключевое слово + клавиша Tab)
  • написание и использование функций на языке python
  • возможность установки различных дополнений
  • гибкая настройка
Читать дальше →

Распределённая система управления на базе SoC FPGA

Время на прочтение10 мин
Количество просмотров8.8K
Реализация связки прошивки ПЛИС, ПО микроконтроллера NIOS и управляющего ПО под Linux на базе Altera Cyclone V SoC с использованием Avalon Mailbox для создания на их основе распределенной системы управления.
Читать дальше →

Генерация и тестирование ядра RISC-V

Время на прочтение5 мин
Количество просмотров12K
Как я писал в прошлом посте, название моего проекта на GSoC-2016 — «порт RISC-V на Parallella», и первая вещь, которую я должен был сделать, это познакомиться с экосистемой RISC-V. Один из лучших способов это сделать, — посмотреть видео с презентации первого воркшопа RISC-V на Youtube. Для того, чтобы понять самые важные концепции, я рекомендую следующие презентации:


Ещё одна ссылка, если вы интересуетесь Chisel, языком, основанным на Scala, который используется для описания текущей аппаратной реализации ядра RISC-V (ядро Rocket имеет in-order конвейер, BOOM — out-of-order), и любых будущих реализаций.

Краткое руководство по Chisel (Jonathan Bachrach) видео слайды

Работа с Rocket Chip, добавление расширений, инфраструктура ASIC и FPGA (Colin Schmidt) видео слайды

Если вы глубоко заинтересованы в RISC-V и развитии сообщества, я предлагаю вам принять участие в воркшопах.


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

ECO Flow в Vivado или работа в режиме редактирования нетлиста

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

Аннотация


В статье рассмотрен режим работы Vivado, позволяющий вносить изменения в проект на уровне редактирования списка соединений (в дальнейшем – нетлиста). Описаны как сам режим ECO, так и некоторые нюансы, которые появляются во время работы в нём. Приведён демонстрационный пример и описана полная последовательность действий для получения результата, в работоспособности которой может убедиться каждый желающий. Статья будет полезна для «общего развития» FPGA-разработчикам, а особенно — тем, кто часто отлаживает проекты в Logic Analyzer. Надеюсь, работа в этом режиме вызовет интерес у разработчиков, работающих с большими кристаллами, время компиляции в которых может достигать часов (а то и десятков часов), поскольку в этом режиме время, затрачиваемое на имплементацию, при внесении изменений в нетлист может сократиться до буквально пары минут.




Оглавление



В статье очень много картинок не в спойлерах (140 штук). Пожалуйста, будьте внимательны, если заходите с телефона


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

Использование произвольных DataFlash 25-й серии вместо дорогих конфигураторов FPGA Altera без дополнительной аппаратуры

Время на прочтение7 мин
Количество просмотров12K
Из любого описания на популярные FPGA известно, что для хранения их конфигураций используются специальные микросхемы – конфигураторы. В комментариях меня поправили, что потихоньку набирают популярность и FPGA, где это не требуется, но пока многие делают разработки именно на классике, где нужен конфигуратор, и с этим надо считаться. Например, для Altera Cyclone используются микросхемы EPCS. Ниже схема от типичной макетной платы с кристаллом семейства Cyclone IV. На ней мы видим конфигуратор EPCS16. Всё бы ничего, но традиционно эти конфигураторы достаточно дороги, поэтому хотелось бы использовать что-нибудь подешевле.

Подробности в длиннющем тексте ниже. Если же очень интересно, но лень читать так много букв, то можно упростить задачу, посмотрев подробное 20-минутное видео.

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

Преобразователи Time-To-Digital (TDC): что это такое и как они реализованы в FPGA

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

На рисунке — первый в мире спутник квантовой связи «Мо-Цзы», который запустили из Китая в 2016 году, в нем летает TDC, реализованная в FPGA.

Объяснить своей девушке (или парню), что такое ADC и DAC, и в каких домашних приборах они используются, может каждый человек, называющий себя инженером. А вот что такое TDC, и почему у нас дома их нет, зачастую можно узнать только после свадьбы.

TDC — это time-to-digital converter. По-русски говоря: времяизмерительная система.

Основные потребители быстродействующих TDC — научные группы. Как правило, под определенный исследовательский проект требуется что-то очень специфическое. То каналов надо много, то разрешение очень высокое, то исполнение компактное. А уровень развития современных FPGA и их доступность как раз дают исследователям возможность экспериментировать с реализациями и подстраивать их под собственные нужды.

В этой хабрастатье приводится детальное описание простенькой времяизмерительной системы на FPGA Cyclone IV. Статья будет полезна не только для расширения кругозора, но и с методической точки зрения, поскольку реализация системы нетривиальная.
Читать дальше →

FPGA-ускорители уходят в облака

Время на прочтение11 мин
Количество просмотров16K
FPGA-ускорители уходят в облака, статья от Selectel

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

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

О портировании проекта MIPSfpga

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


Перенос программного обеспечения с одной компьютерной архитектуры на другую в принципе, с некоторыми оговорками, дело относительно простое. Здесь на помощь приходят такие общеизвестные инструменты, как autoconf / automake/ libtool / gnulib. Собрать программу из исходников на каком нибудь Raspberry/ARM бывает так же просто, как и на ПК с Ubuntu/x86-64.

А вот как заставить проект ПЛИС разработанный для одной платы работать на другой плате? Там и сама ПЛИС может быть другой и на плате совершенно другие компоненты могут стоять. Простой перекомпиляцией проекта не обойтись.

Расскажу о своем опыте портирования проекта MIPSfpga для платы Марсоход3 с ПЛИС MAX10 Intel. Статьи о проекте MIPSfpga неоднократно появлялись на хабре. Они были так интересны, что мне захотелось и самому попробовать этот проект в имеющейся у меня плате. В своей работе я опирался на хабровские статьи


И многие другие…

Итак, что нужно сделать, чтобы портировать проект ПЛИС на другую плату?

Как я blakecoin майнер делал

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


Не знаю кому как, а меня прошедший 2017 год шокировал стремительным взлетом биткоина. Сейчас, конечно, ажиотаж уже ушел, а в 17-м году про криптовалюты говорили и писали все кому не лень.

Я видел, что люди пытаются зарабатывать на криптовалютах. Кто как умеет. Кто-то на все сбережения скупал видеокарты и начинал самостоятельно майнить в гараже. Кто-то вкладывался в облачный майнинг. Кто-то пытается организовать свой пул. Кто-то запустил в производство шоколадные биткоины, а кто-то выпускает минеральную воду:



Я тоже стал изучать, что же такое эти самые биткоины. Когда-то я даже начал свое собственное иследование алгоритма SHA256 и написал статью здесь на хабре "Можно ли вычислять биткоины быстрее, проще или легче?". Мои исследования алгоритмов хеширования до сих пор продолжаются и еще и близко не завершены… Может быть когда нибудь напишу про это отдельную статью. А сейчас пока вот это…
Читать дальше →

Обсудили в Стенфорде, что делать с математическим и инженерным образованием школьников Украины

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


«Чему Америка может поучиться у Украины в области образования?» — этот вопрос возник во время совещания в Стенфорде. Оказывается, есть чему, например традициям преподавания математики, которые у Украины общие с другими странами СНГ. «Как украинское правительство поддерживает ориентацию школьников на инженерные профессии?» — был другой вопрос аудитории, в которой были сотрудники SAP, Facebook, MIPS и других известных технологических компаний.

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

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



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

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



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

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

Время на прочтение5 мин
Количество просмотров5K
В последней статье я уже упоминал о существовании альтернативных способов вычисления логических функций. В этой статье начну знакомить с вычислением логических функций непосредственно по событийному описанию (например STG). Тут не надо путать событийные описания с описаниями через состояния (пример — диаграмма изменений). Сам метод родился для синтеза асинхронных схем, но при желании его можно использовать и при синтезе синхронных схем. Отличительными чертами метода являются: 1) полный отказ от использования такого понятия как состояние (при объяснении я конечно буду ссылаться на это понятие); 2) существенное сокращение вычислений за счет использования информации о соседних состояниях. При машинных вычислениях это позволяет существенно сократить время вычислений и радикально решить проблему нехватки памяти при взрыве состояний. При ручных вычислениях метод позволяет при достаточной сноровке оперировать поведениями с сотнями сигналов. Речь конечно же идет о вычислении минимальных функций.

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

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

Первый шаг к аппаратным ускорителям нейронных сетей для программистов лежит через изучение основ HDL, RTL и лаб на FPGA

Время на прочтение8 мин
Количество просмотров24K
Казанский университет Иннополис в порядке эксперимента учит студентов-программистов разработке хардвера. Причем под разработкой хардвера имеется в виду не программирование микроконтроллеров внутри скажем роботов, а проектирование цифровых схем на уровне регистровых передач (Register Transfer Level — RTL), с использованием языков описания аппаратуры (Hardware Description Language — HDL) и лабораторными занятиями на программируемых логических интегральных схемах (ПЛИС / FPGA — Field Programmable Gate Array).

Зачем это нужно программистам? Ведь электронике учат на (гораздо менее массовых) факультетах электроники, где студент сначала изучает физику электричества, аналоговые схемы, делает пару лаб с мультиплексорами, после чего все это забывает и идет работать программистом.

Одна из причин, зачем цифровая схемотехника программисту — в последнее время происходит бум нейросетей. Если вы хотите чтобы обучение сложной сети занимало не недели / дни / часы, а часы / минуты / секунды, без аппаратных ускорителей не обойтись. Только специализированный хардвер выполнит параллельно большое количество умножений малой точности с одновременными транзакциями к океану памяти. В будущем нас ждут специализированные ASIC (application-specific integrated circuits) для AI, причем повсюду. В них будет как традиционный процессор, так и большие AI блоки на борту, с возможностью частичной реконфигурации.

От Гугла и Микрософта до Сколково и Иннополиса растет понимание, что нужны специалисты, которые могут строить такие сопроцессоры. Они должны владеть хардверной микроархитектурой, одновременно с пониманием софтверной экосистемы и алгоритмов. А владение микроархитектурой стоит на понимании уровня регистровых передач. Как это реализуется сейчас в Иннополисе:


Ответ Л.П. Плеханова на замечания по книге «Основы самосинхронных электронных схем»

Время на прочтение7 мин
Количество просмотров9.7K
Предисловие: Меня зовут Виктор, и я сотрудник Института Проблем Информатики РАН. В нашем отделе ведутся две разработки: рекуррентный процессор и самосинхронная схемотехника. Сам я занят первым, но не смог пройти мимо Мои замечания о книге Л.П. Плеханова «Основы самосинхронных электронных схем», т.к. Л.П. Плеханов работает у нас и данная тематика и «внутренняя кухня» мне близки и знакомы. Я попросил Леонид Петровича подготовить ответ, который с удовольствием сегодня опубликую.

Для справки: У коллектива, в котором работает Плеханов Л.П. довольно много наработок по части самосинхронной схемотехники. Более 20 патентов по самосинхронике, включая международные патенты (США).

Также решения являются не только теоретическими, но и практическими. Например, буквально недавно вышла книга «Библиотека функциональных ячеек для проектирования самосинхронных полузаказных микросхем серий 5503 и 5507». САПР «Ковчег» позволяет проектировать самосинхронные схемы в базисе БМК серий 5503 и 5507.

Кроме того, уже выполнен по технологии 65 нм самосинхронный делитель и блок FMA для процессора КОМДИВ-64. В силу разных обстоятельств данные труды пока не имеют заслуженной на мой взгляд огласки, и посему лично я надеюсь, что этот первый пост нашего отдела ИПИ РАН не будет последним и в ближайшее время мы расскажем публике о самосинхронной схемотехнике подробнее. Ну а пока, передаю слово Леониду Петровичу.

Пошумим!



Вообще-то, если появляется компетентная рецензия, то это благо для автора. Но здесь другой случай.

1. Общее впечатление


Автор замечаний (далее — Рецензент), находясь в плену своих событийных представлений, непоколебимо считает, что и все другие исходят (или должны исходить) из того же.

А с какой стати?

Поэтому Рецензент ничего не понял в книге — ни идеи, ни подхода, ни результатов.
Зато замечания написаны с большой самоуверенностью.
Читать дальше →

Мои замечания о книге Л.П. Плеханова «Основы самосинхронных электронных схем»

Время на прочтение10 мин
Количество просмотров7.6K
Прежде всего хочу сказать, что за те 10 с лишним лет, что я не занимался асинхронными схемами, в этой сфере произошли определенные изменения. Прежде всего бросается в глаза изменение в терминологии. Значение термина «асинхронные схемы» взял на себя термин «самосинхронные схемы». Именно под этим термином теперь подразумеваются настоящие асинхронные схемы, не зависящие от задержек логических элементов. А термину «асинхронные схемы» досталось обозначение схем, не обладающих этим ценным качеством, ну и вообще всех схем без тактового сигнала. Я решил поподробнее изучить, что такое самосинхронные схемы. Подходящей для этого мне показалась книга, указанная в заглавии. Тем более, что она рекомендуется как учебник, и издана не так давно.


В книге самосинхронные схемы представляются как отдельный класс схем, обладающих уникальными свойствами. А вот определение самосинхронной схемы:

Самосинхронной схемой (СС-схемой) называется схема, обладающая
двумя свойствами безошибочной работы:

  • отсутствием гонок при любых конечных задержках элементов;
  • отказобезопасностью.

Данное определение подразумевает гипотезу о задержках Маллера. Второй пункт есть следствие первого. А первый пункт не что иное, как определение давно устоявшегося термина speed-independent (SI). То есть получается, что самосинхронные схемы это не отдельный класс схем, а схемы, синтезированные определенным методом, который гарантирует свойство SI. Таким образом «самосинхронный» это не характеристика класса схем, а характеристика метода синтеза.
Читать дальше →

FPGA для программиста, конечные автоматы (verilog)

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

Стиль описания конечного автомата как образ мышления


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

Например, очень популярной является работа: Clifford E. Cummings, The Fundamentals of Efficient Synthesizable Finite State Machine Design using NC-Verilog and BuildGates. Всякий раз, когда специалисты решают обсудить, как правильно писать конечные автоматы, кто-то обязательно достает эту публикацию.

Статья стала настолько авторитетной, что многие даже не стараются анализировать аргументы автора. В частности, бытует мнение, что профессионалы всегда используют двухчастный способ описания конечных автоматов, имеется ввиду, описание конечных автоматов в 2 always блока. Это утверждение продолжает вызывать жаркие споры, и я хочу пояснить различия в описаниях конечного автомата с разным количество always блоков.

В беседах с коллегами я понял, что споры о том, как надо писать конечные автоматы в 1 или 2, 3 always блока, связаны с разным представлением (осознанием) реализуемого алгоритма, разным типом мышления. Попробую показать это на примере.

Я полагаю, что эта статья не первая статья о FSM и Verilog в вашей жизни, поэтому я не буду объяснять ни что такое конечный автомат, ни как он описывается на Verilog, а перейду сразу к делу.
Читать дальше →

Исследование внутренних дефектов ПЛИС: ищем черную кошку в темной комнате

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

Сезон 2: Плата содержит 4 кристалла XC7K160T, которые не работают больше 2-3 недель. В чем причина отказа? Разбираемся


1.Программное обеспечение.


Была проведена проверка количества элементов LUT между триггерами. Она показала, что это
количество достигает 12, однако это не приводит к большим временным задержкам и легко
укладывается в 4 нс, и даже почти всегда в 3 нс. В процессе получения результата комбинаторных операций (сложение и сравнение многоразрядных чисел) есть опасность повышенного потребления тока и локальных разогревов из-за значительного разброса времен распространения импульсов, и как следствие появление предельных частот переключения до 1ГГц. На рисунке 1 ниже видно, что на каждый такт происходит не одно переключение, а несколько.

image
Рис.1

Поэтому была предпринята попытка применения конвейера
Читать дальше →

Проверка синтезируемости красивых возможностей SystemVerilog на практике

Время на прочтение6 мин
Количество просмотров12K
В силу проектной обстановки нашей команде пришлось изучить возможности языка SystemVerilog, после чего нет-нет, а возникают жаркие споры о том, какая его часть синтезируема, а какая — нет. Чтобы положить конец домыслам, я провёл небольшую проверку на практике. Во время разработки тестового проекта ряд вопросов удалось снять копаясь в литературе, но всплыл один интересный момент, явного описания которого не нашлось. Чтобы исправить положение, я решил его задокументировать.

Итак. Имеем проект, максимально напичканный всяческими SytemVerilog-овскими штучками. Даже если кажется, что применение той или иной вещи не даёт особого выигрыша — это ошибочное впечатление, ведь главная задача «проекта» — именно изучить возможности SystemVerilog. И вот, у нас есть набор из нескольких модулей (конкретно у меня — это UART-приёмники), данные из которых следует «сливать» в единую шину, перебирая их по алгоритму RoundRobin (конкретно в случае с UART — сливаем накопленные данные в единую очередь, которая с другой стороны будет уходить в шину USB).

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

Суровая сибирская и казахстанская микроэлектроника 2017 года: Verilog, ASIC и FPGA в Томске, Новосибирске и Астане

Время на прочтение11 мин
Количество просмотров15K
Год 2017 стал годом больших изменений в зарождающейся экосистеме российской микроэлектроники. Эти изменения заметило даже ранее безразличное к российскому железу общество. Российский чип ELISE для умных камер от ЭЛВИС-НеоТек вышел на удобной плате для разработчиков. Эту плату показали по Первому каналу российского телевидения. C российским процессором Байкалом-Т теперь может поработать любой программист через доступ к серверам удаленной лаборатории, которую байкаловцы создали вместе с МГУ. Российские процессоры от НИИСИ стали использовать для телекоммуникационного оборудования.

Для перехода от единичных успехов к развитой экосистеме необходимо подкрутить образование. В сентябре в Томске прошло совещание, на котором преподаватели и инженеры из Москвы, Сибири, Поволжья, Калифорнии и других мест обменялись опытом в преподавании микроэлектроники. Одновременно там же прошел учебный семинар по SystemVerilog, VHDL, FPGA, CPU IP, на который пришли не только россияне, но и студенты из Китая и Вьетнама, среди которых быстро распостранилась информация, что рядом учат чему-то полезному для их карьеры. Под катом — отчет об этом и сопутствующих событиях. Действующие лица: томские и новосибирские университеты, московские МГУ, МФТИ и МИЭТ, новосибирские лицеи, российская компания МЦСТ, американские MIPS, AMD и National Instruments, британская Imagination и казахский Назарбаевский Университет.