96 www.finestreet.ru компоненты ПЛИС
Окончание, начало В № 5'2005
Илья ТАРАСОВ, к. т. н.
Сравнительный анализ архитектуры основных семейств FPGA
фирмы Xilinx
В первой части статьи обсуждались общие вопросы сравнения характеристик ПЛИС. Приведенные в ней сведения позволяют сделать вывод, что оценка устройств с архитектурой FPGA — довольно неоднозначный процесс, требующий тщательного и всестороннего изучения. В современных условиях основными производителями ПЛИС предлагаются две линейки продукции FPGA, соответствующие высокопроизводительному и бюджетному решению. Выбор наиболее подходящей для конкретных условий элементной базы может быть сделан только при наличии информации о том, в чем именно более дешевые ПЛИС уступают изделиям.
Логические ячейки
Рассмотрим сравнительные характеристики основных программируемых ресурсов обеих серий ПЛИС, начиная с наиболее показательного — программируемых логических ячеек. Архитектура логических ячеек серий Spartan и Virtex в целом весьма похожа. Обе серии базируются на логических ячейках, разбитых на секции (slice). В составе каждой секции находится 4-входовый логический генератор (Look-Up Table, LUT), триггер и некоторое количество выделенных ресурсов: цепи ускоренного переноса, выходной буфер с тремя состояниями и пр.
С точки зрения основных программируемых ресурсов различные семейства FPGA (не только Xilinx, но и других производителей) отличаются незначительно. Фактически, разница состоит в величинах задержек распространения сигнала для различных вариантов использования логической ячейки. Что касается продукции Xilinx, то более дорогие ПЛИС Virtex обеспечивают меньшие задержки, чем Spartan. Но более интересны свойства логических ячеек, проистекающие из наличия в них дополнительных устройств.
В архитектуре логических ячеек FPGA семейств Spartan-II/IIE и Virtex-E нашел наиболее явное отражение подход фирмы Xilinx к обеспечению функциональности ПЛИС. Особенно интересно рассмотреть именно эти, на данный момент уже не самые современные семейства (но все еще сохраняющие свою актуальность), ввиду того, что на момент их активного распространения существовал альтернативный подход к распределению по ап-
паратной реализации функциональных возможностей ПЛИС, предлагаемый фирмой Altera. Вопрос заключался в том, что использовавшаяся структура логической ячейки имела как минимум два узла с альтернативными реализациями.
Во-первых, логический генератор (Look-Up Table), основанный на статической памяти, одновременно представлял собой фрагмент ОЗУ с организацией 16x1. С помощью несложной внутренней логики эта память могла быть предоставлена в распоряжение разработчика (причем в двупортовом варианте). Кроме того, имелась возможность организации в этом блоке быстрого сдвигового регистра с организацией опять-таки 16x1. Безусловно, такое решение позволяло разработчику более гибко управлять ресурсами ПЛИС и дополнительно экономило их по сравнению с реализацией тех же цифровых узлов на триггерах. Поскольку на каждый LUT приходится только один триггер, при реализации распределенной памяти или сдвиговых регистров имеется выигрыш в 16 раз! Однако дополнительные цепи, регулирующие использование LUT в новом качестве, вносят и дополнительную задержку. В связи с этим ПЛИС Xilinx показывали в простых тестах меньшую производительность, чем конкурирующие продукты фирмы Altera, в которых использование LUT в качестве распределенной памяти было невозможно.
Во-вторых, подключение выходов логических ячеек к трассировочной матрице также может быть выполнено различными способами. Наименьшие задержки обеспечиваются при использовании выходных мультиплек-
соров, однако необходимость мультиплексирования большого количества выходов приводит к их каскадному наращиванию. Альтернативным вариантом является использование буферов с тремя состояниями. В этом случае становится возможным параллельное объединение выходов отдельных ячеек, а увеличение количества параллельно объединяемых выходов не приводит к наращиванию «уровней» логики. Однако буфер с тремя состояниями имеет большую задержку распространения сигнала, которая добавляется даже в том случае, если этот буфер не используется. В данном случае Xilinx опять выбрал для своих ПЛИС вариант с большей функциональностью (и чуть большими задержками распространения), а в ПЛИС Altera схемы, использующие такие буферы, эмулировались с помощью мультиплексоров. Необходимо отметить, что эффективность того или иного решения существенно зависит как от количества соединяемых параллельно выходов, так и от технологии изготовления. Если для ПЛИС Virtex-E и аналогичных продуктов линейки Spartan выигрыш от использования буферов с тремя состояниями достигался начиная с 16-32 объединяемых сигналов, то с развитием технологии изготовления ПЛИС актуальность такой замены несколько уменьшилась. Кроме того, объединение 16 и более сигналов подразумевает достаточно сложную структуру проекта и наводит на мысль об использовании дорогого кристалла большой логической емкости. Соответственно, для дешевых ПЛИС серии Spartan такими буферами можно и пожертвовать. Данное архитектурное изменение
ПЛИС компоненты 97
и было сделано в семействе 8раЛап-3, где внутренние буферы с тремя состояниями аппаратно не реализованы, а эмулируются внутренними трассировочными ресурсами (использование сигналов '2' в ИБЬ-описа-ниях по-прежнему возможно). Однако в семействе У1г1ех-11, к архитектуре которого близко семейство ЗраГап-З, буферы с тремя состояниями реализованы аппаратно.
Вопрос использования или неиспользования буферов с тремя состояниями весьма неоднозначен (учитывая, что он имеет свое отношение к конкурентной борьбе между двумя ведущими производителями БРОА). В некоторых случаях явное указание использования внутренних буферов позволяет разгрузить трассировочные ресурсы ПЛИС и улучшить характеристики проекта. Однако в данном случае более важным является то, что в архитектурах ПЛИС находят отражение современные тенденции в микроэлектронике. В частности, буферы с тремя состояниями исчезли из наиболее современных ПЛИС, выполненных по 90-нанометровому техпроцессу, поскольку выигрыш от их использования здесь будет наблюдаться только при очень большом количестве мультиплексируемых линий.
98 компоненты ПЛИС
Рис. 4. Схема секции ПЛИС Virtex-4
Є-
CLB
Slice
LUT
LUT
MUXF5
Slice
LUT
LUT
MUXF5
MUXF6
Рис. S. Организация мультиплексоров в семействах Spartan-IIE и Virtex-II
Схемы секций семейств БраГап-З, У1Лех-II и У1Лех-4 представлены соответственно на рис. 2, 3 и 4. Для ЗраГап-З и Уи1ех-4 показаны верхние секции и часть общей логики. Назначение этих рисунков — продемонстри-
ровать общую схожесть архитектур последних семейств ПЛИС. Тем не менее, можно отметить некоторые моменты, свидетельствующие об «облегчении» устройств Spartan. В основном это касается чуть меньшей слож-
ности внутренних трассировочных ресурсов и меньшего количества дополнительных выходов секции.
Интересным является также анализ организации внутренних мультиплексоров в логических ячейках. Как уже упоминалось, они служат для объединения нескольких входных линий. В действительности такие устройства необходимы для нормального функционирования логических ячеек, поскольку в проекте может потребоваться использование выходного сигнала логической ячейки как непосредственно после ШТ, так и после триггера той же ячейки. Поэтому часть мультиплексоров, входящих в логические ячейки, может быть использована для формирования более сложных узлов комбинаторной логики. Такие программируемые мультиплексоры обозначаются как Бх, где х — номер в порядке возрастания иерархии в общей структуре программируемых ресурсов. Количество и организация этих мультиплексоров также оказывает существенное влияние как на цену кристалла, так и на его технические характеристики. На рис. 5 показаны примеры организации мультиплексоров в двух семействах, относящихся к разным сериям БРОА ХШпх.
На этом рисунке можно видеть, что более простое устройство ЗраЛап-ПЕ содержит только мультиплексоры Б5 (по одному на ЬИТ) и объединяющий их выходы мультиплексор Б6. В ячейках Ук1ех-П организация более сложная: каждая ячейка включает в себя как мультиплексоры, объединяющие выходы отдельных ЬИТ, так и мультиплексоры более высокого уровня (Б7 и Б8), обес-
Таблица 2. Аппаратные затраты на создание мультиплексоров (в секциях ПЛИС) для различных семейств FPGA
Мультиплексор Spartan-II/IIE, Virtex/Virtex-E Virtex-II и выше, Spartan-3
4:1 1 1
8:1 2 2
16:1 5 4
32:1 9 8
печивающие уже объединения «через секции». Такая организация дает возможность создавать более сложные устройства, как это показано в таблице 2.
Блоки ввода-вывода
Удельный вес блоков ввода-вывода в общей площади и стоимости кристалла относительно невелик, а потери привлекательности устройства для пользователя от снижения их функциональности могут быть весьма существенны. Поэтому на протяжении развития архитектуры ПЛИС блоки ввода-вывода в сериях Spartan и Virtex имели практически одинаковые возможности, отличаясь, правда, задержками распространения сигнала. Некоторые различия все же имеются: например, Virtex-II поддерживает 25 single-ended стандартов ввода-вывода, а Spartan-3 — только 19 (хотя отличия касаются в основном высокоскоростных стандартов, для которых у Spartan-3 реализованы не все варианты напряжений питания). В остальном возможности этих серий достаточно похожи, включая даже триггеры с возможностью DDR, размещаемые и в более дешевых устройствах Spartan. Такой подход дает возможность не заботиться о смене электрических стандартов вместе со сменой ПЛИС (что вполне может произойти в том случае, если разработчик выполнил прототипирование на устройстве Virtex, по результатам чего оказалось, что необходимую производительность может обеспечить и гораздо более дешевая ПЛИС Spartan).
Трассировочные ресурсы
Кроме отображения (map) цифровых узлов на отдельные логические ячейки требуется также распределить их по кристаллу и запрограммировать электрические соединения между отдельными ячейками (place & route). Реализация всего многообразия соединений, характерных для проектов различного типа, представляет собой достаточно сложную задачу. Обычное увеличение количества трассировочных линий и точек их подключения к логическим ячейкам не вполне решает задачу качественной трассировки. Кроме увеличения площади кристалла (и его удорожания) в этом случае будет наблюдаться ухудшение временных характеристик чрезмерно длинных линий, пытающихся обеспечить большое количество свя-
зей. Но какая-то часть сигналов, от которых в большой степени зависят временные характеристики всего проекта в целом, требует быстрого распространения по кристаллу. Поэтому современные ПЛИС содержат иерархически организованные уровни трассировочных ресурсов, обеспечивающих баланс между количеством соединений и их временными характеристиками.
Основная и наиболее явная часть трассировочных ресурсов называется главной трассировочной матрицей (Global Routing Matrix, GRM) и к ней вполне применимы рассуждения о трассировочных линиях, приведенные выше. Эту матрицу можно условно считать «ресурсом общего назначения», поскольку достаточно легко подобрать примеры, когда существенно лучшие результаты достигались бы с использованием ресурсов совершенно иного типа.
Наиболее ярким примером такого ресурса являются глобальные линии распространения тактового сигнала. Синхронный стиль проектирования в современных условиях наиболее предпочтителен (исследование этого вопроса является темой отдельной большой публикации), поэтому эффективность распределения по кристаллу тактового сигнала является, в некотором роде, определяющей для успешной реализации проекта, работающего на большой частоте. Эту задачу несколько облегчает тот факт, что тактовый сигнал подается на вполне определенный (тактовый) вход триггеров логических ячеек и тактовые входы выделенных устройств с синхронным интерфейсом (например, блочной памяти). Поэтому тактовые линии не перегружены коммутационными устройствами и могут быть более или менее равномерно распределены по кристаллу, обеспечивая минимальные относительные задержки распространения. Эффективность работы этих линий дополнительно обеспечивается блоками автоподстройки задержки (Delay Locked Loop, DLL), а в более поздних ПЛИС — блоками управления тактовым сигналом (Digital Clock Management, DCM). Подробное описание этих устройств вряд ли целесообразно приводить в данной статье, поскольку с точки зрения сравнения возможностей серий Spartan и Virtex более интересной будет информация о количестве таких блоков.
Ранние семейства, использовавшие DLL, обычно содержали по 4 таких устройства, подключаемых к так называемым глобальным тактовым входам. Эти входы, по одному на каждую «четверть» блоков ввода-вывода, представляют собой обычные программируемые входы, пригодные к использованию разработчиком, однако блоки автоподстройки задержки могут располагаться только после них. На этот момент всегда необходимо обращать внимание при разработке устройств на ПЛИС. Для семейств Virtex/E/Spartan-II/IIE использовались первичные (primary) и вторичные (secondary) тактовые входы. Функци-
ональные возможности для всех этих семейств в принципе одинаковы, хотя в более скоростных устройствах Virtex реализованы и более скоростные блоки.
Четыре устройства управления тактовым сигналом (каждое со своим входом) позволяют организовать на одном кристалле четыре независимые области, каждая из которых использует собственный тактовый сигнал. Такое свойство становится особенно привлекательным при организации распределенных вычислительных систем, когда на одном кристалле располагается несколько устройств, каждое из которых может быть независимо включено или выключено, переведено на пониженную частоту и т. п. Соответственно, управление тактовым сигналом является дополнительным предметом для обсуждения. В этой связи интересно, что все устройства Spartan-3 содержат по 4 DCM, вплоть до объема в 5 млн вентилей (кроме самого младшего устройства, в котором таких блоков нет), а в более мощной серии Virtex (имеются в виду устройства Virtex-II и выше, в которых и появились DCM) их количество составляет 4, 8 или 12 в зависимости от объема кристалла. Увеличенное количество независимых тактовых сетей, которые могут быть реализованы в этих ПЛИС, позволяет говорить, что данная серия гораздо больше предназначена для построения высокопроизводительных распределенных систем обработки сигналов. Разумеется, возможностей аналогичных блоков семейства Spartan-3 это не отменяет, но опять-таки складывается впечатление, что ПЛИС Virtex предназначены для работы «без ограничений» (разработка уникальных высокопроизводительных устройств или прототипирование новых изделий, когда разработчик не хочет ограничивать себя возможностями платформы), а серия Spartan больше предназначена для относительно небольших партий изделий, когда становятся понятными требования к аппаратной платформе, и окончательно определяется, какая именно из ПЛИС Spartan удовлетворяет требованиям проекта.
Если тот факт, что тактовые сигналы крайне желательно подключать к вполне определенным выводам ПЛИС, широко известен разработчикам, то, как правило, не существует особенной необходимости интересоваться внутренним строением прочих трассировочных ресурсов. Организацию внутренних соединений с их помощью берут на себя средства САПР, выбирающие оптимальные способы соединения отдельных логических ячеек.
Очевидным решением является прямое соединение соседних ячеек. Однако при этом такие виды связей как магистрали данных, длинные линии с большим коэффициентом разветвления и прочие подобные им реализуются весьма неэффективно. Действительно, передать сигнал на пятую ячейку в том же ряду оказывается возможным только с помощью пяти последовательных передач сиг-
нала соседним ячейкам. С другой стороны, реализовать соединения «каждый с каждым» в ПЛИС объемом несколько десятков тысяч ячеек попросту нереально.
В этой связи в FPGA Xilinx комбинируются несколько видов трассировочных ресурсов:
• Длинные линии (long line), идущие вдоль ряда логических ячеек, и подключаемые к каждой шестой ячейке в ряду.
• Hex line, подключаемые к каждой третьей ячейке.
• Double line, подключаемые «через одну» ячейку.
• Уже упоминавшиеся выше прямые соединения (direct line), подключающие ячейку к каждой из 8 соседних.
Виды трассировочных ресурсов, перечисленных в этом списке, представлены на рис. 6.
Очевидно, что простые проекты можно реализовать, используя небольшое количество трассировочных линий. Это дает возможность упростить топологию кристалла, уменьшив таким образом его цену — явно напрашивающееся решение для серии Spartan. Действительно, для простых проектов вполне достаточно относительно простой трассировочной матрицы. Однако экономия на трассировочных ресурсах в высокопроизводительных high-end FPGA может привести к весьма неприятным эффектам. В частности, при больших коэффициентах заполнения кристалла задержки распространения резко увеличиваются (трассировка насыщенного проекта до-
Таблица 3. Количество трассировочных линий в ПЛИС различных семейств
(на каждый ряд или колонку логических ячеек)
ПЛИС Long Hex Double Direct lines
Spartan-II 12 96 - 24
Virtex-II Pro 24 120 40 16
статочно сложна для САПР). Наиболее неприятным для разработчика может стать появление так называемых wire-through логических ячеек, или, в переводе, ячеек, реализующих сквозное соединение. При недостаточном количестве трассировочных линий и невозможности пустить проводник «в обход» САПР иногда удается использовать внутренние ресурсы ячейки таким образом, чтобы они передавали на выход копию входного сигнала. Естественно, задержки сигнала, пропущенного через комбинаторную логику ячейки, возрастают, и таких ситуаций следует всячески избегать. Более того, при этом первоначальные оценки разработчика, относящиеся к требуемому логическому объему ПЛИС, необходимо скорректировать в большую сторону. Таким образом, недостаток трассировочных ресурсов может стать источником целого комплекса негативных явлений, и этого следует избегать, особенно для high-end FPGA.
Следует подчеркнуть, что решение САПР об использовании ячеек в качестве своеобразного трассировочного ресурса нельзя считать неэффективным. Напротив, возможность реализации такого «последнего средства» свидетельствует о некотором ал-
горитмическом запасе устойчивости САПР. Альтернативой явился бы отказ трансляции некоторых проектов, наступающий при относительно небольшом коэффициенте использования кристалла.
Точное количество трассировочных линий каждого типа, к сожалению, приводится в документации не для всех семейств ПЛИС. Тем не менее, в таблице 3 приведены данные для семейств Spartan-II и Virtex-II Pro. Данные примеры относятся не только к различным сериям, но и к различным «поколениям» FPGA, поскольку разница между архитектурами Virtex/Spartan-II и Virtex-II Pro довольно ощутима.
С учетом описанных выше характеристик трассировочных ресурсов сведения, представленные в таблице 3, достаточно просто поддаются интерпретации. Отметим лишь, что количество длинных линий на каждый ряд или колонку в Virtex-II Pro ровно в 2 раза больше. Это дает возможность эффективно реализовывать вычислительные системы с общими магистралями данных, идущими вдоль ряда или колонки ячеек.
Блочная память
Блочная память относится к выделенным ресурсам ПЛИС. В ее отношении следует сказать, что различия между отдельными семействами в основном количественные — объем памяти и ее максимальная тактовая частота выше у серии Virtex. Внутри семейств имеется различие в способе организации памяти, как показано на рис. 1 (см. «КиТ» № 5, стр. 119). При переходе к семействам Virtex-II и Spartan-3 блоки памяти объемом 4 кбит были заменены на 18-кбитные блоки, ассоциированные с выделенными блоками умножения (то есть выход каждого блока памяти подключается к одному из входов блока умножения, что облегчает реализацию таких задач, как перемножение входного потока данных с таблицей, хранящейся в блочной памяти).
Соотношение между количеством логических ячеек и блоков памяти для более ранних семейств, использующих блоки памяти объемом 4 кбит, показано на рис. 7. На этом рисунке опять можно увидеть, что серия Spartan рассматривается в основном как недорогая платформа, способная в принципе реализовать все необходимые разработчику функ-
Количество логических ячеек, шт
Рис. 7. Зависимость числа 4-килобитных блоков памяти от логической емкости ПЛИС
ПЛИС компоненты
101
Количество логических ячеек, шт
Рис. 8. Зависимость числа выделенных умножителей от логической емкости ПЛИС
стараются воплотить наиболее современные архитектурные и технологические решения, обеспечив разработчику максимально гибкую и производительную платформу. В то же время ПЛИС Spartan комплектуются «по остаточному принципу», но с сохранением основных функциональных особенностей. Исходя из этого можно ожидать, что и в отношении выделенных умножителей будет складываться подобная же картина: максимум ресурсов для Virtex-II и разумный минимум для Spartan-З. Графики на рис. 8 хорошо иллюстрируют это. Здесь опять же некоторым исключением являются старшие модели Spartan-З, которые с трудом можно отнести к устройствам начального уровня.
Производительность
ции. Однако для младших ПЛИС этой серии число блоков памяти приблизительно в 2 раза меньше, чем у аналогичных по числу ячеек микросхем Virtex. Число блоков выравнивается только у старших кристаллов. Для Spartan-IIE это микросхемы объемом 400 и 600 тыс. логических вентилей, которые можно рассматривать в качестве дешевых только с некоторым допущением.
И в этом случае серию Spartan можно рассматривать как некий компромиссный вариант реализации программируемой платформы. Реализованные в ней блоки памяти совершенно аналогичны по функциональным возможностям блокам памяти в более мощных устройствах Virtex-E, но количество этих блоков выбрано таким образом, что их достаточно для большинства относительно несложных проектов, которые имеют хорошие шансы стать серийными. В то же время Spartan не всегда обеспечивает разработчику свободу маневра.
Поскольку в более современных семействах FPGA блоки памяти, как уже упоминалось, тесно связаны с выделенными умножителями, целесообразно рассмотреть их в следующей главе данной статьи.
Выделенные умножители
Характеристики ПЛИС в задачах цифровой обработки сигналов в большой степени определяются возможностью этих устройств реализовывать параллельную обработку цифрового потока. Для этой задачи используются прежде всего выделенные умножители, являющиеся основой для выполнения операции «умножение с накоплением». Подчеркнем, что от эффективности выполнения именно этой операции зависит достаточно большое число алгоритмов цифровой обработки сигналов, и в данном случае FPGA довольно устойчиво заняли свою нишу, обеспечивая самую низкую удельную стоимость одной математической операции. Разумеется, следует заметить, что выигрыш от исполь-
зования ПЛИС наблюдается в тех случаях, когда требуется параллельная обработка входного потока данных. В этом случае большое количество умножителей (их число варьируется от 4 до 512) обеспечивает очень высокую производительность на единственном кристалле. Ничто не мешает также использовать ПЛИС в качестве мощного Б8Р-сопроцессо-ра в составе системы на базе микропроцессора или микроконтроллера.
Из предыдущего материала постепенно складывалось впечатление, что в ПЛИС Уи1ех
Оценки производительности основных семейств ПЛИС Virtex и Spartan проводились в выпусках «КиТ» № 1 и № 3 за 2005 год. Вкратце напомним основные результаты таких оценок, но в сравнительном ключе. Как следует из результатов тестов, все FPGA показывают устойчивый рост тактовой частоты при переходе к более современному семейству. Исключение составляют только недавно анонсированные устройства: Virtex-4 в «арифметикологическом» тесте оказались несколько медленнее Virtex-II Pro (хотя необходимо сделать замечание, что на момент тестирования
600
500
400
300
200
100
о
□ Тактовая частота ■ Число умножителей (макс.)
Spartan-3
Spartan-3E
Virtex-4
Рис. 9. Характеристики выделенных умножителей современных семейств FPGA
Разрядность счетчика
Рис. 10. Характеристики производительности некоторых семейств FPGA
не были доступны файлы с описанием ПЛИС с максимальной градацией скорости), однако в остальном их характеристики демонстрировали предсказуемый рост, вполне ожидаемый от микросхем, выполненных по более современному техпроцессу. Однако с ПЛИС Spartan-3E ситуация несколько иная. Очевидно, что резкое снижение цены, объявленное для этого семейства, основано, в том числе, и на некотором облегчении ресурсов ПЛИС, что не могло не сказаться на производительности. С другой стороны, следует заметить, что упомянутое падение частоты соответствует цифрам в районе 100-200 МГц для основных цифровых узлов. Проектирование цифровых систем, способных работать с такой тактовой частотой, неизбежно вызывает целый ряд проблем, и «бутылочным горлышком» совершенно необязательно будет являться именно ПЛИС. При этом низкая цена, объявленная для нового семейства, позволяет рассматривать его в качестве DSP-сопроцессора в недорогих системах цифровой обработки данных. Интересно, что при общем снижении производительности основной матрицы логических ячеек в Spartan-3E увеличена максимальная тактовая частота работы выделенных умножителей — с 200 МГц (в Spartan-3) до 266 МГц.
Наконец, некое общее впечатление о соотношении производительности различных семейств ПЛИС дают графики, представленные на рис. 10. Эти графики представляют собой зависимости тактовой частоты счетчика с разрядностью 8-64, реализованного в различных семействах FPGA. Данный тест, несмотря на его синтетический характер, позволяет прояснить два вопроса. Во-первых, при малой разрядности счетчика основная задержка распространения сигнала будет определяться блоками ввода-вывода и эффективностью распределения тактового сигнала внутри ПЛИС. При увеличении разрядности сигнал необходимо каскадно распространить по отдельным разрядам счетчика, причем снижение тактовой частоты будет в этом случае зависеть от характеристик трассировочных ресурсов, а конкретнее — линий ускоренного переноса, специально предназначенных для построения подобных схем.
Можно сравнить изменения как при переходе между семействами одной серии (Spartan-IIE Spartan-3 и Virtex-II Virtex-4), так и между ПЛИС разных серий (Virtex-II и Spartan-IIE, Virtex-4 и Spartan-3). Результаты довольно интересны. Переход к 90-нанометровому техпроцессу вызвал в одном случае ощутимый рост тактовой частоты (Virtex) и практически незаметное ее изменение (Spartan). При этом серия Virtex сохраняет 1,5-2 кратное превосходство (впрочем, соотношение цен на эти серии примерно такое же). Отмечая, что нижняя граница работы счетчика все равно не опускается ниже 120 МГц, можно опять сделать вывод, что для серии Spartan сохраняется разумный компромисс между производительностью и ценой. При этом тактовая частота для основной матрицы программируемых ресурсов
повышается постольку, поскольку улучшается технология изготовления цифровых устройств.
Конфигурирование и поддержка САПР
В этом разделе остается повторить сформулированные выше тезисы. Все семейства ПЛИС имеют одинаковые базовые функциональные возможности. САПР, оборудование для программирования и конфигурационные флэш-ПЗУ для обоих семейств полностью одинаковы. Более того, для проектов, не использующих аппаратно-специфичные устройства, сохраняется переносимость между отдельными семействами и даже сериями, что дает возможность на ранних этапах разработки оттранслировать проект в различные семейства ПЛИС и сравнить их характеристики, сообщаемые средствами синтеза. Семейства Spartan поддерживаются бесплатной версией САПР ISE Webpack вплоть до довольно больших объемов, что делает их идеальным вариантом для начала работы с программируемой логикой — начальные вложения в комплектующие и программное обеспечение при этом минимальны. Свежие версии бесплатной САПР на оптическом носителе доступны для заказа у официального российского представителя Xilinx (www.plis.ru).
Различия в режимах конфигурирования прекрасно иллюстрируют соотношения между сериями. Для серии Virtex существует режим частичной реконфигурации кристалла. Очевидно, это актуально для сложных систем большого объема, когда часть проекта продолжает работу во время смены конфигурации остальной части кристалла. ПЛИС Spartan в этом качестве использовать вряд ли целесообразно. Однако в семействе Spartan-3E введена весьма интересная возможность загрузки конфигурации не из специальной флэш-ПЗУ, а из обычной NOR-флэш. Очевидно, второе решение гораздо дешевле. Хотя конфигурация может быть загружена в ПЛИС с помощью, например, микроконтроллера, интерфейс с NOR-флэш позволяет реализовать полностью автономное «двухчиповое» решение (поскольку все тактовые сигналы и перебор адресов выполняет сама ПЛИС). Как второстепенный факт следует отметить, что ПЛИС Virtex, имеющие внутри большее количество различных ресурсов, требуют и большего объема конфигурационных данных, чем аналогичные по логическому объему Spartan. Однако практическая разница для потребителя при этом несущественна, поскольку различие при использовании «штатных» флэш-ПЗУ от Xilinx проявляется только на достаточно емких кристаллах. Наиболее удобная и дешевая серия конфигурационных флэш-ПЗУ начинается с устройства объемом 1 Мбит, которое обеспечивает загрузку 2-3 младших устройств в каждом из семейств FPGA.
Области применения
Из сравнения технических характеристик и аппаратного состава основных серий ПЛИС можно сделать некоторые предположения о преимущественных областях их использования. Кроме подхода, основанного на использовании неограниченной реконфигурируемости ПЛИС, при проектировании нельзя не учитывать возможность их использования в качестве замены ASIC-устройствам в небольших партиях изделий. Совершенно справедливо, что современные микроконтроллеры способны выполнить те же задачи, что и проекты на базе ПЛИС, но при существенно более низкой цене за кристалл сопоставимой сложности. До недавнего времени этому ПЛИС могли противопоставить только возможность прототипирования новых устройств за счет реконфигурируемой архитектуры, однако их DSP-возможности и появление недорогих «компромиссных» семейств все больше и больше размывает границы областей, где применение стандартных ASIC-устройств однозначно целесообразнее.
Приведенный в статье достаточно большой объем материала может натолкнуть на мысль, что ориентироваться среди разновидностей ПЛИС достаточно сложно, и в процессе проектирования цифровых устройств неизбежно возникнут многочисленные задержки из-за попыток подобрать наиболее адекватную задаче элементную базу. Однако в действительности современные маршруты проектирования в значительной степени унифицируют этапы создания готового устройства из его высокоуровневого описания. Поэтому, сориентировавшись на стиль разработки, основанный на использовании языков описания аппаратуры (таких как VHDL и Verilog), конструктор может оперативно протестировать созданный проект на разных семействах ПЛИС и подобрать оптимальную элементную базу в весьма короткие сроки. Материалы данной статьи иллюстрируют тот факт, что более дешевая серия Spartan отнюдь не означает «шаг назад» в отношении общей архитектуры проекта, а всего лишь помогает сэкономить средства, если возможности high-end ПЛИС Virtex оказались явно избыточными. ■
Литература
1. Тарасов И. Эволюция ПЛИС серии Virtex // Компоненты и технологии. 2005. № 1.
2. Тарасов И. Эволюция ПЛИС серии Spartan // Компоненты и технологии. 2005. № 3.
3. Кузелин М. О., Кнышев Д. А., Зотов В. Ю. Современные семейства ПЛИС фирмы Xilinx: Справочное пособие. М.: «Горячая линия — Телеком». 2004.
4. Xilinx Inc. The Programmable Logic Data Book. 1999.
5. Xilinx Inc. The Programmable Logic Data Book. 2000.
6. Тарасов И. Е. Разработка цифровых устройств на основе ПЛИС Xilinx с применением языка VHDL. М.: «Горячая линия — Телеком». 2005.