Эволюция плис серии Virtex

Компоненты и технологии, № 1'2005

Эволюция ПЛИС серии Virtex

Устройства программируемой логики с архитектурой FPGA были впервые представлены американской фирмой Xilinx в 1985 году. За почти 20-летнюю историю своего существования эти микросхемы прошли длительный путь развития, превратившись в итоге из экзотического и редкого инструмента в мощное средство быстрой разработки оригинальных цифровых устройств.

Илья Тарасов, к. т. н.

file@ks.ru

Краткое описание ПЛИС Virtex

В целом ряде обзоров отмечается, что характеристики ПЛИС за все время их существования улучшились в сотни и даже в тысячи раз. Резкое падение цен и наличие бесплатных средств разработки (таких как ISE WebPack у Xilinx) делает ПЛИС весьма привлекательным продуктом для исследовательских и конструкторских работ, прототипирования новых устройств и даже выпуска мелких партий изделий. Сравнивая программируемую логику со специализированными устройствами, можно заметить, что в последнее время ценовой разрыв между этими классами микросхем существенно сократился, а технические характеристики последних семейств ПЛИС позволяют им успешно конкурировать со специализированными микроконтроллерами в целом ряде задач. Характерными преимуществами ПЛИС являются высокая производительность в задачах цифровой обработки сигналов, возможность построения параллельных вычислительных систем, реакция на события в реальном времени, а также использование встроенных процессорных ядер и блочной памяти.

Кроме того, дополнительные возможности, предоставляемые ПЛИС, могут и не иметь прямого материального выражения, но существенно улучшать какие-либо аспекты разработки, эксплуатации и сопровождения изделий. Например, возможность реконфигурирования ПЛИС означает, что в изделиях на базе программируемой логики может обновляться не только программная часть, но и аппаратная. Очевидным следствием этого является возможность расширения срока эксплуатации изделий путем смены конфигурации при ее моральном устаревании. Ориентация на языки описания аппаратуры (Hardware Description Languages, HDL) позволяет абстрагироваться от конкретного устройства и оперативно переносить разработанные проекты на новые семейства ПЛИС, в полной мере используя предоставляемые ими преимущества.

В конце 90-х годов основной линейкой FPGA среди продукции Xilinx была серия XC4000 (семейства XC4000E, XC4000XL и XC4000XLA). Архитектура XC4000 была довольно удачной, но оказалось, что в целом ряде проектов возможности стандартной логической ячейки ПЛИС используются далеко не пол-

ностью. Возникла естественная альтернатива — использовать дорогие устройства с максимальной производительностью и полным набором функциональных возможностей или, напротив, дешевые ПЛИС, обеспечивающие базовые функции, требующиеся для большинства типовых проектов. В результате в номенклатуре изделий Xilinx появились две серии FPGA, отвечающие этим двум направлениям. Стандартное недорогое решение представляет серия Spartan, тогда как наилучшие технические характеристики достигаются в серии Virtex. Обе эти серии развиваются параллельно, и на данный момент наиболее современными являются семейства Spartan-3 и Virtex-4.

Серия Virtex содержит несколько семейств. Базовое семейство называется собственно Virtex и включает в себя 9 ПЛИС объемом от 50 тыс. до 1 млн эквивалентных логических вентилей, выполненных по технологии 0,22 мкм. Напряжение питания ядра составляет 2,5 В, поддерживается большое количество электрических интерфейсов.

Следующее семейство носит название Virtex-E. В его составе также 9 устройств с емкостью от 50 тыс. до 2 млн вентилей. Это семейство выполнено с технологическими нормами 0,18 мкм.

К моменту появления Virtex-E уже стало понятно, что блочная память, расположенная на кристалле ПЛИС, является весьма ценным ресурсом. В ряде случаев ПЛИС может использоваться именно в качестве мощного контроллера высокопроизводительной двупортовой памяти. Надежность и помехоустойчивость внутренних программируемых соединений ПЛИС значительно выше, чем у печатных проводников, соединяющих ПЛИС с внешней памятью. Поэтому у Virtex-E объем блочной памяти был существенно увеличен. Особо высокий объем блочной памяти у семейства Virtex-EM (Extended Memory), в состав которого входят всего 2 микросхемы.

Отличия архитектуры семейств Virtex и Virtex-E не слишком существенны для разработчика. В действительности рекомендуется выбор более современных устройств Virtex-E — более современный техпроцесс означает более высокие рабочие частоты при меньшей стоимости ПЛИС.

Существенно измененной архитектурой обладают следующие семейства — Virtex-II и Virtex-II Pro, выполненные соответственно по техпроцессу

Компоненты и технологии, № 1'2005

0,15 и 0,13 мкм. Основным архитектурным отличием этих семейств являются переработанные блоки накристальной памяти. Вместо 4 кбит они имеют размер 18 кбит. Кроме того, в этих семействах впервые появились выделенные блоки умножения 18-разрядных независимых операндов, реализованные аппаратно. Число таких блоков соответствует числу блоков памяти, что существенно облегчает построение систем цифровой обработки сигналов. Если в предыдущих семействах Virtex устройство умножения занимало логические ячейки, то аппаратно реализованные умножители Virtex-II решили целый ряд проблем: освобождение логических ячеек, существенное увеличение производительности и получение значительно более предсказуемых временных характеристик проекта. Разумеется, в Virtex-II сохранилась возможность реализации устройств умножения на базе логических ячеек.

Тенденция добавления на кристалл аппаратно реализованных модулей очень ярко проявилась в семействе Virtex-II Pro. При схожей с Virtex-II архитектуре эти ПЛИС содержат аппаратно реализованные ядра процессора PowerPC-405 с тактовой частотой 300 МГц. Похожие решения можно найти среди продукции Atmel или Cypress, где матрица логических ячеек окружает 8-битное процессорное ядро, однако производительность 32-разрядного PowerPC существенно выше. Старшие устройства Virtex-II Pro (начиная ^2P20) содержат два таких процессора.

Кроме того, в семействе Virtex-II Pro появились высокоскоростные приемопередатчики RocketIO, обеспечивающие скорость до 3,125 Гбит/с. Введение этих устройств позволяет эффективно решать задачу обмена данными с ПЛИС, которая в принципе может обеспечить довольно большой их поток.

Наконец, с переходом к семейству Virtex-II Pro изменилась информация, содержащаяся в условном обозначении ПЛИС. Число, содержащееся в нем, для Virtex-II Pro означает уже не тысячи логических вентилей, а тысячи логических ячеек. Об этом необходимо также сказать несколько слов. Например, для устройств CPLD количество логических ячеек на кристалле позволяет однозначно определить его информационную емкость. Поэтому для ПЛИС CPLD в условном обозначении содержится именно эта информация: например, ПЛИС XC9536 содержит 36 ячеек.

Для ранних семейств FPGA в обозначение стало включаться количество эквивалентных логических вентилей в тысячах штук. Такая оценка отражала тот факт, что функциональные возможности различных семейств FPGA несколько разнились, и число логических ячеек, требующихся для реализации того или иного устройства, могло существенно различаться. Кроме того, блоки ввода-вывода FPGA также содержат устройства, которые могут быть запрограммированы разработчиком. Таким образом, каждой логической ячейке и блокам ввода-вывода было поставлено в соответствие некоторое количество логических вентилей. Полученная оценка емкости ПЛИС и входит в условное обозначение FPGA XC4000, Spartan и почти всех семейств Virtex.

Однако сравнение ПЛИС Virtex и Virtex-II показывает, что при одинаковом количестве логических вентилей Virtex-II имеет существенно меньше логических ячеек. Например, 27648 в XCV1000 против 5120 в XC2V1000! В чем же дело и не является ли оценка по числу логических вентилей завышенной? Ответ на этот вопрос кроется в существенном различии организации блочной памяти для этих семейств. Очевидно, что блочная память также должна быть учтена в оценке числа логических вентилей, а в устройствах Virtex-II ее существенно больше. Кроме того, в это семейство включены аппаратно реализованные умножители, которые также вносят существенный вклад в оценку по числу логических вентилей. Очевидно, что попытка реализации подобных систем в семействах Virtex/Virtex-E приведет к необходимости тратить логические ячейки. Поэтому, с одной стороны, приведенные оценки вполне адекватны, но с учетом существенно измененной архитектуры современных FPGA следовало бы приводить более подробную информацию о содержании программируемых ресурсов. Поэтому в обозначении Virtex-II Pro приводится количество логических ячеек в тысячах, а информацию о наличии выделенных ресурсов можно узнать отдельно (отметим, что объем блочной памяти и количество выделенных умножителей для этого семейства прямо пропорциональны числу логических ячеек).

Интересно отметить, что в среде разработчиков встречается мнение, что применение устройств Virtex-II Pro не оправдывается с экономической точки зрения, поскольку они содержат аппаратно реализованные процессорные ядра, которые в конкретном проекте могут не требоваться. Тем не менее, сравнение цен на ПЛИС Virtex-II и приблизительно аналогичные по характеристикам Virtex-II Pro показывает, что последние несколько дешевле при равных логических объемах, даже с учетом наличия процессоров на кристалле. В действительности площадь, занимаемая процессором и сопутствующими устройствами, невелика, и гораздо большее влияние на цену оказывает более современный техпроцесс. Приведенные ниже тесты показывают, что при тех же условиях ПЛИС Virtex-II Pro обеспечивают и более высокую производительность.

Сравнительный анализ серий Spartan и Virtex

Несмотря на прекрасные технические характеристики перечисленных ПЛИС, среди разработчиков аппаратуры большей популярностью пользуются устройства серии Spartan. Довольно часто их можно видеть в проектах типа «микроконтроллер + ПЛИС», в которых ПЛИС заменяет мелкую логику, реализует вспомогательные функции, но главное — обеспечивает определенный запас гибкости. Однако даже относительно дешевые ПЛИС Spartan заставляют разработчика принимать во внимание ряд особенностей:

1. Для инициализации ПЛИС требуют загрузки конфигурационной последовательности

после включения питания. Для этого на пла-

те необходимо поместить конфигурационное ПЗУ. Впрочем, младшие ПЛИС Spartan могут быть загружены и из внутренней памяти микроконтроллера.

2. Напряжение питания всех серий ПЛИС имеет постоянную тенденцию к снижению с каждым новым выпускаемым семейством. В частности, 5-вольтовое питание имело только базовое семейство Spartan. Наиболее популярные в последнее время Spartan-II требуют для питания ядра 2,5 В, а максимальное напряжение питания блоков ввода-вывода составляет 3,3 В. Однако это семейство допускает подключение 5-вольто-вых входных сигналов. Следующее семейство, Spartan-IIE, требует уже 1,8 В для питания ядра и не допускает подключение 5-вольтовых сигналов без токоограничивающих резисторов. По сравнению с единственным источником питания, который обычно требуется для схем на микроконтроллерах, необходимость введения двух дополнительных схем питания и токоограничивающих резисторов (для Spartan-IIE и Spartan-3), безусловно, создает дополнительные проблемы.

3. ПЛИС обычно используют корпуса с шагом выводов 0,5 мм, что повышает требования к качеству изготовления печатных плат. Конечно, установка корпусов типа QFP с таким шагом не представляет собой чрезмерно сложную задачу, но очевидно, что по сравнению с более простыми для монтажа корпусами недорогих микроконтроллеров ПЛИС создают определенные технологические сложности. Более того, старшие устройства всех семейств используют корпуса BGA, монтаж которых невозможен без специального технологического оборудования. Рассмотрим эти же вопросы, заменив серию

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

1. Загрузка конфигурации.

Функциональные возможности ПЛИС

Virtex ощутимо выше. Соответственно, для них требуется больший объем конфигурационных данных, и разместить его в памяти микроконтроллера вряд ли удастся. Поэтому наличие конфигурационного ПЗУ в проектах с этими ПЛИС практически обязательно.

2. Напряжение питания ядра составляет:

- 2,5 В для семейства Virtex;

- 1,8 В для семейства Virtex-E;

- 1,5 В для семейств Virtex-II и Virtex-II Pro;

- 1,2 В для семейства Virtex-4.

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

3. Корпуса типа QFP доступны для устройств Virtex/Virtex-E вплоть до 600 тыс. эквивалентных вентилей. ПЛИС семейств Virtex-II, Virtex-II Pro и Virtex-4 выпускаются только в корпусах BGA.

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

Компоненты и технологии, № 1'2005

9000000

8000000

fe 7000000

VO

ji"

I-

к

s

о

6000000 5000000 § 4000000 I 3000000 д 2000000 1000000 0

Рис. 1

20000

40000 60000 80000

Логические ячейки

100000 120000

- Virtex-E

- Virtex-ll

- Virtex-ll Pro

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

Что же получит разработчик, перейдя на устройства Virtex взамен аналогичных по характеристикам ПЛИС Spartan? Преимущества от такого перехода могут оказаться очень незначительными на фоне более высокой цены и дополнительных технологических проблем. К тому же далеко не во всех задачах различия между этими двумя сериями ПЛИС окажутся сколько-нибудь значимыми. Очевидно, что ответ следует искать, ориентируясь на специализированные аппаратные ресурсы, в большом количестве имеющиеся в устройствах Virtex. Представленная на рис. 1 диаграмма иллюстрирует, как при переходе от Virtex-E к Virtex-II и Virtex-II Pro соотношение между объемом блочной памяти и числом логических ячеек существенно увеличилось.

Характеристики семейства Virtex-4

Семейство Virtex-4 было анонсировано фирмой Xilinx в июне 2004 года, и нужно сказать, что новый продукт заставляет в какой-то мере пересмотреть позиции в отношении ПЛИС вообще и высокопроизводительных ПЛИС в частности. Прежде всего, 90-нанометровый техпроцесс (который ранее был использован в ПЛИС Spartan-3, доступных уже с начала 2004 года) позволил в полной мере использовать возможности самой современной производственной базы. Это означает как высокие частоты, так и большую плотность компонентов на кристалле. Кроме того, использование 300-миллиметровых пластин позволило Xilinx существенно уменьшить цены на новое семейство (от $39 за штуку в партиях). Повышение максимальной тактовой частоты, увеличение логического объема и снижение цены вообще

Logic

Memory

DSP Blocks

Processors

к

Рис. 2

является обычным для производителей ПЛИС, и в случае Virtex-4 позволяет по-новому взглянуть на перспективы использования данного семейства. В обзоре Xilinx, посвященному Virtex-4, указывается, что за последнее десятилетие объем ПЛИС увеличился в 250 раз, рабочие частоты — в 25, пропускная способность памяти — в 800, а пропускная способность внешних интерфейсов — в 1000. Одновременно с этим нормализованная стоимость ПЛИС уменьшилась в 300 раз.

Немаловажным нововведением является разделение нового семейства на 3 подгруппы. Подгруппа LX ориентирована на преимущественное использование в проектах логических ячеек (хотя блоки цифровой обработки сигналов имеются в этих ПЛИС в достаточном количестве), устройства SX предназначены для обработки сигналов и предоставляют очень большое для ПЛИС количество блоков DSP. Наконец, к подгруппе FX относятся «полнофункциональные» (Full-featured) ПЛИС, имеющие на кристалле процессорные ядра PowerPC, аналогичные используемым в Virtex-II Pro. Однако дополнительные устройства, имеющиеся только в Virtex-4 FX, заслуживают отдельного упоминания. Прежде всего, это модули Ethernet со скоростями 10/100/1000 Мбит/с. Плюсы размещения этих модулей на кристалле очевидны — обеспечивается высокая скорость обмена (что тем более актуально для ПЛИС большого объема, интенсивно обрабатывающих потоки данных), уменьшается количество внешних компонентов, повышается общая надежность системы. Наконец, добавлено устройство, которое можно считать знаковым в мире FPGA — аналого-цифровой преобразователь. Конечно, программируемые аналоговые устройства существуют уже достаточно давно (например, среди продукции фирм Cypress и Lattice), однако помещение АЦП на кристалл большой логической емкости открывает совершенно иные перспективы. Следует отметить, что блоки АЦП пока размещаются только в старших устройствах Virtex-4 FX, имеют разрядность 10 бит и скорость преобразования 200 kSps. Таким образом, эти АЦП подходят больше для мониторинга параметров системы, чем для сколько-нибудь производительных и точных измерений. Можно за-

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

Соотношение между имеющимися ресурсами можно проиллюстрировать материалами с сайта Xilinx, где наглядно показывается принцип выбора соотношения ресурсов в ПЛИС Virtex-4 (рис. 2).

Концепция «системы-на-кристалле» имеет очень важное преимущество с точки зрения быстрой разработки устройств. Давно известно, что технология ПЛИС обеспечивает существенное сокращение сроков разработки и внесения изменений в готовый проект за счет сквозного маршрута проектирования и программирования устройств. В проектах типа «микроконтроллер + ПЛИС + память + аналоговые устройства» этим обеспечивалось ускорение проектирования по крайней мере одного из компонентов. Однако современные ПЛИС Virtex уже сейчас обеспечивают размещение на кристалле процессора, матрицы программируемых ячеек и памяти достаточно большого объема. Таким образом, в рамках одного устройства оказывается возможным реализовать практически всю цифровую часть проекта.

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

Характеристики ПЛИС Virtex-4 приведены в таблице 1.

Оценка производительности ПЛИС

Оценка производительности ПЛИС — сложный и весьма неоднозначный процесс. Поэтому указать некие параметры в качестве объективных и исчерпывающих вряд ли возможно. Реальные результаты трассировки проектов зависят от самых различных факторов, включающих как особенности самого проекта, так и установки программ синтеза и размещения. Неоднозначны также и оценки рабочей частоты проекта, производимые средствами САПР на разных этапах. Конечно, задержки, определенные после размещения проекта в конкретный кристалл с учетом назначения его выводов, гораздо ближе к реальным характеристикам. Тем не менее, в качестве первого, поверхностного приближения, можно использовать и значение рабочей частоты, определяемое на этапе синтеза (Synthesize) проекта.

В качестве тестов производительности предлагаются следующие проекты:

1) 16-разрядный счетчик;

2) модуль «умножение с накоплением»;

3) простое арифметико-логическое устройство.

Эти проекты были реализованы в САПР

Xilinx Foundation ISE 6.3i для ПЛИС семейств Virtex, Virtex-E, Virtex-II, Virtex-II Pro и Virtex-4 всех доступных градаций скорости (для семейства Virtex-4 пока доступны только две градации скорости). В каждом семействе выбирался младший кристалл.

Компоненты и технологии, № 1'2005

Исходный текст на VHDL для первого теста:

таблица 1.

library IEEE;

use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity test1_c16 is

Port ( clk : in std_logic;

q : inout std_logic_vector(15 downto 0)); end test1_c16;

architecture Behavioral of test1_c16 is begin

process

begin

if clk’event and clk = ‘1’ then

q <= q + 1;

end if; end process; end Behavioral;

Данный тест является в большой степени синтетическим. В реальных проектах рабочая частота вряд ли будет определяться быстродействием подобного устройства, однако очень часто именно частоту 16-разрядного счетчика указывают как показатель быстродействия ПЛИС в целом. Приведенный пример позволяет оценить эффективность локальных связей и цепей быстрого переноса, которые используются при организации многоразрядных счетчиков. Результаты, полученные после синтеза, представлены на рис. 3.

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

Производительность ПЛИС в задачах цифровой обработки сигналов показывает второй тест, реализующий операцию «умножение с накоплением».

library IEEE;

use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity test2_mac16 is Port ( clk : in std_logic;

a : in std_logic_vector(15 downto 0); b : in std_logic_vector(15 downto 0); sum : inout std_logic_vector(47 downto 0); res : in std_logic); end test2_mac16;

architecture Behavioral of test2_mac16 is begin

process

begin

if clk’event and clk = ‘1’ then if res = ‘1’

then sum <= conv_std_logic_vector(0,48); else sum <= sum + a*b; end if; end if; end process; end Behavioral;

Результаты этого теста довольно интересны. Очевиден рост частоты при переходе к более современному семейству. Тем не менее, линейность этого роста не нарушается при переходе от семейств Virtex/Virtex-E, у которых данный модуль реализован на логических ячейках, к Virtex-II и выше, использующих выделенные аппаратные ресурсы.

ПЛИС Логические ячейки Распределенная память, кбит Блочная память, кбит (блоков) Блоки XtremeDSP Максимальное число программируемых выводов

XC4VLX15 13284 96 864 (48) 32 32G

XC4VLX25 24192 168 1296 (72) 48 448

XC4VLX4G 41472 288 1728 (96) 64 64G

XC4VLX6G 599G4 416 288G (16G) 64 64G

XC4VLX8G 8G64G 56G 36GG (2GG) 8G 768

XC4VLX1GG 11G592 768 432G (24G) 96 96G

XC4VLX16G 152G64 1G56 5184 (288) 96 96G

XC4VLX2GG 2GG448 1392 6G48 (336) 96 96G

XC4VSX25 23G4G 16G 23G4 (128) 128 32G

XC4VSX35 3456G 24G 3456 (192) 192 448

XC4VSX55 55296 384 576G (32G) 512 64G

XC4VFX12 12312 86 648 (36) 32 32G

XC4VFX2G 19224 134 1224 (68) 32 32G

XC4VFX4G 419G4 243 2592 (144) 48 448

XC4VFX6G 5688G 395 4176 (232) 128 576

XC4VFX1GG 94896 659 6768 (376) 16G 768

XC4VFX14G 142128 987 9936 (552) 192 896

Примечание: в настоящий момент для заказа доступны устройства LX25, LX60 и SX35.

Virtex

Virtex-E

Virtex-

Virtex-ll Pro

Virtex-4

50 100 150 200 250

Частота, МГц

300

Рис. 3

Virtex-ll Pro

Virtex-4

350

400

Рис. 4

150 Частота, МГц

250

300

Кроме того, для семейства Virtex-4 с помощью выделенных ресурсов оказался реализован и 48-разрядный аккумулятор. Интересно заметить также, что вместо заявленных 500 МГц

для блоков Xtreme DSP тактовые частоты Virtex-4 составляют 230-250 МГц. Однако эти значения всего лишь наглядно иллюстрируют синтетический характер тестов — при оп-

Компоненты и технологии, № 1'2005

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

Третий тест реализует арифметико-логическое устройство с минимальным набором операций, задаваемых кодом сшА

library IEEE;

use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity alu is

Port ( clk і in std_logic;

a і in std_logic_vector(15 downto О); b і in std_logic_vector(15 downto О); cmd і in std_logic_vector(7 downto О); result і out std_logic_vector(15 downto О)); end alu;

architecture Behavioral of alu is begin

process

begin

if clk’event and clk = ‘1’ then case conv_integer(cmd) is when О => result <= a + b; when 1 => result <= a — b; when 2 => result <= a and b; when 3 => result <= a or b; when 4 => result <= a xor b; when 5 => result <= a(14 downto О) & ‘О’; when 6 => result <= ‘О’ & a(15 downto 1); when others => null; end case; end if; end process; end Behavioral;

Отставание Virtex-4 от Virtex-II Pro в этом тесте выглядит несколько странно. От более современного семейства логично было бы ожидать повышения производительности на подавляющем большинстве тестов. Однако, как уже упоминалось, на результаты оценки производительности средствами САПР оказывает влияние множество факторов, в числе которых и функциональные возможности логических ячеек ПЛИС (несколько разные для сравниваемых семейств), эффективность алгоритмов синтеза и оценки рабочей частоты. Необходимо особо отметить, что приведенные характеристики соответствуют установ-

кам САПР по умолчанию, что наглядно иллюстрирует необходимость тонкой настройки алгоритмов синтеза и трассировки для получения высокой производительности в high-end семействах FPGA.

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

Во всех приведенных тестах присутствуют только две градации скорости семейства Virtex-4. На данный момент САПР ISE 6.3i не содержит файлов с описанием наиболее быстрого варианта этих ПЛИС.

Применение ПЛИС Virtex

Как же может выглядеть система, в которой применение устройств Virtex будет оправдано? Разумеется, сделать сколько-нибудь исчерпывающий анализ невозможно, однако можно указать на некоторые области, в которых высокие технические характеристики этих ПЛИС, особенно нового семейства Virtex-4, окажутся весьма своевременными. Прежде всего, ПЛИС Virtex позволяют добиться более высоких рабочих частот проекта, чем аналогичные по технологии изготовления устройства серии Spartan. Это преимущество очевидно для случаев, когда необходимо добиться максимальной тактовой частоты при разумных затратах (по сравнению, например, с изготовлением специализированной микросхемы). Однако кроме чисто количественных характеристик, устройства Virtex, обладающие улучшенной функциональностью, при ее грамотном использовании могут существенно изменить облик разрабатываемого изделия. Рассмотрим, какие качественные изменения могут следовать из архитектурных различий между двумя наиболее популярными ПЛИС фирмы Xilinx.

1. Блоки XtremeDSP

Появление встроенных умножителей в составе Virtex-II существенно повысило привлекательность использования ПЛИС в устройствах цифровой обработки сигналов. ПЛИС и ранее могли довольно успешно конкурировать даже

Рис. 5

Частота, МГц

со специализированными DSP-процессорами за счет размещения на одном кристалле множества блоков «умножение с накоплением», реализуемых на базе логических ячеек. Такое решение оставляло незадействованной существенную часть аппаратных ресурсов кристалла, а топология программируемых соединений получалась чрезмерно сложной. Помещение же на кристалл высокопроизводительных специализированных модулей существенно улучшило сразу несколько аспектов. Прежде всего, специализированный умножитель обеспечивает более высокую производительность. Далее, его размещение на кристалле относительно других элементов позволяет весьма эффективно реализовывать умножение входного цифрового сигнала на массив коэффициентов, хранящихся в блочной памяти ПЛИС, что также упрощает реализацию алгоритмов DSP. Наконец, что также немаловажно, выделение умножителей в отдельные блоки освободило логические ячейки для других задач и одновременно резко упростило внутреннюю топологию программируемых соединений при реализации умножителей. Выделенные умножители имеются и в ПЛИС Spartan-3, но их удельный вес там несколько ниже.

В семействе Virtex-4 блоки умножителей превратились в полноценные блоки «умножение с накоплением» (Multiply&Accumulate, MAC). Кроме умножителя независимых 18-разрядных операндов такой блок содержит и 48-разрядный аккумулятор. Разумеется, его можно и не использовать. Тактовая частота такого блока заявлена на уровне 500 МГц, и взгляд на характеристики подсемейства SX дает в итоге весьма впечатляющую картину: пиковая производительность старшего кристалла составляет 256 GMAC в секунду! Следует сделать оговорку, что далеко не все реализации алгоритмов обработки сигналов будут иметь подобные характеристики. Действительно, в микросхеме с числом программируемых выводов не более тысячи невозможно реализовать 512 устройств умножения, работающих с независимыми операндами. Однако для ряда задач, особенно использующих параллельную обработку одной и той же цифровой последовательности, выигрыш в производительности по сравнению с сигнальными процессорами может оказаться весьма существенным. К этим задачам можно отнести спектральный анализ на основе дискретного или быстрого преобразования Фурье, вейвлет-анализ, многоканальную цифровую фильтрацию, аппаратную реализацию нейросетевых алгоритмов, некоторые разновидности метода конечных элементов. Следует отметить, что целый ряд вычислительных задач в области цифровой обработки сигналов может быть сведен к операции «умножение с накоплением», которая реализуется в ПЛИС весьма эффективно.

2. Аппаратно реализованные процессорные ядра

Описание процессорных ядер с помощью HDL (так называемые софт-процессоры) в последнее время получает все большее распространение. Действительно, объемы современных ПЛИС и высокие тактовые частоты делают

Компоненты и технологии, № 1'2005

весьма привлекательным добавление в проект управляющего устройства — функциональной копии ядра одного из стандартных микроконтроллеров либо специализированного процессорного устройства, оптимизированного для конкретной задачи. При этом разработчик освобождается от необходимости использовать для описания проекта только HDL, поскольку часть функций устройства может выполняться программно. Описание этих функций на более подходящих, чем HDL, языках программирования существенно облегчает задачу разработчика и ускоряет процесс разработки в целом. В настоящее время имеется довольно большая библиотека IP-ядер, описывающих самые разнообразные микропроцессорные устройства. Фирмой Xilinx предлагаются также софт-процессоры MicroBlaze и PicoBlaze, которые уже были подробно описаны в журнале в 2002 — 2004 годах.

С другой стороны, очевидно, что софт-процессоры неизбежно уступают своим аппаратно реализованным аналогам по быстродействию и стоимости. Действительно, трудно ожидать от универсальной системы успешной конкуренции со специализированными массово выпускаемыми изделиями. Однако размещение на кристалле Virtex-II Pro аппаратно реализованных ядер достаточно мощного процессора PowerPC кардинально меняет эту картину. Подключить процессорное ядро к программируемой матрице ПЛИС с помощью стандартных САПР гораздо проще, чем реализовать подобную систему на дискретных компонентах. В то же время, рабочая частота этого процессора существенно выше, чем, например, у MicroBlaze (300 МГц вместо 125).

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

Реализация системы на кристалле привлекательна еще по одной причине. Как было показано в приведенных выше тестах, рабочие частоты ПЛИС существенно падают, если сигналы необходимо вывести за пределы микросхемы. Например, чрезвычайно сложно достичь скорости передачи 500 МГц по внешним печатным проводникам, однако именно на такой частоте способны работать блоки XTremeDSP с внутренними сигналами ПЛИС. Следовательно, выполнение основной части вычислений внутри ПЛИС позволит достичь максимальных тактовых частот проекта.

Xilinx рекомендует САПР EDK (Embedded Development Kit), который позволяет быстро выполнить проектирование системы на кристалле или цифровой системы на базе процессоров PowerPC, MicroBlaze или PicoBlaze. Процессорное ядро PicoBlaze в настоящее время предлагается бесплатно.

3. Аппаратно реализованные приемопередатчики и контроллеры Ethernet

Увеличение производительности ПЛИС, как ни парадоксально, может затруднить эффективную обработку данных. В самом деле, пиковые производительности ПЛИС очень часто приводятся из наиболее общих и оптимистичных соображений — количество блоков

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

и, главное, доставки в ПЛИС и из нее такого объема данных обычно не учитываются. В то же время даже младшие ПЛИС Virtex вполне способны полностью загрузить шину PCI 64 бит I 66 МГц. Поэтому проблему передачи данных нельзя игнорировать. Ее решение существенно облегчилось добавлением к Virtex-II Pro высокоскоростных последовательных приемопередатчиков RocketIO. Эти модули способны работать в нескольких режимах

В устройствах Virtex-4FX в дополнение к ним будут присутствовать и полноценные Ethernet-контроллеры со скоростями передачи 1ОІ1ООІ 1ООО Мбит/с. Четыре таких контроллера в стар-

ших ПЛИС открывают самые разные перспективы их использования.

Конечно, подключение к Ethernet можно произвести и с помощью внешнего устройства, и даже путем реализации его функций с помощью логических ячеек. Эти способы доступны и для устройств Spartan (как и организация интерфейса с любым внешним контроллером). Однако аппаратный блок, полностью поддержанный средствами САПР, к тому же реализующий широко распространенную и весьма актуальную функцию, гораздо удобнее при разработке и дополнительно освобождает логические ячейки ПЛИС для других операций.

4. Разделение семейства Virtex-4 на подсемейства

При выборе между семействами Virtex-II и Virtex-II Pro может возникнуть масса соображений как в пользу одного, так и в пользу другого решения. Например, выбор более современной ПЛИС Virtex-II Pro может оказаться неким компромиссом: ориентируясь на более высокую рабочую частоту, разработчик вынужденно соглашается на присутствие в системе неиспользуемых ресурсов — процессорного ядра или высокоскоростных приемопередатчиков. Видимо, следует признать правильным подход, при котором ПЛИС большого объема содержат дополнительные

Компоненты и технологии, № 1'2GG5

устройства, но справедлив и тот факт, что далеко не все проекты используют ресурсы ПЛИС равномерно. Очевидно, что платить за дополнительные ресурсы не следует.

С этой точки зрения разделение семейства Virtex-4 на подсемейства очень хорошо соответствует намечающимся тенденциям в сфере разработки программируемых устройств. Три объявленных подсемейства выглядят действительно адаптированными для трех направлений с разными требованиями к ресурсам ПЛИСі реализации устройств общего назначения с интенсивным использованием логических ячеек (подсемейство LX), созданию аппаратуры для цифровой обработки сигналов (подсемейство SX) и, наконец, проектированию систем на кристалле (для этого предназначено подсемейство FX). Соответственно, в зависимости от конкретных требований к объему памяти, производительности в задачах DSP, наличию высокоскоростных интерфейсов и проч. разработчик может ориентироваться уже внутри семейства, выбирая устройство, наиболее близкое по соотношению имеющихся ресурсов. Можно заметить, что «специализация» подсемейств довольно ощутима — так, ПЛИС XC4VSX55 имеет почти вдвое меньшее число логических ячеек, чем XC2VP100 (и дешевле), однако содержит 512 блоков DSP вместо 444 умножителей. Приведенные на рис. 6 диаграммы позволяют оценить соотношение между ресурсами разного типа для всех семейств Virtex.

На диаграммах видны основные отличия в удельном весе ресурсов для семейств Virtex-4 и Virtex-IIIII Pro. Что касается количества устройств DSP, то различия очевидны. Для под-

семейств LX и FX эти ресурсы достигают своеобразного «насыщения». Действительно, в проектах, ориентированных на логику, чрезмерно большая производительность в задачах DSP обычно не требуется. Особенно это проявляется для ПЛИС с максимальным числом логических ячеек. Можно предположить, что именно их большое количество будет определяющим фактором при выборе таких ПЛИС. Соответственно, прочих ресурсов может быть не слишком много. Чуть больше удельный вес блоков DSP в старших устройствах FX, поскольку несколько ядер PowerPC могут потребовать и увеличенной производительности окружающей их матрицы программируемых ресурсов. Наконец, абсолютно очевидна ситуация с подсемейством SX — это прямая ориентация на задачи DSP.

Подобная же ситуация имеет место и в отношении блочной памяти. На соответствующей диаграмме также видно «насыщение» для подсемейства LX, однако характеристики устройств FX практически аналогичны семейству Virtex-II Pro. Это нетрудно объяснить одинаковым назначением блочной памяти в ПЛИС с процессорными ядрами — использование в качестве быстрой накристальной памяти. Для задач DSP блочная память может использоваться для хранения таблиц коэффициентов или значений анализирующих функций, поэтому ее удельный объем чуть выше, чем у остальных семейств.

Выводы

Анализируя технические характеристики ПЛИС Virtex, можно отметить постоянный рост производительности и объема устройств

этой серии. Данная тенденция, впрочем, характерна для цифровой электроники вообще. Однако именно в области высокопроизводительных БРОЛ в последнее время можно наблюдать существенные улучшения архитектуры, функциональных возможностей и технико-экономических характеристик.

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

Литература

1. Кузелин М. О., Кнышев Д. А., Зотов В. Ю. Современные семейства ПЛИС фирмы Xilinx. Справочное пособие. М.і Горячая линия — Телеком. 2004.

2. The Programmable Logic Data Book. Xilinx Inc.

1999.

3. The Programmable Logic Data Book. Xilinx Inc.

2000.

4. Virtex-II Platform FPGA Handbook. Advance Product Specification. Xilinx Inc. 2003.

5. Virtex-II Pro Platform FPGA Handbook. Advance Product Specification. Xilinx Inc. 2002.

6. Virtex-4 Family Overview. Advance Product Specification. Xilinx Inc. 2004.