Эволюция ПЛИС серии Spartan с архитектурой FPGA

№ 3’2005
В конце 90"х годов фирма Xilinx начала выпуск ПЛИС серии Spartan с архитектурой FPGA. За прошедшее время они существенно изменились, превратившись в эффективные и недорогие цифровые устройства, способные функционировать как самостоятельно, так и в составе микропроцессорной системы. Появление в марте 2005 года нового семейства Spartan"3E является хорошим поводом как рассмотреть характеристики этих весьма интересных устройств, так и проанализировать эволюцию серии Spartan вообще.

В конце 90″х годов фирма Xilinx начала выпуск ПЛИС серии Spartan с архитектурой FPGA.
За прошедшее время они существенно изменились, превратившись в эффективные
и недорогие цифровые устройства, способные функционировать как самостоятельно,
так и в составе микропроцессорной системы. Появление в марте 2005 года нового семейства
Spartan»3E является хорошим поводом как рассмотреть характеристики этих весьма
интересных устройств, так и проанализировать эволюцию серии Spartan вообще.

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

ПЛИС серии Spartan являются развитием базовой
серии XC4000 (семейства XC4000E, XC4000XL
и XC4000XLA). На определенном этапе развития ар
хитектур ПЛИС оказалось, что можно пойти как по
пути реализации наиболее производительных тех
нических решений, так и по пути максимального об
легчения и удешевления выпускаемых микросхем
с сохранением их основных функций. Подобное раз
деление и привело к появлению двух параллельно
развиваемых семейств: высокопроизводительных
hi-end FPGA серии Virtex и более дешевой серии
Spartan, которая позиционируется как замена специ
ализированным микросхемам в мелких партиях из
делий. Эволюция ПЛИС серии Virtex была рассмот
рена в статье, опубликованной в «КиТ», № 1’2005,
а данная публикация рассматривает аналогичные во
просы, связанные с устройствами Spartan.

Первое семейство данной серии называлось соб
ственно Spartan и состояло из 5 устройств емкостью
от 5 до 40 тыс. эквивалентных логических венти
лей (максимум 1862 логические ячейки). Пример
но в то же время было выпущено семейство
SpartanXL. Отличие между этими семействами за
ключается в используемом напряжении питания:
5 В у Spartan и 3,3 В у SpartanXL, которая, тем не ме
нее, допускает работу с 5-вольтовыми устройства
ми. Архитектура этих семейств базировалась на
XC4000, однако сделанные изменения наглядно де
монстрировали подход, выбранный Xilinx относи
тельно данной серии. Функциональные возможно
сти логических ячеек были несколько урезаны, од
нако в общую структуру ПЛИС был внесен ряд
дополнений, улучшающих производительность
проектов в несложных задачах. В частности, было
увеличено количество трассировочных ресурсов
внутри матрицы логических ячеек, добавлены спе
циальные трассировочные линии VersaRing, суще
ственно облегчающие подключение матрицы яче
ек к выводам ПЛИС, улучшена производительность
цепей быстрого переноса. С точки зрения разработчика введенные ограничения прежде всего косну
лись одновременного использования входов асин
хронного сброса и установки для триггеров логи
ческих ячеек. В ячейках в числе прочего был остав
лен только один вход асинхронного управления
триггером, который мог, впрочем, реализовывать
любую из этих функций. Однако в целом архитек
тура получилась довольно удачной, большинство
распространенных схемных решений реализовыва
лось тем же объемом ресурсов, что и в XC4000,
но общая стоимость новых ПЛИС того же объема
оказалась существенно ниже (в 2000 году рознич
ные цены на эти ПЛИС составляли от $10 до $ 50).

Благодаря относительно низкой для ПЛИС того
времени стоимости семейство 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.

Архитектура и основные особенности ПЛИС Spartan

По всей видимости, разработка новых уст
ройств с использованием ранних семейств
Spartan и SpartanXL не представляет интере
са. Заметим лишь, что архитектура логичес
ких ячеек, ПЛИС Spartan/SpartanXL больше
тяготела к серии XC4000. Рассмотрим отли
чительные особенности архитектуры логиче
ских ячеек подобных ПЛИС. Матрица основ
ных логических ресурсов состоит из конфи
гурируемых логических блоков (КЛБ).
Каждый блок ПЛИС Spartan состоит, в свою
очередь, из четырех логических ячеек. В ос
нове логической ячейки находятся два уст
ройства: генератор логических функций (как
правило, 4-входовый) и триггер. Генератор
логических функций представляет собой фак
тически ОЗУ небольшого объема, хранящее
непосредственно таблицу истинности (Look
Up Table, LUT), которую следует реализовать.
Для 4-входового устройства достаточно
иметь 16 бит статического ОЗУ в каждой таб
лице. FPGA фирмы Xilinx позволяют также
использовать такую таблицу истинности
в качестве обычного ОЗУ с организацией
16W1, а также в качестве 16-разрядного сдви
гового регистра. Такая особенность архитек
туры несколько ухудшает производитель
ность (за счет необходимости внесения на
кристалл дополнительных цепей управле
ния), однако обеспечивает дополнительные
возможности как разработчику, так и средст
вам САПР. В конечном итоге производитель
ность сложного проекта за счет большей
функциональности базовых логических яче
ек может оказаться и выше. Второй особен
ностью, характерной для FPGA Xilinx, явля
ется наличие аппаратно реализованных буфе
ров с тремя состояниями, обеспечивающими
подключение выходов триггеров логических
ячеек к внутренним трассировочным лини
ям. Подобное решение производит аналогич
ный эффект — дополнительный буфер не
сколько увеличивает задержки распростране
ния сигнала (даже если он не используется
в проекте), однако появляется дополнитель
ная возможность для организации сложных
мультиплексоров. Необходимо заметить, что
в целом ряде семейств FPGA внутренние буфе
ры с тремя состояниями только эмулируются,
но реально на кристалле не присутствуют. Как
можно будет увидеть в дальнейшем, эта базо
вая архитектура на протяжении эволюции се
рии Spartan неоднократно изменялась.

Появившееся в 2000 году семейство Spartan-II
привнесло в архитектуру lowend ПЛИС до
статочно много интересных нововведений.
Прежде всего, стало понятно, что линии про
дуктов FPGA фирмы Xilinx четко разделились
на high-end устройства Virtex и low-end Spartan.
Вместе с тем стало также понятно, что техно
логические и архитектурные особенности этих
двух совершенно разных по стоимости серий
в целом практически эквивалентны. В общем
случае устройства Spartan могут делать прак
тически то же самое, что и соответствующие
по технологии изготовления ПЛИС Virtex.
Конкретно семейство Spartan-II было основано на архитектуре семейства Virtex, изготов
лено по гибридной технологии 0,18/0,22 мкм
и использовало ту же комбинацию напряже
ний питания: 2,5 В для ядра и 3,3 В для блоков
ввода-вывода. Для блоков ввода-вывода обес
печивалась совместимость с 5-вольтовыми
сигналами без использования внешних токо
ограничивающих резисторов.

Общая архитектура Spartan-II, как только
что упоминалось, была очень похожа на ар
хитектуру семейства Virtex. По сравнению
с ПЛИС Spartan/SpartanXL это означало сле
дующее:

  • на кристалл добавлен новый для ПЛИС Spartan вид ресурсов: синхронная блочная память с объемом каждого блока 4096 бит (аналогичные блоки имеются в ПЛИС Virtex);
  • для распространения тактового сигнала по кристаллу с минимальными задержками используются специальные модули с автоматической подстройкой задержек (DelayLocked Loop, DLL) — 4 штуки на кристалл с возможностью организации до 24 локальных тактовых подсетей;
  • в логические ячейки добавлены выделенные ресурсы, облегчающие построение умножителей целочисленных операндов;
  • улучшены характеристики цепей ускоренного переноса;
  • увеличено количество локальных и глобальных трассировочных ресурсов.

Наконец, структура и взаимное располо
жение логических ячеек были существенно
скорректированы. Пара логических ячеек стала
образовывать так называемую секцию (slice).
Четыре ячейки (или две секции) совместно
с дополнительно введенными локальными ре
сурсами образуют собственно конфигуриру
емый логический блок (КЛБ). Такое решение
позволило внедрить «внутрь» КЛБ дополни
тельные трассировочные ресурсы, позволяю
щие обеспечить более гибкие возможности
совместной работы отдельных логических
ячеек. Схема секции КЛБ приведена на рис. 1.

Секция КЛБ ПЛИС Spartan-II
Рис. 1. Секция КЛБ ПЛИС SpartanII

Семейство Spartan-II состоит из 6 микро
схем объемом 15, 30, 50, 100, 150 и 200 тыс. си
стемных вентилей. Число логических ячеек на
ходится в пределах 432–5292 (соответственно
для младшего и старшего устройств семейст
ва), а количество 4-килобитных блоков —
от 4 до 14 (аналогично). Все ПЛИС доступны
как в QFP-, так и в BGA-вариантах исполне
ния корпусов.

Уже в следующем, 2001 году, было выпуще
но семейство Spartan-IIE. Это семейство бы
ло основано на архитектуре ПЛИС Virtex-E.
Соответственно, напряжение питания ядра со
ставляет 1,8 В, а блоки ввода-вывода, питае
мые максимально от 3,3 В, несовместимы
с 5-вольтовыми сигналами без последователь
но включаемых в сигнальные цепи резисто
ров (номиналом не менее 120 Ом). Семейство
включает 7 микросхем объемом 50, 100, 150, 200, 300, 400 и 600 тыс. системных вентилей.
Количество логических ячеек и блоков памя
ти в точности соответствует характеристикам
устройств предыдущего семейства SpartanII.
Старшие ПЛИС содержат до 15 552 ячеек
и до 72 блоков памяти соответственно.

Характерным является соотношение между
семействами SpartanII и SpartanIIE. В дейст
вительности архитектурные различия между
ними весьма и весьма несущественны и следу
ют в основном из разного технологического
процесса. Устройства Spartan-IIE несколько бы
стрее, хотя и не обладают возможностью рабо
тать с 5-вольтовыми входными сигналами на
прямую. Оба семейства поддерживают широ
кий спектр электрических интерфейсов (в том
числе высокоскоростные дифференциальные).
В то же время интересно отметить, что если се
мейство Spartan-II начиналось с устройства объ
емом 15 тыс. системных вентилей, то для
Spartan-IIE нижняя планка оказалась поднята
уже до 50 тыс. Тем не менее этот факт отнюдь
не означает отказа от выпуска ПЛИС мини
мальной стоимости. Напротив, цены на уст
ройства Spartan с появлением описанных се
мейств начали достаточно быстро падать.

В настоящее время SpartanII/IIE являются,
пожалуй, самыми популярными ПЛИС с ар
хитектурой FPGA фирмы Xilinx. Их универ
сальность, весьма низкая цена, доступность
в удобных корпусах QFP (вплоть до 300 тыс.
вентилей у Spartan-IIE) и поддержка бесплат
ным пакетом САПР Webpack делают процесс
проектирования цифровых устройств на базе
ПЛИС довольно простым и недорогим. Сов
местная работа ПЛИС и микроконтроллера
существенно расширяет возможности послед
него в плане управления периферийным обо
рудованием, аппаратной реализации некото
рых функций и т. п.

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

Тем не менее 2002–2003 годы ознаменова
лись появлением очередного семейства
Spartan-3, которое на момент написания ста
тьи является самым современным семейством
недорогих ПЛИС фирмы Xilinx из свободно
доступных для приобретения. Это семейство
полностью отвечает ожиданиям от данной се
рии — еще дешевле и еще больше производи
тельности в типичных задачах. В настоящее
время розничные цены на младшие устройст
ва Spartan-3 находятся в районе $10, что прак
тически вплотную приближает ПЛИС к мик
роконтроллерам с сопоставимыми функцио
нальными возможностями. Самое важное,
в составе этого семейства наконец-то появи
лись выделенные умножители, а также изме
нена организация блочной памяти с 4096 бит
на 1КW18. Иными словами, архитектура
Spartan-3 в целом основана на ПЛИС Virtex-II.
Однако имеются и существенные отличия, ха
рактерные скорее для еще более современно
го семейства Virtex-4 и касающиеся непосред
ственно логических ячеек (которые практиче
ски не изменились при переходе от Spartan-II
к Spartan-IIE). Интересно отметить, что уст
ройства семейства Spartan-3 требуют как ми
нимум трех источников питания: напряжение
питания ядра составляет 1,2 В, необходим
вспомогательный источник питания 2,5 В,
а блоки ввода-вывода могут быть запитаны
максимум от 3,3 В.

Имея похожую архитектуру, новое семейст
во Spartan-3 выгодно отличается от Virtex-II тем, что было изготовлено по современному
90-нанометровому техпроцессу. Очевидно,
это означает как большую производитель
ность при той же топологии кристалла, так
и меньшую цену.

Каждый КЛБ семейства Spartan-3 состоит
из четырех секций, сгруппированных в пары
(рис. 2). Левая пара называется SLICEM и содер
жит привычные разработчикам, знакомым
с предыдущими семействами ПЛИС Xilinx, пол
нофункциональные логические генераторы, ко
торые могут использоваться также в качестве
распределенного ОЗУ или сдвигового регистра.
Однако расположенная на рисунке справа пара
SLICEL может реализовать только логику.

Организация секций КЛБ в ПЛИС Spartan-3
Рис. 2. Организация секций КЛБ в ПЛИС Spartan-3

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

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

Фирма Xilinx уделяет достаточно большое
внимание соблюдению баланса между ресур
сами, размещаемыми на кристалле ПЛИС.
Одним из основных моментов, относящихся
к структуре КЛБ, является оценка процентно
го соотношения распределенной памяти и соб
ственно логических ресурсов. Собственные
оценки логической емкости ПЛИС самой фир
мой Xilinx часто приводятся из следующего
соотношения «25% ячеек используется в каче
стве распределенной памяти, остальное —
в качестве логики». Таким образом, по оцен
ке Xilinx, в среднем около четверти ячеек ис
пользуется «не по прямому назначению»,
то есть в качестве распределенной памяти или
сдвиговых регистров. Ввиду этого решение
о дальнейшем облегчении функциональнос
ти половины логических ячеек выглядит в об
щем-то не так обескураживающе. В самом де
ле, трудно представить проект, который по ка
ким-то причинам использует ПЛИС в качестве
мелких блоков памяти, распределенных
по всему кристаллу, обладающих в силу это
го плохими временными характеристиками
и чрезмерно высокой относительной ценой.
Еще более странно рассматривать такой про
ект на фоне присутствия в Spartan-3 блочной
памяти еще большего объема (до 1,8 Мбит
на кристалле в старших моделях!). Можно предположить, что большая часть логических
ячеек, скорее всего, будет реализовывать имен
но логические функции, а уменьшение макси
мального объема доступной распределенной
памяти прекрасно компенсируется увеличени
ем количества блочной (гораздо более эффек
тивной и удобной в использовании). Наконец,
следует все-таки отметить, что распределенная
память в секциях SLICEM так и осталась рас
пределенной по всему кристаллу. В итоге пол
нофункциональные SLICEM и облегченные
SLICEL вполне могут дополнять друг друга.

Что касается внутренних буферов с тремя
состояниями, то можно заметить, что выиг
рыш от их использования появляется в тех
случаях, когда в проекте требуется мульти
плексирование шин с большой разрядностью,
причем число входных шин мультиплексоров
также оказывается достаточно большим.
В этих случаях использование буферов с тре
тьим состоянием оказывается выгоднее, чем ка
скадное наращивание логических ячеек (огра
ниченных по числу входов мультиплексора).
Однако очевидно, что если возможности ло
гических ячеек по реализации многовходовых
мультиплексоров будут улучшены, то и по
требность во внутренних буферах с тремя со
стояниями существенно уменьшится. Имен
но такой путь и был реализован в семействе
Spartan-3, причем удаление буферов привело
одновременно и к уменьшению задержек,
и к удешевлению микросхем.

Модификации семейства Spartan»3

В конце 2004 и начале 2005 года фирмой
Xilinx были выпущены две модификации се
мейства Spartan-3. Говоря о модификациях,
имеется в виду как несущественность отли
чий архитектуры ПЛИС, так и их исполнение
по тому же 90-нанометровому техпроцессу.
Однако особенности обеих модификаций до
статочно интересны.

Появившееся в конце 2004 года семейство
Spartan-3L включает в себя всего три устрой
ства с емкостями 1 млн, 1,5 млн и 4 млн системных вентилей. Характеристики этих уст
ройств полностью аналогичны соответствую
щим микросхемам Spartan-3. Символ L в обо
значении является первым символом слово
сочетания «Low power». Действительно,
для ПЛИС большого объема достаточно серь
езной является проблема потребления энер
гии. Устройства Spartan-3L имеют специ
альный режим Hibernate Mode, при кото
ром потребление тока сокращается на 98%!
В остальном, включая поддержку средствами
САПР, эти ПЛИС полностью соответствуют
своим аналогам из базового семейства.

Наконец, анонсированное в начале марта
2005 года семейство Spartan-3E при сохранении
основных особенностей Spartan-3 будет иметь
существенно сниженную цену. Значение этого
факта трудно переоценить, поскольку в послед
нее время ПЛИС Spartan-3 и так находились
практически на грани перехода в категорию ши
роко доступных и дешевых устройств (с учетом
розничной цены около $10). Объявленная же
в настоящее время цена на ПЛИС Spartan-3E
в партиях от 250 тыс. штук беспрецедентна: все
го $2 за 100 тыс. вентилей и $9 за 1,2 млн вен
тилей. Очевидно, розничные цены будут вы
ше, однако позиция Xilinx вполне недвусмыс
ленна: новое семейство должно быть дешевле,
чем Spartan-3. Интересно, что еще два года на
зад в качестве перспективы рассматривался во
прос о выпуске ПЛИС емкостью в миллион
вентилей за менее чем $25 в крупных партиях.

Несмотря на сниженную цену, Spartan-3E со
держит довольно интересное техническое ре
шение, облегчающее реализацию алгоритмов
DSP в ПЛИС. При реализации алгоритмов, ис
пользующих операцию «умножение с накоп
лением» для потока входных данных, часто
оказывается, что один и тот же поток данных
необходимо умножать одновременно на раз
ные коэффициенты с накоплением суммы от
дельно по каждому из каналов умножения.
Не составляет особого труда завести входной
сигнал на входы нескольких умножителей, од
нако для этого необходимо задействовать
обычные трассировочные ресурсы. В резуль
тате временные характеристики таких блоков
оказываются несколько неидеальными, хотя
очевидно, что такая задача довольно типична,
и ее эффективное решение существенно повысит производительность всего проекта и ха
рактеристики изделия в целом. Для реализа
ции подобных алгоритмов блоки умножения
в ПЛИС Spartan-3E имеют дополнительный
вход, который может каскадно соединяться
с выходом предыдущего умножителя в колон
ке. Младшая ПЛИС объемом 100 тыс. венти
лей содержит одну, а остальные устройства—
две колонки умножителей. Каскадное соеди
нение может быть использовано для «сквоз
ной» подачи одного из аргументов на все ум
ножители целой колонки. Умножители могут
работать как с каскадируемым, так и с прямым
сигналом, что регламентируется соответству
ющим входом (рис. 3). В показанном примере
нижний умножитель использует Direct-режим
и рассматривает в качестве второго операнда
число, подаваемое на его вход B. Остальные
умножители в цепочке игнорируют свои вхо
ды B, используя вместо этого данные с входа
BCIN. На всех входах BCIN при этом присут
ствует то же самое число, что и поданное
на вход B самого нижнего умножителя. Кас
кадная передача аргумента задействует только
выделенные трассировочные ресурсы, что од
новременно и минимизирует задержки, и ос
вобождает трассировочные ресурсы общего
назначения для выполнения других задач.

Каскадное соединение умножителей
Рис. 3. Каскадное соединение умножителей

Еще одним нововведением (впервые для ус
тройств Xilinx) является возможность загруз
ки конфигурации непосредственно с NOR-Flash
с 8- или 16-разрядной шиной данных. Такой
режим освобождает от необходимости исполь
зовать только специальные конфигурацион
ные ПЗУ производства Xilinx, заменив их прак
тически любой подходящей по объему микро
схемой Flash-памяти.

Технические характеристики ПЛИС Spartan-3
и Spartan-3E приведены в таблице.

Таблица

Динамика изменения максимального логи
ческого объема и напряжения питания ПЛИС
Spartan приведена на рис. 4 и 5.

Максимальный логический объем ПЛИС серии Spartan
Рис. 4. Максимальный логический объем ПЛИС серии Spartan
 Напряжения питания ядра (ближний ряд) и блоков вводавывода (дальний ряд) ПЛИС серии Spartan
Рис. 5. Напряжения питания ядра (ближний ряд) и блоков вводавывода (дальний ряд) ПЛИС серии Spartan

Итак, можно выделить некоторые тенден
ции в развитии архитектур недорогих микро
схем программируемой логики:

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

Особенности использования ПЛИС
в цифровых системах

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

  1. 1. Для инициализации ПЛИС требуют загрузки конфигурационной последовательности
    после включения питания. Для этого на плате необходимо поместить конфигурационное ПЗУ. Рекомендуется использование конфигурационных Flash-ПЗУ серии XCF.
    Младшие ПЛИС могут быть загружены
    и из внутренней памяти микроконтроллера.
  2. 2. Семейства Spartan, начиная со Spartan-IIE,
    не допускают подачу на вход 5-вольтовых
    сигналов. Тем не менее эти устройства достаточно надежно работают при включении
    в разрыв сигнальных линий резисторов номиналом не менее 120 Ом. Необходимо отметить, что рекомендации производителя
    по поводу номинала резистора не вполне
    однозначны, однако на практике наблюдается как устойчивая работа входов ПЛИС
    с последовательно включенными резисторами, так и устойчивое считывание 5-вольтовыми устройствами уровня логической
    единицы с выхода ПЛИС с питанием 3,3 В.
    Последний вопрос, по впечатлениям автора, в настоящее время является своеобразным камнем преткновения при начале работы с ПЛИС.
  3. ПЛИС Spartan обычно используют корпуса
    QFP с шагом выводов 0,5 мм. Это облегчает
    изготовление и монтаж печатных плат, поскольку корпуса типа BGA все еще не получили широкого распространения среди российских разработчиков. Корпуса QFP доступны для всех устройств Spartan-II, для ПЛИС
    Spartan-IIE до 300 тыс. вентилей, а также
    для ПЛИС Spartan-3 до 400 тыс. и ПЛИС
    Spartan-3E до 500 тыс. вентилей включительно. Необходимо подчеркнуть, что два последних семейства обладают весьма хорошими
    характеристиками в DSP-задачах.

Производительность

Оценка производительности ПЛИС — слож
ный и весьма неоднозначный процесс. Ранее
автором была сделана попытка дать первое
приближение к оценке производительности
ПЛИС в различных задачах [1]. Напомним, что
в качестве этого приближения было использо
вано значение рабочей частоты, определяемое
на этапе синтеза (Synthesize) проекта.

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

1) 16-разрядный счетчик;
2)модуль «умножение с накоплением»;
3) простое арифметико-логическое устройство.

Эти проекты были реализованы в САПР
Xilinx Foundation ISE 7.1i для ПЛИС семейств
Spartan-II, Spartan-IIE, Spartan-3 обеих града
ций скорости и Spartan-3E (для семейства
Spartan-3E пока доступна только одна ско
рость). В каждом семействе выбирался млад
ший кристалл.

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

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(clk)
begin
if clk’event and clk = ‘1’ then
q
end if;
end process;
end Behavioral;

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

Результаты первого теста
Рис. 6. Результаты первого теста

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

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

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(clk)
begin
if clk’event and clk = ‘1’ then
if res = ‘1’
then sum
else sum
end if;
end if;
end process;
end Behavioral;

В данном тесте, как и в случае ПЛИС Virtex
[1], наблюдается практически линейный рост
частоты вне зависимости от того, что устрой
ства Spartan-II/IIE реализовали умножение на ба
зе логических ячеек, а более современные
Spartan-3/3E — на базе выделенных умножите
лей. Очевидно, что на результаты теста суще
ственное влияние оказывает его синтетический
характер. Средства САПР оценивают здесь и эф
фективность распространения сигналов в бло
ках ввода-вывода (без чего нельзя получить за
вершенный проект для анализа), тогда как вну
тренние частоты умножителей в Spartan-3/3E
существенно выше показанных на рис. 7. Кон
кретно они составляют 200 МГц для Spartan-3
и 266 МГц для Spartan-3E, но только в том слу
чае, если нет необходимости выводить резуль
таты за пределы матрицы логических ячеек.

Результаты второго теста
Рис. 7. Результаты второго теста
Результаты третьего теста
Рис. 8. Результаты третьего теста

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

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 0);
b : in std_logic_vector(15 downto 0);
cmd : in std_logic_vector(7 downto 0);
result : out std_logic_vector(15 downto 0));
end alu;
architecture Behavioral of alu is

begin
process(clk)
begin
if clk’event and clk = ‘1’ then
case conv_integer(cmd) is
when 0 => result
when 1 => result
when 2 => result
when 3 => result
when 4 => result
when 5 => result
when 6 => result
when others => null;
end case;
end if;
end process;
end Behavioral;

Картина этого теста в целом такая же.
Можно заметить, правда, что Spartan-3E за
нимает уже второе место и практически не
отстает от наиболее производительного
Spartan-3. Это в целом подтверждает предпо
ложение о том, что ресурсы логических ячеек
новейшего семейства ПЛИС оказались суще
ственно урезаны. Задача же реализации эле
ментарных арифметико-логических функций
является весьма типичной.

Применение

Исходя из приведенных материалов, а осо
бенно из упоминания о беспрецедентно низ
кой цене новейшего семейства FPGA, кото
рое должно попасть на рынок в ближайшее
время, достаточно актуальным становится
вопрос о сферах применения low-end ПЛИС.
Это относится как к новым разработкам, где
ПЛИС ранее не применялись, так и к пере
смотру позиций в отношении использова
ния и роли ПЛИС в уже существующих про
ектах. С учетом характеристик семейств
Spartan-3/3E можно сказать, что в целом эти
микросхемы позволяют получить вычисли
тель с хорошей производительностью в за
дачах цифровой фильтрации, спектрально
го анализа и т. п., фактически привнося
в проект возможности существенно более до
рогих ПЛИС Virtex-II и выше по весьма низ
кой цене. Если не требуется чрезвычайно вы
сокая производительность, возможностей
ПЛИС Spartan-3/3E оказывается вполне до
статочно для реализации довольно широко
го круга задач.

Несмотря на все более и более проявляющу
юся ориентированность ПЛИС (даже low-end)
на задачи цифровой обработки сигналов, не стоит забывать и о возможности их исполь
зования в качестве замены рассыпной логике
и несложным интерфейсным устройствам.
ПЛИС FPGA, работая в составе микропроцес
сорной системы, вполне может реализовать
недостающие интерфейсы, регистры, мульти
плексоры, очереди и буферы и множество дру
гих цифровых узлов. Недорогие ПЛИС
Spartan, выполненные в удобных пластиковых
корпусах и требующие относительно неболь
шого объема конфигурационных данных для
загрузки, хорошо подходят для этой цели.

Начало работы

Для разработчиков, желающих освоить
ПЛИС Xilinx, будет интересно узнать, что се
рия Spartan (особенно весьма дешевые устрой
ства последних семейств) позволяет в доволь
но короткие сроки и с минимальными затра
тами ресурсов начать проектирование
цифровых систем на базе ПЛИС FPGA. Для ра
боты требуется собственно ПЛИС (рекомен
дуется использовать Spartan-3 как наиболее де
шевый вариант, или Spartan-II как допускаю
щий простое сопряжение с 5-вольтовым
окружением), а также программатор и одна из
версий САПР. САПР Webpack распространя
ется фирмой Xilinx бесплатно и доступен для
загрузки с сайта www.xilinx.ru. Версия
Webpack 7.1, поддерживающая самое совре
менное семейство Spartan-3E, имеет объем бо
лее 300 Мбайт, поэтому имеет смысл рассмо
треть возможность получения диска с дистри
бутивом в офисе InlineGroup. Программатор
для подключения к параллельному порту ПК
может быть приобретен или собран на базе
двух микросхем мелкой логики ТТЛ.

Литература

  1. Тарасов И.. Эволюция ПЛИС серии Virtex // Компоненты и технологии. 2005. № 1.
  2. Кузелин М. О., Кнышев Д. А., Зотов В. Ю. Современные семейства ПЛИС фирмы Xilinx. Справочное пособие. М.: Горячая линия — Телеком. 2004.
  3. Xilinx Inc. The Programmable Logic Data Book. 1999.
  4. Xilinx Inc. The Programmable Logic Data Book. 2000.
  5. Тарасов И. Е. Разработка цифровых устройств на основе ПЛИС Xilinx с применением языка VHDL. М.: Горячая линия — Телеком. 2005.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *