Программируемая вентильная матрица
Программируемые пользователем вентильные матрицы (FPGA)
Программируемые интегральные микросхемы CPLD предназначены для применения в цифровых устройствах с большим количеством логических элементов. Кроме того, в CPLD трудно обеспечить эффективное применение всех макроячеек. Всегда часть макроячеек остается неиспользуемыми. Часто из макроячейки используется только триггер или логический элемент «2И» («2ИЛИ»). Остальная часть схемы зря занимает площадь кристалла и потребляет ток от источника питания.
Для реализации сложных цифровых схем удобно применять программируемые логические схемы (ПЛИС), обладающие большей логической вместимостью и большей степенью использования кристалла. В качестве подобных микросхем и можно назвать программируемые пользователем вентильные матрицы (FPGA — Field- Programmable Gate Array). Принцип работы FPGA существенно отличаются от принципа работы CPLD. FPGA является наследником комбинационных схем, реализованных на постоянных запоминающих устройствах (ПЗУ). Обобщенная структура микросхем FPGA приведена на рисунке 1.
Рисунок 1. Обобщенная структура микросхем FPGA
Типовая схема программируемой интегральной микросхемы FPGA состоит из трех видов блоков: логические блоки, блоки ввода-вывода, предназначенные для обмена сигналами через внешние выводы микросхемы и программируемые электронные ключи, предназначенные для создания соединений между внутренними блоками микросхемы FPGA. Логические блоки размещаются в узлах решетки вертикальных и горизонтальных шин проводников. Благодаря возможности соединения проводников при помощи электронных ключей друг с другом, можно создавать нужные нам соединения между логическими блоками. Соединения осуществляемые электронными ключами можно программировать, замыкая и размыкая эти ключи. Матрица соединений хранится в ПЗУ конфигурации и может быть изменена при программировании ПЛИС. Блоки ключей, замыкающие проводники соединительных шин FPGA между собой, обозначены на рисунке 1 квадратами серого цвета.
Соединение внутренней цифровой схемы с блоками ввода-вывода также программируется электронными ключами. У различных микросхем FPGA реальное число программируемых внутренних соединений значительно отличается. Это определяет насколько полно может быть использованы внутренние ресурсы микросхемы и может оказать влияние на предельное быстродействие разработанного цифрового устройства. Эти особенности необходимо учитывать в процессе проектирования цифрового устройства при выборе фирмы-изготовителя и конкретных микросхем FPGA, предназначенных для реализации этого устройства.
Особенностью структуры FPGA является то, что каждый логический блок обычно имеет небольшое число входов и один выход. Это позволяет более полно использовать внутренние ресурсы микросхемы. Типичный логический блок строится на основе ПЗУ, в ячейках которого записана таблица истинности комбинационной схемы. Подобный блок ПЗУ обычно называется LUT (Look Up Table). Каждая ячейка способна хранить значение одной строки таблицы истинности, логический ‘0’ или ‘1’. Размер LUT определяется числом входов, которое изменяется в зависимости от типа выбранной микросхемы и фирмы-производителя. В качестве примера на рисунке 2 показано внутреннее устройство небольшого LUT ПЗУ с тремя входами x1, x2, x3, и одним выходом f. Крестиками обозначены электронные ключи, включенные между источником питания и входом мультиплексора.
Рисунок 2. Пример внутреннего устройства LUT ПЗУ
LUT ПЗУ, изображенное на рисунке 2, способно реализовать любую логическую функцию трех переменных. Поскольку таблица истинности функций трех переменных имеет восемь строк, то LUT ПЗУ состоит из восьми запоминающих ячеек. Одна ячейка содержит значение выходного сигнала в каждой строке таблицы истинности. Входные сигналы x1, x2 и x3 подаются на адресные входы мультиплексора 8×1. В зависимости от комбинации логических сигналов на адресных вхоодах A0, A1, A2, на выход мультиплексора поступает сигнал с одного из его информационных входов X0. X7.
Для программирования LUT необходимо при помощи электронных ключей записать таблицу истинности реализуемой функции в ячейках памяти. Электронный ключ представляет собой полевой транзистор с плавающим затвором, что позволяет сохранять состояние ключа при отключении питания. При замыкании электронного ключа на вход мультиплексора поступает напряжение питания, что соответствует логической единице. При размыкании этого ключа на вход мультиплексора через резистор R поступает потенциал общего провода микросхемы, что соответствует логическому нолю. После программирования при x1=x2=x3=0 на выход LUT ПЗУ будет передан сигнал с самого верхнего входа мультиплексора, x2=x3=0, x1=1 на выход LUT ПЗУ будет передан сигнал с второго сверху входа мультиплексора, и т.д..
LUT ПЗУ современных микросхем FPGA обычно имеют четыре или пять входов и состоят из 16 или 32 запоминающих ячеек соответственно. Как и в CPLD микросхемах, кроме комбинационной цифровой схемы логический блок содержит запоминающее устройство, такое как D-триггер. На рисунке 3 приведен пример схемы логического блока FPGA микросхемы.
Рисунок 3. Пример схемы логического блока FPGA микросхемы
Логический сигнал, поступающий с выхода LUT ПЗУ на D вход триггера, запоминается по сигналу синхронизации Clk, который может формироваться как внутренними элементами схемы, так и поступать с внешних выводов FPGA микросхемы. Мультиплексор, стоящий на выходе логического блока, позволяет либо применять D-триггер при построении регистровых схем, либо отключать его от схемы при проектировании комбинационных логических схем.
Рисунок 4. Пример запрограммированного участка FPGA
На рисунке 4 приведен участок внутренней структуры микросхемы FPGA, запрограммированый для реализации комбинационной схемы. Данная микросхема FPGA состоит из LUT ПЗУ с двумя входами и четырьмя программируемыми линиями соединений. Программируемые электронные ключи обозначены символом X. Каждый замкнутый ключ, соединяющий вертикальную и горизонтальную линии показан красным цветом. Не используемые линии соединений и ключи на рисунке показаны черным. Первые два блока LUT запрограммированы на реализацию функций f1=x1x2 и f2=x2x3. Третий LUT реализует функцию f=f1+f2.
Вместе со статьей «Сложные программируемые логические устройства» читают:
Что такое FPGA? Введение в программируемую логику
Рассмотрим аппаратный подход к выполнению вычислений, маршрутизации цифровых сигналов и управлении встраиваемыми системами с помощью программируемой логики и FPGA (Field-Programmable Gate Array, программируемой пользователем вентильной матрицы).
FPGA – это программируемая логическая матрица. По своей сути, FPGA представляет собой массив взаимосвязанных цифровых подсхем, которые реализуют общие функции, а также предлагают очень высокий уровень гибкости. Но полная картина того, что такое FPGA, требует большего разбирательства. В данной статье представлены концепции FPGA и кратко обсуждается, что такое логические элементы, как программировать FPGA, и что отличает FPGA от микропроцессоров в плане разработки.
FPGA против микроконтроллера (Или зачем использовать FPGA, когда будет работать и микроконтроллер?)
Я думаю, мы все можем согласиться с тем, что микроконтроллеры стали доминирующим компонентом в современных электронных проектах. Они недорогие и универсальные, и в наши дни они часто служат первым в мире знакомством с миром электроники. Естественно, что мы продолжаем использовать компоненты, с которыми знакомы, и поскольку микроконтроллеры становятся всё более мощными, всё меньше и меньше нужно рассматривать альтернативные решения для наших задач проектирования. Тем не менее, микроконтроллер построен вокруг процессора, а процессоры имеют фундаментальные ограничения, которые необходимо признать и в некоторых случаях преодолеть.
Итак, когда инженер предпочтет FPGA микроконтроллеру? Ответ сводится к программному обеспечению и аппаратным средствам.
Процессор выполняет свои задачи, выполняя инструкции последовательно. Это означает, что операции процессора, по сути, ограничены: требуемая функциональность должна быть адаптирована к доступным инструкциям, и в большинстве случаев невозможно одновременно выполнять несколько задач обработки.
Микроконтроллер построен на одном процессоре, а процессор построен на одном CPU, а один CPU выполняет одну операцию за раз
Набор инструкций рассчитан на высокую универсальность, и в настоящее время инструкции могут выполняться на чрезвычайно высоких частотах; однако эти характеристики не устраняют недостатки программного подхода к цифровому проектированию.
Альтернативой является аппаратный подход. Было бы чрезвычайно удобно, если бы каждый новый проект мог быть построен вокруг цифровой микросхемы, которая в точности реализует функциональность, требуемую системой: нет необходимости писать программное обеспечение, никаких ограничений набора команд, никаких задержек обработки, только одна микросхема, которая имеет входные выводы, выходные выводы и цифровую схему, в точности соответствующую необходимым операциям. Эта методология нецелесообразна вне описания, поскольку она предполагает разработку ASIC (application-specific integrated circuit, специализированной интегральной микросхемы) для каждой платы. Однако мы можем аппроксимировать эту методологию, используя FPGA.
Что такое программируемая пользователем вентильная матрица?
Хорошее название может быть довольно информативным, и я бы подумал, что «программируемая пользователем вентильная матрица» («field-programmable gate array») будет достаточно хорошим названием. FPGA – это матрица логических вентилей (ну вроде – смотрите ниже) и эта матрица может быть запрограммирована (на самом деле, «сконфигурирована», вероятно, более подходящее слово) в поле, то есть пользователем устройства, как противоположность людям, которые его разработали. Давайте посмотрим на основные характеристики.
Логические вентили (элементы) (И, ИЛИ, исключающее ИЛИ и т.д.) являются основными строительными блоками цифровой схемы. Поэтому неудивительно, что цифровое устройство, которое должно быть чрезвычайно конфигурируемым (то есть «field-programmable» / программируемым в поле / программируемым пользователем), будет состоять из множества вентилей, которые могут быть связаны между собой настраиваемым способом.
Однако FPGA не является огромной коллекцией отдельных булевых элементов. Это было бы очень неоптимальным способом обеспечения функциональности конфигурируемой логики, потому что не использовало бы тот факт, что распространенные операции могут быть реализованы гораздо эффективнее как фиксированные модули. Тот же принцип проявляется и в мире дискретных цифровых микросхем. Вы можете купить микросхемы, которые состоят из элементов И, элементов ИЛИ и т.д., но вы не захотите создавать сдвиговый регистр из отдельных элементов. Вместо этого вы купите микросхему сдвигового регистра.
Матрица конфигурируемых логических блоков
Конфигурируемые логические блоки (CLB) должны взаимодействовать друг с другом и с внешней схемой. Для этих целей FPGA использует матрицу программируемых межсоединенй и блоков ввода/вывода (I/O). «Программа» FPGA хранится в ячейках SRAM, которые влияют на функциональность блоков CLB и управляют коммутаторами, которые устанавливают пути подключения.
Подробное объяснение внутренней структуры и работы блоков CLB потребует целой статьи (если не нескольких статей). Общая идея заключается в том, что CLB включают в себя таблицы поиска, элементы хранения (триггеры и регистры) и мультиплексоры, которые позволяют CLB выполнять логические операции, операции хранения данных и арифметические операции.
Блок ввода/вывода состоит из различных компонентов, которые облегчают связь между CLB и другими компонентами на плате. К ним относятся подтягивающие резисторы, буферы и инверторы.
Программируемая пользователем логика (Или как вы программируете FPGA?)
Как мы собираемся превратить массив настраиваемых логических блоков (CLB, Configurable Logic Block) в цифровую схему, которая делает именно то, что мы хотим? На первый взгляд это кажется довольно сложной задачей. Действительно, реализация FPGA обычно считается сложнее, чем программирование микроконтроллера. Однако разработка для FPGA не требует глубокого знания функциональности CLB или кропотливой компоновки внутренних межсоединений, так же как разработка для микроконтроллеров не требует глубокого знания инструкций на языке ассемблера процессора или внутренних сигналов управления.
На самом деле, несколько неверно представлять FPGA как самостоятельный компонент. FPGA всегда поддерживаются программным обеспечением для разработки, которое выполняет сложный процесс преобразования аппаратного проектирования в программируемые биты, которые определяют поведение межсоединений и CLB.
Это оставляет нам важный вопрос: как мы «объясним» программе, что должно делать аппаратное обеспечение FPGA?
Языки описания аппаратных средств
Оказывается, люди создали языки, которые позволяют нам «описывать» аппаратное обеспечение, они называются (очень соответствующе) языки описания аппаратных средств (HDL, hardware description language), а два наиболее распространенных – VHDL и Verilog. Несмотря на очевидное сходство между HDL кодом и кодом, написанным на языке программирования высокого уровня, они принципиально отличаются друг от друга. Код программы определяет последовательность операций, тогда как HDL код больше похож на схему, которая использует текст для представления компонентов и создания взаимосвязей.
Пример цифровой схемы, которая соответствует VHDL коду, приведенному ниже
Заключение
Надеюсь, теперь вы понимаете основные характеристики устройств программируемой логики и их потенциальные преимущества в отношении процессорных систем. Современные FPGA – это сложные, высокопроизводительные устройства, которые могут быть несколько пугающими для тех, кто привык использовать микроконтроллеры для сбора данных, управления микросхемами специального назначения и выполнения математических операций. Однако вы можете обнаружить, что в некоторых приложениях улучшенная производительность и универсальность стоят дополнительных усилий в разработке.
А в ближайшее время на RadioProg появится несколько статей, помогающих начать разработку на FPGA.
Программируемая вентильная матрица
Mouser Electronics has disabled TLS 1.0 to remain in alignment with the latest standards for security and data integrity.
Only browsers supporting TLS 1.1+ will be able to access the Mouser website as of September 2017.
Please upgrade your browser version or settings to restore access to the Mouser website.
Společnost Mouser Electronics vypnula šifrovací protokol TLS 1.0 za účelem sladění s nejnovějšími způsoby zabezpečení a zajištění nenarušenosti přenášených dat.
Od září 2017 bude možné používat webové stránky Mouser pouze s prohlížeči podporujícími TLS 1.1 a vyšší verze.
Přejděte na vyšší verzi prohlížeče nebo upravte nastavení a obnovte tak přístup na webové stránky Mouser.
Ověřte si správnost nastavení prohlížeče (Test your browser) na: www.ssllabs.com, www.howsmyssl.com
Mouser Electronics hat TLS 1.0 deaktiviert, um sicherzustellen, dass wir in Übereinstimmung mit den neuesten Standards für Sicherheit und Datensicherheit bleiben.
Nur Browser, die TLS 1.1+ unterstützen, können ab September 2017 auf die Mouser-Website zugreifen.
Aktualisieren Sie Ihre Browser-Version oder Ihre Einstellungen, um wieder Zugriff auf die Mouser-Website zu erhalten.
Mouser Electronics ha deshabilitado TLS 1.0 para permanecer alineados con las normas más recientes de seguridad e integridad de datos.
Solo los navegadores compatibles con TLS 1.1+ podrán acceder al sitio web de Mouser a partir de septiembre de 2017.
Actualice la versión o las configuraciones de su navegador para restablecer el acceso al sitio web de Mouser.
Mouser Electronics a désactivé TLS 1.0 afin de garantir sa conformité aux normes les plus récentes en matière de sécurité et d’intégrité des données.
Seuls les navigateurs prenant en charge TLS 1.1+ seront en mesure d’accéder au site Web de Mouser à partir de septembre 2017.
Veuillez mettre à jour la version ou les paramètres de votre navigateur afin de pouvoir accéder à nouveau au site Web de Mouser.
Testez vos paramètres en consultant la page : www.ssllabs.com, www.howsmyssl.com
Mouser Electronics ha disabilitato il TLS 1.0 per rimanere allineata con i più recenti standard di sicurezza e integrità dei dati.
A partire dal mese di settembre 2017 potranno accedere al sito web di Mouser unicamente i browser che supportano il TLS 1.1+.
Ti preghiamo di aggiornare la versione o le impostazioni del tuo browser per poter nuovamente accedere al sito web di Mouser.
Puoi verificare le tue impostazioni visitando: www.ssllabs.com, www.howsmyssl.com
ご使用中のブラウザのバージョンあるいは設定をアップグレードし、マウザーのウェブサイトへのアクセスを保持してください。
마우저 일렉트로닉스는 보안 및 데이터 무결성에 대한 최신 표준을 준수하기 위해 TLS 1.0을 비활성화했습니다.
따라서 2017년 9월부터는 TLS 1.1 이상을 지원하는 브라우저에서만 마우저 웹 사이트에 액세스할 수 있습니다.
마우저 웹 사이트를 계속 사용하려면 브라우저 버전 또는 설정을 업그레이드하시기 바랍니다.
Mouser Electronics heeft TLS 1.0 uitgeschakeld om aan de nieuwste normen op het gebied van beveiliging en gegevensintegriteit te blijven voldoen.
Vanaf september 2017 kan de website van Mouser alleen worden bezocht met browsers die TLS 1.1+ ondersteunen.
Upgrade uw browserversie of -instellingen om weer toegang te krijgen tot de website van Mouser.
Test uw instellingen op de volgende website: www.ssllabs.com, www.howsmyssl.com
A Mouser Electronics desabilitou o TLS 1.0 para manter a continuidade de nosso alinhamento com os mais recentes padrões de segurança e integridade de dados.
A partir de setembro de 2017, somente os navegadores com suporte de TLS 1.1+ poderão ter acesso ao site da Mouser.
Atualize a sua versão ou configurações do navegador para restaurar o acesso ao site da Mouser.
Компания Mouser Electronics отключила TLS 1.0 для обеспечения соблюдения новейших стандартов безопасности и целостности данных.
Начиная с сентября 2017 года вы сможете получать доступ к веб-сайту Mouser только с использованием веб-браузеров с поддержкой TLS 1.1 и более новых версий.
Для возобновления доступа к веб-сайту Mouser обновите веб-браузер либо измените соответствующие настройки.
Проверьте свои настройки, посетив веб-сайт www.ssllabs.com, www.howsmyssl.com
Mouser Electronics har inaktiverat TLS 1.0 för att säkerställa att vi följer de senaste standarderna för datasäkerhet och -integritet.
Endast webbläsare som stöder TLS 1.1+ kommer att kunna få tillgång till Mousers webbplats från och med september 2017.
Uppgradera versionen eller inställningarna för din webbläsare för att få tillgång till Mousers webbplats.
Testa dina inställningar genom att besöka: www.ssllabs.com, www.howsmyssl.com
Mouser Electronics ได้ปิดใช้งาน TLS 1.0 เพื่อปฏิบัติตามมาตรฐานล่าสุดในด้านความปลอดภัยและความสมบูรณ์ของข้อมูลอยู่ตลอดเวลา
ตั้งแต่เดือนกันยายน 2017 เป็นต้นไปคุณจะเข้าใช้งานเว็บไซต์ Mouser ด้วยเบราว์เซอร์ที่รองรับ TLS 1.1+ ได้เท่านั้น
โปรดอัพเกรดเวอร์ชั่นหรือการตั้งค่าของเบราว์เซอร์เพื่อให้คืนค่าการเข้าใช้งานเว็บไซต์ Mouser
请升级您的浏览器版本或设置,以恢复对贸泽网站的访问。
FPGA. Разбираемся, как устроены программируемые логические схемы и чем они хороши
Содержание статьи
Может быть, ты умеешь взламывать устройства на другом конце света или кодить крутые веб-приложения, но понимаешь ли ты, как работает твой компьютер? И речь не о том, что делает операционка, как функционирует garbage collector в Java или как устроен компилятор C++. Я говорю о самом низком, аппаратном уровне, ниже ассемблера: как работает железо.
Что происходит в микросхеме сетевой карты, когда приходит пакет Ethernet? Как этот пакет передается дальше в оперативную память компьютера через шину PCI Express? Как работают самые быстрые системы распознавания изображений на аппаратном уровне?
Для ответа на эти вопросы надо немного разбираться в цифровой логике работы микросхем ASIC, но начинать с них очень сложно и дорого, и вместо этого лучше начать с FPGA.
FPGA расшифровывается как field-programmable gate array, по-русски — программируемые пользователем вентильные матрицы, ППВМ. В более общем случае они называются ПЛИС — программируемые логические интегральные схемы.
С помощью FPGA можно в буквальном смысле проектировать цифровые микросхемы, сидя у себя дома с доступной отладочной платой на столе и софтом разработчика за пару килобаксов. Впрочем, есть и бесплатные варианты. Заметь: именно проектировать, а не программировать, потому что на выходе получается физическая цифровая схема, выполняющая определенный алгоритм на аппаратном уровне, а не программа для процессора.
Работает это примерно так. Есть готовая печатная плата с набором интерфейсов, которые подключены к установленной на плате микросхеме FPGA, вроде крутой платы для дата-центра или отладочной платы для обучения.
Пока мы не сконфигурируем FPGA, внутри микросхемы просто нет логики для обработки данных с интерфейсов, и потому работать ничего, очевидно, не будет. Но в результате проектирования будет создана прошивка, которая после загрузки в FPGA создаст нужную нам цифровую схему. Например, так можно создать контроллер 100G Ethernet, который будет принимать и обрабатывать сетевые пакеты.
Важная особенность FPGA — возможность реконфигурации. Сегодня нам нужен контроллер 100G Ethernet, а завтра эта же плата может быть использована для реализации независимых четырех интерфейсов 25G Ethernet.
Существуют два крупных производителя FPGA-чипов: Xilinx и Intel, которые контролируют 58 и 42% рынка соответственно. Основатели Xilinx изобрели первый чип FPGA в далеком 1985 году. Intel пришла на рынок недавно — в 2015 году, поглотив компанию Altera, которая была основана в то же время, что и Xilinx. Технологии Xilinx и Altera во многом схожи, как и среды разработки. Чаще я работал с продуктами компании Xilinx, поэтому не удивляйся ее постоянному упоминанию.
FPGA широко применяются в разных устройствах: потребительской электронике, оборудовании телекома, платах-ускорителях для применения в дата-центрах, различной робототехнике, а также при прототипировании микросхем ASIC. Пару примеров я разберу чуть ниже.
Также рассмотрим технологию, которая обеспечивает аппаратную реконфигурацию, познакомимся с процессом проектирования и разберем простой пример реализации аппаратного счетчика на языке Verilog. Если у тебя есть любая отладочная плата FPGA, ты сможешь повторить это самостоятельно. Если платы нет, то все равно сможешь познакомиться с Verilog, смоделировав работу схемы на своем компе.
Принцип работы
Микросхема FPGA — это та же заказная микросхема ASIC, состоящая из таких же транзисторов, из которых собираются триггеры, регистры, мультиплексоры и другие логические элементы для обычных схем. Изменить порядок соединения этих транзисторов, конечно, нельзя. Но архитектурно микросхема построена таким хитрым образом, что можно изменять коммутацию сигналов между более крупными блоками: их называют CLB — программируемые логические блоки.
Также можно изменять логическую функцию, которую выполняет CLB. Достигается это за счет того, что вся микросхема пронизана ячейками конфигурационной памяти Static RAM. Каждый бит этой памяти либо управляет каким-то ключом коммутации сигналов, либо является частью таблицы истинности логической функции, которую реализует CLB.
Так как конфигурационная память построена по технологии Static RAM, то, во-первых, при включении питания FPGA микросхему обязательно надо сконфигурировать, а во-вторых, микросхему можно реконфигурировать практически бесконечное количество раз.
Очень упрощенная 2D-структура микросхемы без конфигурационной памяти
Блоки CLB находятся в коммутационной матрице, которая задает соединения входов и выходов блоков CLB.
Схема коммутационной матрицы
На каждом пересечении проводников находится шесть переключающих ключей, управляемых своими ячейками конфигурационной памяти. Открывая одни и закрывая другие, можно обеспечить разную коммутацию сигналов между CLB.
CLB очень упрощенно состоит из блока, задающего булеву функцию от нескольких аргументов (она называется таблицей соответствия — Look Up Table, LUT) и триггера (flip-flop, FF). В современных FPGA LUT имеет шесть входов, но на рисунке для простоты показаны три. Выход LUT подается на выход CLB либо асинхронно (напрямую), либо синхронно (через триггер FF, работающий на системной тактовой частоте).
Принцип реализации LUT
Интересно посмотреть на принцип реализации LUT. Пусть у нас есть некоторая булева функция y = (a & b) |
c . Ее схемотехническое представление и таблица истинности показаны на рисунке. У функции три аргумента, поэтому она принимает 2^3 = 8 значений. Каждое из них соответствует своей комбинации входных сигналов. Эти значения вычисляются программой для разработки прошивки ПЛИС и записываются в специальные ячейки конфигурационной памяти.
Значение каждой из ячеек подается на свой вход выходного мультиплексора LUT, а входные аргументы булевой функции используются для выбора того или иного значения функции. CLB — важнейший аппаратный ресурс FPGA. Количество CLB в современных кристаллах FPGA может быть разным и зависит от типа и емкости кристалла. У Xilinx есть кристаллы с количеством CLB в пределах примерно от четырех тысяч до трех миллионов.
Помимо CLB, внутри FPGA есть еще ряд важных аппаратных ресурсов. Например, аппаратные блоки умножения с накоплением или блоки DSP. Каждый из них может делать операции умножения и сложения 18-битных чисел каждый такт. В топовых кристаллах количество блоков DSP может превышать 6000.
Другой ресурс — это блоки внутренней памяти (Block RAM, BRAM). Каждый блок может хранить 2 Кбайт. Полная емкость такой памяти в зависимости от кристалла может достигать от 20 Кбайт до 20 Мбайт. Как и CLB, BRAM и DSP-блоки связаны коммутационной матрицей и пронизывают весь кристалл. Связывая блоки CLB, DSP и BRAM, можно получать весьма эффективные схемы обработки данных.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее
Программируемая пользователем вентильная матрица
- Программи́руемая по́льзователем ве́нтильная ма́трица (ППВМ, англ. field-programmable gate array, FPGA) — полупроводниковое устройство, которое может быть сконфигурировано производителем или разработчиком после изготовления; отсюда название: «программируемая пользователем». ППВМ программируются путём изменения логики работы принципиальной схемы, например, с помощью исходного кода на языке проектирования (типа VHDL), на котором можно описать эту логику работы микросхемы. ППВМ является одной из архитектурных разновидностей программируемых логических интегральных схем (ПЛИС).
ППВМ могут быть модифицированы практически в любой момент в процессе их использования. Они состоят из конфигурируемых логических блоков, подобных переключателям с множеством входов и одним выходом (логические вентили или gates). В цифровых схемах такие переключатели реализуют базовые двоичные операции AND, NAND, OR, NOR и XOR. В большинстве современных микропроцессоров функции логических блоков фиксированы и не могут изменяться. Принципиальное отличие ППВМ состоит в том, что и функции блоков, и конфигурация соединений между ними могут меняться с помощью специальных сигналов, посылаемых схеме. В некоторых специализированных интегральных схемах (ASIC) используются логические матрицы, аналогичные ППВМ по строению, однако они конфигурируются один раз в процессе производства, в то время как ППВМ могут постоянно перепрограммироваться и менять топологию соединений в процессе использования. Однако такая гибкость требует существенного увеличения количества транзисторов микросхемы.
Связанные понятия
Программи́руемая логи́ческая интегра́льная схе́ма (ПЛИС, англ. programmable logic device, PLD) — электронный компонент (интегральная микросхема), используемый для создания конфигурируемых цифровых электронных схем. В отличие от обычных цифровых микросхем, логика работы ПЛИС не определяется при изготовлении, а задаётся посредством программирования (проектирования). Для программирования используются программатор и IDE (отладочная среда), позволяющие задать желаемую структуру цифрового устройства в.
Разработка синхронных цифровых интегральных схем на уровне передач данных между регистрами (англ. register transfer level, RTL — уровень регистровых передач) — способ разработки синхронных (англ.) цифровых интегральных схем, при применении которого работа схемы описывается в виде последовательностей логических операций, применяемых к цифровым сигналам (данным) при их передаче от одного регистра к другому (не описывается, из каких электронных компонентов или из каких логических вентилей состоит схема.
Интегра́льная (микро)схе́ма (ИС, ИМС, IC (англ.)), микросхе́ма, м/сх, чип (англ. chip «тонкая пластинка»: первоначально термин относился к пластинке кристалла микросхемы) — микроэлектронное устройство — электронная схема произвольной сложности (кристалл), изготовленная на полупроводниковой подложке (пластине или плёнке) и помещённая в неразборный корпус или без такового, в случае вхождения в состав микросборки.
Mультипле́ксор — устройство, имеющее несколько сигнальных входов, один или более управляющих входов и один выход. Мультиплексор позволяет передавать сигнал с одного из входов на выход; при этом выбор желаемого входа осуществляется подачей соответствующей комбинации управляющих сигналов.
Существуют и иные значения этого слова, см. Мир«МИР» (сокращение от «Машина для Инженерных Расчётов») — серия электронных вычислительных машин, созданных Институтом кибернетики Академии наук Украины, под руководством академика В. М. Глушкова.