Принципиальная структура FPGA. — КиберПедия 

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Принципиальная структура FPGA.

2019-12-18 188
Принципиальная структура FPGA. 0.00 из 5.00 0 оценок
Заказать работу

Базовые понятия.


____Что такое FPGA? Это микросхемы ПЛИС, выполненные, например, по технологии FPGA (Field Programmable Gate Array), представляющие собой логические устройства, содержащие двумерный массив универсальных логических ячеек и программируемых переключателей. Это если упрощённо, так как в каждом семействе микросхем ПЛИС имеются свои особенности, которые мы естественно детально рассмотрим. Логические ячейки конфигурируются так, чтобы они выполняли необходимые элементарные функции, а программируемые переключатели осуществляют требуемое межсоединение логических ячеек. Проект, требующий разработки, может быть реализован с помощью определения функций каждой логической ячейки и выборочной установки каждого программируемого переключателя. В архитектуру данных интегральных микросхем включено также огромное многообразие аппаратных блоков, таких как DSP-ядра, блоки памяти большой ёмкости, процессорные и сопроцессорные ядра, а также различные интерфейсные модули. Данные интегральные микросхемы также могут работать на относительно высоких частотах, что позволяет использовать их в самых передовых разработках. FPGA, однако, теряют свою конфигурацию при отключении питания, что приводит к необходимости применения внешней памяти.

 


FPGA занимают промежуточное положение между сравнительно простыми CPLD и сложными ASIC. Их функциональность может быть задана достаточно быстро, без применения сложного технологического оборудования. Они могут содержать миллионы логических вентилей и, следовательно, реализовывать чрезвычайно сложные функции, которые изначально могли быть реализованы только с помощью ASIC. Данное положение FPGA позволяет использовать их в ряде важных технических решений, таких как:
* Прототипирование ASIC. Данное решение позволяет оценить работу разрабатываемой микросхемы в реальных условиях, а также в сотни раз сократить время моделирования при ее тестировании;
* Создание конечных изделий для небольших рынков. Вследствие того, что стоимость FPGA существенно меньше стоимости разработки ASIC, для небольших партий изделий данное решение оказывается единственным возможным.
* Создание специфических сопроцессоров для работы в составе системы совместно с ведущим процессором. Данное решение используется как аппаратное ускорение программных алгоритмов, вследствие возможности распараллеливания вычислительной задачи;
* Цифровая обработка сигналов. Современные FPGA содержат аппаратные DSP-ядра (Digital Signal Processing), что в сочетании с большими объемами внутренней оперативной памяти и возможностью использования дополнительных логических функций дает в ряде случаев преимущества над традиционными подходами, которые предполагают использование специально разработанных DSP-процессоров;
* Физический уровень передачи данных. FPGA используются как связующее звено, выполняющее функцию интерфейса, что в сочетании с аппаратными высокоскоростными приемопередатчиками позволяет реализовывать сетевые и коммуникационные функции в одном устройстве.

 

Основные понятия.


Интерфейс — описывает наше с вами устройство, как черный ящик с входами и выходами, т. е. главная его задача показать какие входы и выходы есть у нашего устройства для связи с внешним миром.

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

* поведенческим стилем(описывается алгоритм работы устройства);
* структурным стилем(описывается структура устройства).

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

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

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

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

Атрибуты — это значения(характеристики), связанные с какими-либо объектами языка. Например типами, сигналами, переменными и т. д.

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

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

Краткий обзор.


Микросхемы ПЛИС серии Spartan являются развитием базовой серии XC4000 (семейства XC4000E, XC4000XL и XC4000XLA). На определённом этапе развития архитектур микросхем ПЛИС оказалось, что можно пойти как по пути реализации наиболее производительных технических решений, так и по пути максимального облегчения и удешевления выпускаемых микросхем с сохранением их основных функций. Подобное разделение и привело к появлению двух параллельно развиваемых семейств: высокопроизводительных hi-end FPGA серии Virtex и более дешёвой серии Spartan, которая позиционируется как замена специализированным микросхемам в мелких партиях изделий.
Первое семейство данной серии называлось собственно Spartan и состояло из 5 устройств ёмкостью от 5 до 40 тыс. эквивалентных логических вентилей (максимум 1862 логические ячейки). Примерно в то же время было выпущено семейство SpartanXL. Отличие между этими семействами заключается в используемом напряжении питания: 5В у Spartan и 3,3В у SpartanXL, которая, тем не менее, допускает работу с 5-вольтовыми устройствами. Архитектура этих семейств базировалась на XC4000, однако сделанные изменения наглядно демонстрировали подход, выбранный Xilinx относительно данной серии. Функциональные возможности логических ячеек были несколько урезаны, однако в общую структуру ПЛИС был внесён ряд дополнений, улучшающих производительность проектов в несложных задачах. В частности, было увеличено количество трассировочных ресурсов внутри матрицы логических ячеек, добавлены специальные трассировочные линии VersaRing, существенно облегчающие подключение матрицы ячеек к выводам ПЛИС, улучшена производительность цепей быстрого переноса. С точки зрения разработчика введённые ограничения прежде всего коснулись одновременного использования входов асинхронного сброса и установки для триггеров логических ячеек. В ячейках в числе прочего был оставлен только один вход асинхронного управления триггером, который мог, впрочем, реализовывать любую из этих функций. Однако в целом архитектура получилась довольно удачной, большинство распространённых схемных решений реализовывалось тем же объёмом ресурсов, что и в XC4000, но общая стоимость новых ПЛИС того же объёма оказалась существенно ниже.
Благодаря относительно низкой для ПЛИС того времени стоимости семейство Spartan сыграло существенную роль в распространении данной технологии. Однако в настоящий момент данные устройства относятся к морально устаревшим. Кроме того, необходимо пояснить ещё один довольно важный момент, связанный с этими семействами микросхем ПЛИС. В 2002 году состоялась смена поколений САПР фирмы Xilinx - на смену пакету Xilinx Foundation Series пришёл САПР Integrated Software Environment. Строго говоря, версия 4.1 содержала как очередную версию Foundation Series, так и новый продукт ISE. Однако дальнейшая поддержка Foundation Series была прекращена. Переход на новую САПР вызвал так же и переход на новый маршрут проектирования микросхем ПЛИС. Если предыдущая линия САПР для внутреннего представления проекта ориентировалась на формат edif, то САПР ISE использует в качестве основного движка язык описания аппаратуры (HDL). Для такого перехода оказалось необходимым переработать файлы описания ПЛИС, подготовив их к работе с новым маршрутом проектирования. При этом семейства Spartan и SpartanXL (как и более ранние FPGA) в число поддерживаемых новой САПР не попали. Фирма Xilinx официально рекомендует использовать для создания проектов для этих семейств ранние версии САПР Xilinx Foundation Series.

 

Базовые понятия.


____Что такое FPGA? Это микросхемы ПЛИС, выполненные, например, по технологии FPGA (Field Programmable Gate Array), представляющие собой логические устройства, содержащие двумерный массив универсальных логических ячеек и программируемых переключателей. Это если упрощённо, так как в каждом семействе микросхем ПЛИС имеются свои особенности, которые мы естественно детально рассмотрим. Логические ячейки конфигурируются так, чтобы они выполняли необходимые элементарные функции, а программируемые переключатели осуществляют требуемое межсоединение логических ячеек. Проект, требующий разработки, может быть реализован с помощью определения функций каждой логической ячейки и выборочной установки каждого программируемого переключателя. В архитектуру данных интегральных микросхем включено также огромное многообразие аппаратных блоков, таких как DSP-ядра, блоки памяти большой ёмкости, процессорные и сопроцессорные ядра, а также различные интерфейсные модули. Данные интегральные микросхемы также могут работать на относительно высоких частотах, что позволяет использовать их в самых передовых разработках. FPGA, однако, теряют свою конфигурацию при отключении питания, что приводит к необходимости применения внешней памяти.

 


FPGA занимают промежуточное положение между сравнительно простыми CPLD и сложными ASIC. Их функциональность может быть задана достаточно быстро, без применения сложного технологического оборудования. Они могут содержать миллионы логических вентилей и, следовательно, реализовывать чрезвычайно сложные функции, которые изначально могли быть реализованы только с помощью ASIC. Данное положение FPGA позволяет использовать их в ряде важных технических решений, таких как:
* Прототипирование ASIC. Данное решение позволяет оценить работу разрабатываемой микросхемы в реальных условиях, а также в сотни раз сократить время моделирования при ее тестировании;
* Создание конечных изделий для небольших рынков. Вследствие того, что стоимость FPGA существенно меньше стоимости разработки ASIC, для небольших партий изделий данное решение оказывается единственным возможным.
* Создание специфических сопроцессоров для работы в составе системы совместно с ведущим процессором. Данное решение используется как аппаратное ускорение программных алгоритмов, вследствие возможности распараллеливания вычислительной задачи;
* Цифровая обработка сигналов. Современные FPGA содержат аппаратные DSP-ядра (Digital Signal Processing), что в сочетании с большими объемами внутренней оперативной памяти и возможностью использования дополнительных логических функций дает в ряде случаев преимущества над традиционными подходами, которые предполагают использование специально разработанных DSP-процессоров;
* Физический уровень передачи данных. FPGA используются как связующее звено, выполняющее функцию интерфейса, что в сочетании с аппаратными высокоскоростными приемопередатчиками позволяет реализовывать сетевые и коммуникационные функции в одном устройстве.

 

Принципиальная структура FPGA.


Принципиальная структура FPGA устройства показана на рисунке выше. Как видно из рисунка, структурно, FPGA состоит из следующих компонент:
* Logic Cell. Логическая ячейка обычно содержит небольшие комбинационные схемы с перестраиваемой конфигурацией и один или несколько триггеров D-типа;
* Macro Cell. Макро ячейка представляет из себя некоторый законченный физический блок, дополняющий базовый функционал FPGA. Т.е. Блок спроектированный и изготовленный на транзисторном уровне. Обычно используют макро ячейки, содержащие блоки памяти, комбинационные умножители, схемы управления временем, периферийные схемы. Продвинутые FPGA устройства могут даже содержать одно или несколько готовых процессорных ядер;
* S. Представляет собой программируемый переключатель.

Логическая ячейка может быть сконфигурирована таким образом, чтобы выполнять элементарную функцию, а программируемый переключатель может быть выбран, чтобы осуществлять межсоединения среди логических ячеек. Выбранный проект (проект, требующий разработки) может быть реализован с помощью определения функций каждой логической ячейки и выборочной установки каждого программируемого переключателя. Результатом проектирования цифрового устройства для FPGA как раз и является файл, содержащий конфигурацию некоторого количества логических ячеек и межсоединений, реализующих требуемое поведение. На последнем этапе проектирования данный файл используют для конфигурации некоторой целевой FPGA. Поскольку процесс конфигурации выполняют чаще всего в «полевых условиях», нежели чем на заводе, то и устройство получило название: программируемое в полевых условиях (field-programmable).


Основные понятия.


Интерфейс — описывает наше с вами устройство, как черный ящик с входами и выходами, т. е. главная его задача показать какие входы и выходы есть у нашего устройства для связи с внешним миром.

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

* поведенческим стилем(описывается алгоритм работы устройства);
* структурным стилем(описывается структура устройства).

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

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

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

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

Атрибуты — это значения(характеристики), связанные с какими-либо объектами языка. Например типами, сигналами, переменными и т. д.

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

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


Поделиться с друзьями:

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

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

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.018 с.