Как выбрать подходящую ПЛИС

    Первоисточник

    Программируемые логические интегральные схемы (ПЛИС) типа FPGA (Field Programmable Logic Array) — очень интересное средство разработки. Они используются для замены специализированных интегральных схем (заказных СБИС, ASIC), например цифровых приемников, универсальных программируемых процессоров или процессоров цифровой обработки сигналов (DSP). Хотя схемы с программируемой логикой применяются на протяжении многих лет, FPGA последнего поколения стали еще более функционально-сложными и все чаще используются при разработке встроенных приложений (встроенных систем). Каждое новое поколение FPGA показывает все более высокие скорости, большую степень интеграции, увеличенный объем памяти и большее удобство интерфейсов. Для того чтобы новая продукция имела успех, необходимо хорошо знать характеристики доступных блоков, ясно представлять тенденции развития рынка прикладных систем и понимать, как наиболее эффективно использовать возможности FPGA в этих системах.

    Семейство ПЛИС (ПВМ ) Virtex-4 компании Xilinx Чтобы проиллюстрировать диапазон ресурсов FPGA, доступных в настоящее время пользователям, рассмотрим семейство Virtex-4 компании Xilinx. В отличие от предшествующего семейства Virtex-II Pro, Xilinx объединила семнадцать предлагаемых FPGA семейства Virtex-4 в три группы, каждая из которых отвечает различным требованиям. Перед рассмотрением особенностей данных групп кратко обсудим основные виды ресурсов FPGA и их функции. Логические ресурсы организованы в «слайсы» (slices — слои), состоящие из таблицы перекодировки LUT (lookup- table), мультиплексоров, блока булевой логики и блока суммирования/ вычитания с формированием цепи переноса. Четыре слайса образуют конфигурируемый логический блок CLB (configurable logic block), который является базовым элементом для создания конечных автоматов, комбинационной логики, контроллеров и последовательных схем. Память в последнем поколении FPGA стала более гибкой и реализуется в различных вариантах. Распределенная память используется для реализации таблиц перекодировки (LUT), очередей FIFO, одно- и двухпортовой памяти ОЗУ (RAM) и сдвиговых регистров. Что касается блоков памяти большего объема, то имеющиеся в составе FPGA блоки ОЗУ емкостью по 18 Кбит могут использоваться для создания буферов FIFO и кольцевых буферов большой глубины, кэш- памяти значительного объема, а также в качестве одно- и двухпортовой памяти ОЗУ.

    XtremeDSP Одно из наиболее выгодных преимуществ семейства Virtex-4 — новый слайс XtremeDSP. Следуя требованиям рынка в создании более производительных устройств цифровой обработки сигналов, компания Xilinx добавила к популярному аппаратному умножителю 18 ? 18, впервые представленному в серии Virtex-II, 48-битный блок суммирования/ вычитания, способный выполнять функции регистра-аккумулятора.
    Благодаря использованию компактной специализированной логики, этот блок может работать на частотах до 500 МГц и с такой же скоростью передавать 48-битные результаты между слайсами DSP. Разрядность в 48 бит позволяет этому быстродействующему аппаратно реализованному блоку с фиксированной точкой конкурировать по точности с процессорами, выполняющими обработку данных с плавающей точкой. Это достигается за счет того, что получаемые 36-битные результаты умножения передаются между каскадно включенными слоями FPGA с большим запасом разрядности (избыточностью). Каждый DSP-слайс реализует 40 динамически задаваемых логических и арифметических режимов функционирования. При этом режим можно менять прямо в процессе работы без необходимости перепрограммирования FPGA. Таким образом, каждый слайс XtremeDSP работает как миниатюрный DSP-процессор, и в одной FPGA реализуется целых 512 таких процессоров!

    Активная нагрузка XCITE Соединение FPGA с обширным набором внешних аппаратных блоков обеспечивается при помощи 20 различных настраиваемых пользователем стандартных интерфейсов, определенных для входных/выходных контактов. Новым в семействе Virtex-4 является возможность программирования характеристик внешних выводов (функция XCITE). При этом не только программируются характеристики внешних выводов FPGA , что обеспечивает возможность радикального уменьшения количества внешних дискретных резисторов, но и реализуется динамическая установка выходного импеданса, что позволяет изменять нагрузочные характеристики выходов в зависимости от изменения выполняемых функций, внешней температуры и типа подключаемых устройств. В состав интерфейсов, синхронизируемых источником передачи (протокол SST), входят блоки параллельно-последовательного/ последовательно-параллельного преобразования (сериализаторы/десериализаторы), которые выравнивают скорости передачи данных на «быстрых» внешних шинах данных (до 1 ГГц) и более «медленных» многоразрядных внутренних шинах FPGA, обеспечивая снижение энергопотребления. Реализация интерфейса для большинства типов быстрой внешней памяти, включая DDR и QDR, упрощается благодаря программируемому генератору тактовых импульсов и схеме расфазировки данных, которые нормируют необходимое время установки и поддержания сигналов.

    Распределение ресурсов FPGA Описанные элементы входят в состав всех FPGA семейства Virtex-4, но их количество различается в зависимости от того, к какой из трех групп принадлежит данный прибор. На рисунке 1 показано относительное соотношение ресурсов для самых «больших» FPGA в каждом из трех классов. Приборы класса LX содержат наибольшее количество логических блоков и элементов ввода/вывода, класс SX предназначен для обработки цифровой информации, т.к. имеет 512 XtremeDSP-слайсов, а класс FX характеризуется большим разнообразием блоков памяти и наличием трех других важных групп элементов, присутствующих только в нем. Первая группа — это встроенные процессорные ядра IBM 405 PowerPC, которые могут использоваться как локальные микроконтроллеры для создания полноценных систем на кристалле (СнК). Они часто исключают необходимость в использовании внешнего центрального процессора, выполняющего функции высокоуровневого управления (супервизора). Вторая группа ресурсов — это набор последовательных «гигабитных» приемопередатчиков, дополненных блоками параллельно-последовательного/ последовательно-параллельного преобразования, которые позволяют обеспечить частоту передачи данных до 10 ГГц. Конфигурируя эти интерфейсы, реализованные в виде доступных IP-ядер, на кристалле FPGA, можно обеспечить поддержку популярных высокоскоростных последовательных интерфейсов и создавать последовательные коммуникационные структуры (switching fabrics), включая Serial RapidIO, PCI Express, FibreChannel, SATA, SONET и многие другие. Третья группа — это уникальный для FX-класса набор совместимых со контроллеров доступа к Ethernet (MAC). Они поддерживают протоколы передачи/приема данных 10/100/1000 Base-x для доступа к периферийным системам и особенно полезны для встроенных PowerPC-процессоров в качестве стандартных каналов связи с «внешним миром».

    Рис. 1. Распределение ресурсов ПЛИС семейства Xilinx Virtex-4 FPGA стандартом 802.3