что такое fpga устройства

FPGA — теория программируемой логики (шлюзовой матрицы)

Главная страница » FPGA — теория программируемой логики (шлюзовой матрицы)

FPGA (Field Programmable Gate Array) — программируемая шлюзовая матрица. По своей сути FPGA является массивом взаимосвязанных цифровых подсхем, которыми реализуются общие функции. Также система видится инструментом, наделённым очень высоким уровнем гибкости. Однако чтобы реализовать полностью гибкость матрицы, потребуются исключить массу нюансов. Поэтому рассмотрим концепцию FPGA, попутно узнаем, что такое логические шлюзы, определим, как программировать FPGA. Наконец, найдём и определим отличия конструкции матрицы от конструкции микропроцессора.

FPGA или микроконтроллер?

Микроконтроллеры выступают доминирующим компонентом современного электронного конструирования. Микроконтроллеры относительно недорогие и универсальные электронные модули.

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

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

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

Структура микроконтроллера: 1 – процессор; 2 – контроль прерываний; 3 – генератор импульсов; 4 – ROM; 5 – управление шиной; 6 – RAM; 7 – порты ввода/вывода; 8 – счётчики; 9 – последовательный порт

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

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

Тогда нет необходимости писать программное обеспечение:

Эта методология нецелесообразна вне описания, поскольку она предполагает разработку ASIC (специализированной интегральной схемы) для каждой платы. Однако есть возможность аппроксимировать эту методологию через FPGA.

Программируемая шлюзовая матрица

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

Так называемая «стартовая» (макетная) плата электронного устройства типа FPGA — доступного по цене и лёгкого в использовании для конечного пользователя

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

Однако FPGA не является обширной коллекцией отдельных булевских шлюзов. Это был бы субоптимальный способ обеспечения функциональности настраиваемой логикой. Тот же принцип проявляется, к примеру, в области дискретных цифровых интегральных схем (ИС).

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

Таким образом, FPGA видится намного более выразительным инструментом, чем просто массив шлюзов. Это массив тщательно разработанных и взаимосвязанных цифровых подсхем, которые эффективно реализуют общие функции.

Конфигурируемые логические блоки

Отмечено, что FPGA обеспечивает очень высокий уровень гибкости. Эту гибкость обеспечивают цифровые подсхемы, именуемые конфигурируемыми логическими блоками (CLB). Такими блоками образуется ядро программируемых логических возможностей FPGA.

Структура программируемой шлюзовой матрицы: CLB – настраиваемый логический блок; SB – переключающий бокс; CB – соединительный бокс; I/O – блок ввода/вывода; H – горизонтальный канал маршрутизации; V – вертикальный канал маршрутизации; C – «W» трек

Технически CLB взаимодействуют друг с другом и с внешней схемой. Для этих целей FPGA использует матрицу программируемых соединений и блоков ввода/вывода (I/O).

Программа FPGA хранится внутри ячеек SRAM, которые влияют на функциональность CLB и управляют коммутаторами, устанавливающими пути подключения.

Подробное объяснение внутренней структуры и работы CLB потребует отдельной публикации (или даже нескольких публикаций). Общая идея заключается в том, что CLB включают в себя:

Все эти включения позволяют CLB выполнять логические операции, операции хранения данных и арифметические операции.

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

Пользовательская программируемая логика (как программировать FPGA?)

Каким же образом превратить массив CLB в цифровую схему, которая делает именно то, чего желает пользователь? На первый взгляд это действие кажется довольно сложной задачей.

Действительно, реализация FPGA обычно считается сложнее, чем программирование микроконтроллера. Однако разработка FPGA не требует глубоких знаний функциональности CLB или кропотливой компоновки внутренних взаимосвязей.

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

На самом деле несколько неверно представлять FPGA как отдельный компонент. Система FPGA всегда поддерживается программным обеспечением разработки.

Такое ПО выполняет сложный процесс преобразования аппаратного конструирования в биты программирования. Этими битами определяется поведение взаимосвязей и CLB.

Языки программного «описания» оборудования

Существуют средства, которые позволяют пользователю «описывать» аппаратное обеспечение. Эти средства называются языками описания аппаратных средств (HDL). Среди наиболее распространенных языков следует отметить «сладкую парочку»: —

Несмотря на очевидное сходство между кодеком HDL и кодом, написанным на языке программирования высокого уровня, эти два средства принципиально отличаются друг от друга.

Читайте также:  что делать если температура после прививки не снижается

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

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

Заключительный момент обзора

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

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

КРАТКИЙ БРИФИНГ

Источник

Технология FPGA для тысячи применений

Трудно представить другую технологию, которая настолько разносторонняя как FPGA.
FPGA — Field-Programmable Gate Array, то есть программируемая логическая матрица (ПЛМ), программируемая логическая интегральная схема (ПЛИС). Это технология, при которой создается микросхема с набором логических элементов, триггеров, иногда оперативной памяти и программируемых электрических связей между ними. При этом программирование FPGA оказывается похоже на разработку электрической схемы, а не программы. Пользуюсь данной технологией давно и попробую описать самые полезные с моей точки зрения применения по мере их усложнения.

1. Помощь при разводке плат

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

2. Согласование уровней сигналов

Часть микросхем имеет интерфейс 1.2В, другая 1.5, 1.8, 2.5, 3.3В, и все эти микросхемы можно подключить к одной FPGA и обеспечить двусторонний обмен за счет того, что любая FPGA имеет несколько банков ввода-вывода, каждый из которых может иметь свое опорное напряжение сигналов. Например, так:

3. Обеспечение надежности устройства

FPGA достаточно дорогие, но надежные устройства. Они начинают включаться при меньшем напряжении, чем номинальное, выдерживают импульсные наводки, часто короткое замыкание на ножках IO, быстро загружаются и могут использоваться для контроля и управления процессорами и умной периферией. Плюс могут реализовывать вспомогательные функции коммутации, задержек, моргания светодиодом и так далее. Мне очень нравится использовать FPGA (маленький PLD) как умный сторожевой таймер и схема запуска — ни разу не подводил.

4. Автоматы состояний или аппаратное программирование

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

5. Создание процессора внутри FPGA

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

Недостатком такого процессора является отсутствие готовых компиляторов и отладчиков.

6. Использование готовых библиотек процессоров для FPGA

Библиотеки готовых процессоров есть у любого производителя FPGA (от 8086 до ARM), позволяют быстро создать процессор с определенным набором периферии и вставить его в проект FPGA. К процессору прилагается компилятор и отладчик. Быстро, удобно, но избыточно и потому ограничено по быстродействию. Пример структуры готовой библиотеки процессора:

7. Объединять процессор и периферию в одной микросхеме — SoC (System-On-Chip)

SoC — достаточно новая технология, решающая самую страшную проблему инженера, необходимость протаскивать по плате много высокоскоростных интерфейсов, которых всегда оказывается недостаточно, и которые необходимо программно поддерживать. Технология SoC позволяет в одной микросхеме иметь полноценный центральный процессор (поддерживающий операционную систему Linux, например) или микроконтроллер и большую FPGA, соединенные логическими сигналами, общей внутренней памятью и интерфейсами к внешней. То есть проблема эффективной, простой и быстрой передачи информации между FPGA и процессором успешно решена! Пример структуры SoC:

Видно, что FPGA и HPS (Host Processor System, процессор) находятся внутри одной микросхемы и окружены программируемыми ножками ввода-вывода. Действительно это многофункциональная система на кристалле.

8. Модные приложения типа crypto mining

Вспоминая, что FPGA — это набор логических ячеек и триггеров, работающих параллельно, на FPGA можно проводить много параллельных операций, что отличает от процессора, параллельность которого ограничена количеством ядер и потоков. Поэтому можно использовать FPGA как сопроцессор к центральному процессору, вынося на FPGA все самые требовательные к вычислительной мощности операции. Например, центральный процессор занимается логической обработкой задачи, а FPGA параллельно вычисляет контрольные суммы, хэши, ищет совпадения, перебирает варианты и так далее. Быстродействие FPGA ограничено только количеством параллельных блоков и временем выполнения одной операции. Отладив таким образом вычисления можно заказать ASIC, то есть заказную микросхему, выполняющую те же функции, но дешевле (при массовом производстве) и с меньшим энергопотреблением. И данная идея оказалась настолько перспективной и удобной, что гиганты разработки FPGA начали создавать специальное ПО, позволяющее интерактивно переносить части вычислений из программы на C/C++ в FPGA и контролировать быстродействие (HLS, High-Level Synthesis). Есть готовые платы с быстрыми интерфейсами для этого и средства отладки. Очень интересная и перспективная тема для использования.

Читайте также:  что делать если робот пылесос крутится на одном месте

9. Реализация нейронных сетей на FPGA

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

Поэтому перенеся нейронную сеть на FPGA удается на много порядков ускорить работу нейронной сети, остается обеспечить высокоскоростной интерфейс для загрузки исходных данных и получения результата. В качестве примера — реализация системы распознавания лиц на процессоре i7/9Gen распознает до 20 лиц за секунду с одной видеокамеры HD, реализация на FPGA — порядка 1000 лиц с нескольких камер. Структура используемой глубокой нейронной сети:

Источник

FPGA майнинг: что это, преимущества и недостатки

Сейчас ASIC начинают обгонять добычу криптовалюты на GPU (видеокартах), выходят асики под новые и новые алгоритмы. Однако появилась альтернатива ASIC и GPU.

Сегодня мы расскажем о программируемой логической интегральной схеме или кратко FPGA.

Эти электронные элементы объединяют то, что мы любим больше всего в видеокартах и в ASIC.

Чем FPGA интересен для майнинга?

Два основных вопроса, которые FPGA должны решить

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

Раньше, когда для добычи большинства популярных монет было выгодно использование CPU (процессоров) или GPU (видеокарт), Вы всегда имели возможность быстро адаптироваться к криптовалютному рынку. Как только курс монеты падает, Вы можете сразу запустить другой майнер (программу для добычи криптовалют) и начать добычу более прибыльной монеты. Мы все прыгали из Ethereum к Monero, а затем к Zcash: туда и обратно, в зависимости от прибыльности монет.

Сейчас, когда ASIC штурмуют майнинг пулы большинства монет, существует всего одна стратегия: выбрать монету, купить под нее ASIC и молиться, чтобы монета быстро окупалась. GPU майнинг по-прежнему является вариантом, но количество монет, которые Вы можете добывать, теперь ограничено.

Проблема ASIC заключается в том, что они предлагают нулевую гибкость, когда дело доходит до монеты, которую Вы можете добывать. ASIC разрабатывается только под один алгоритм. Если по какой-то причине алгоритм становится непопулярным или нерентабельным, купленный ASIC становится бесполезным. Так как они очень много стоят, то покупать их очень рискованно.

Есть ли третий вариант?

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

Первым производителем этих устройств была американская технологическая компания под названием Xilinx. Позже, другая американская компания под названием Altera (теперь входящая в состав Intel) присоединилась к этой отрасли и с тех пор является основным конкурентом Xilinx.

Внедрение и развитие схем ПЛИС (программируемых логических интегральных схем), разновидностью которых является FPGA, очень приветствовалось во многих отраслях промышленности, и спрос на такое оборудование и технологии все еще растет. Например, в 2013 году размер объема рынка для плат FPGA составил 5,4 миллиарда долларов США, и, согласно оценкам, он достигнет отметки в 9,8 миллиардов долларов США в 2020 году.

Прежде, чем говорить о технической стороне, ответим на вопрос: «Если FPGA настолько хороши, почему бы людям не использовать их для майнинга с самого начала?»

Почему FPGA никогда не использовались в майнинге?

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

Есть две причины, почему платы FPGA для майнинга массово начинают использовать только сейчас.

Первая причина заключается в том, что благодаря гибкости и архитектуре платы FPGA нелегко настроить. Их можно запрограммировать на что угодно. Это хорошо, хотя это также означает, что для использования платы FPGA Вы должны знать, как программировать ее.

Так как только некоторые программисты способны это сделать, потребуется время, чтобы они выполнили эту работу. Затем эти программисты должны будут сделать бизнес-модель для продажи программ для общественности и так далее. Это, в конечном счете, произойдет, но пока они это делали, появилась причина №2.

Теперь, когда ASIC доминируют в майнинг пулах, а графические процессоры немного отстают, FPGA становятся все более интересными для среднего майнера.

В двух словах: что такое FPGA?

Итак, что такое программируемая пользователем вентильная матрица (field-programmable gate array)?

CPU и GPU тоже могут это делать, хотя по нескольким причинам FPGA работает быстрее. Для этого есть несколько причин – о некоторых мы расскажем чуть позже.

Платы FPGA работают в несколько раз лучше, чем GPU с одинаковым энергопотреблением. В зависимости от алгоритма FPGA может не отставать от ASIC по хэшам.

С другой стороны FPGA:

Читайте также:  что значит робкая девушка

Bitstream

Битовый поток загружается в энергозависимую память ПЛИС. Да, это все та же память DDR4. Модель FPGA имеет 64 ГБ. Это огромное количество оперативной памяти позволяет FPGA хранить сотни бит-потоков и переключаться между ними в доли секунды.

Как Вы, вероятно, ожидаете, эта функциональность позволяет FPGA добывать такие алгоритмы, как Timetravel10, X11Evo, X16R и X16S, которые требуют, чтобы чип переключался между различными «меньшими» алгоритмами хэширования каждые несколько минут.

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

Первоначальное предложение

Около полутора месяцев назад три члена майнинг сообщества упорно работали над созданием первых битовых потоков, чтобы некоторые модели FPGA (Xilinx VU9P) могли добывать различные алгоритмы.

Сегодня у этой команды есть магазин, где они разместили первые платы, а также страница на Bitcointalk. Одним из членов команды является GPUhoarder, известный за свой проект Squirrels Research.

Эти ребята в основном используют универсальные платы FPGA Xilinx VU9P и модифицируют их, чтобы они были пригодны для майнинга. «Vanilla» Xilinx VU9P поставляется с довольно плохим охлаждением, поэтому для хорошей работы в майнинге необходимо вручную выполнить требуемые настройки и улучшения.

Благодаря партнерству команды программистов с Xilinx, они дают нам возможность покупать эти платы в розницу. Кроме того, модификации, которые они делают (улучшенный радиатор и охлаждение), не мешают официальной гарантии Xilinx.

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

Затем любой может создавать битовые потоки для существующих майнинг алгоритмов, а Zetheron (название компании) будет взимать фиксированную плату от имени разработчиков. Это обеспечит:

Что касается сегодняшнего дня, то Zethereon разработал рабочий битовый поток для алгоритмов Cryptonote и Lyra2z.

— пишет команда Zethereon.

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

Это все прекрасно, но есть подвох. Платы, которые Zethereon предложили публике, были проданы в течение нескольких часов. По-видимому, идея иметь плату, которая сочетала бы гибкость графического процессора и возможности ASIC, была слишком хороша, чтобы ее можно было упустить.

В сети ходят слухи, что устройства FPGA VCU1525 способны выдавать 1900 MH/s на Ethash алгоритме Эфириума. Скорее всего это фейк.

По нашим подсчетам, одно FPGA устройство не может выдавать 1900 MH/s, вероятнее это риг из 6 FPGA дает такой показатель.

FPGA может быть мощнее видеокарты в 10 раз, но не более.

1900 MH/s был бы способен выдавать ASIC, если бы его смогли произвести.

Создают ли угрозу GPU майнерам FPGA?

Устройство стоит в районе 4000$ и скорее всего мощнее видеокарт в 10 раз.

Вероятнее всего, устройства подойдут только для крупных, «промышленных» майнеров. На данный момент проще купить видеокарт, т.к. окупаемость почти одинаковая.

Где взять FPGA сейчас?

На своем официальном сайте Mineority заявляет, что они являются «платформой для покупки, оптимизации, размещения и торговли видеокартами».

За определенную плату Вы можете купить свою карточку и оставить ее на одном из объектов Mineority в США или Европе. Вы можете арендовать место в майнинг ферме на срок до трех лет, после чего ваша карта будет отправлена вам. Или Вы можете попросить компанию сразу же отправить вам видеокарту, как только Вы ее купите. Существует также возможность перепродавать карту на рынке Mineority.

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

Не так давно Mineority начали перепродавать карту Xilinx V9UP, модифицированную так, чтобы быть «лучшей среди конкурентов в майнинге». Эта версия карты включает в себя требуемые 64 ГБ установленной DDR4 RAM и специальную систему охлаждения, которая позволяет карте использовать всю свою вычислительную мощность в майнинге (исходный Xilinx V9UP не может работать со 100% отдачей без перегрева). Mineority также дает владельцу доступ к постоянно растущей базе битовых потоков для добычи различных алгоритмов.

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

Вывод

Источник

Строительный портал