Компоненты и технологии, № 5'2005 Компоненты
Сравнительный анализ архитектуры основных семейств FPGA
фирмы Xilinx
В настоящее время основные производители ПЛИС FPGA поддерживают как минимум две серии этих устройств. Одна из серий представляет собой наиболее производительный (и дорогой) вариант реализации программируемых устройств, в то время как вторая обеспечивает приемлемый уровень функциональности и производительности по существенно меньшей цене. Это справедливо и для ПЛИС фирмы Altera (серии Stratix и Cyclone), и для ПЛИС Xilinx (Virtex и Spartan). В данной статье проводится сравнительный анализ технических характеристик основных серий FPGA фирмы Xilinx.
Илья Тарасов, к. т. н.
Общие вопросы сравнения характеристик ПЛИС
Чтобы получить представление о характере обсуждаемого в статье вопроса, обратимся к аналогичной технической проблеме, существующей в области процессоров общего назначения и, по всей, видимости, известной каждому, кто имеет отношение к информационным технологиям или хотя бы выбирал конфигурацию домашнего компьютера. Длительное время в сфере ПК обсуждается вопрос — как соотносятся линейки продукции Pentium и Celeron фирмы Ш^? Является ли «облегченный» процессор Celeron низкопроизводительным бюджетным решением, покупка которого может быть произведена только при сильной стесненности в средствах, или же напротив, «полнофункциональные» Pentium не оправдывают себя, а их дополнительные возможности совершенно не требуются рядовому пользователю? Масса аргументов «за» и «против» привела в конце концов к появлению публикаций, которые тщательно анализировали, в каких именно условиях использование процессоров класса hi-end оправдывает себя. Имея доступ к подробной аналитической информации и результатам тестирования производительности процессоров в конкретных программных пакетах, пользователь мог сознательно сделать выбор в пользу того или иного решения.
Аналогичная ситуация складывается в настоящее время в области устройств программируемой логики. Являясь теми же цифровыми микросхемами, ПЛИС в полной мере подвержены тенденциям, характерным для цифровой микроэлектроники вообще. Так же, как и процессоры, ПЛИС могут быть выполнены либо на грани технологических возможностей, обеспечивая максимальную на настоящий момент производительность (и иметь весьма высокую цену), либо напротив, обеспечить разумный минимум возможностей, который все еще не приводит к резкому и неоправданному удорожанию. Перефра-
зируя принцип Парето, можно сказать, что 80% функциональности ПЛИС можно обеспечить, реализовав 20% аппаратных ресурсов. Естественно, такое процентное соотношение, взятое из первоисточника, весьма далеко от реального, однако общая картина выглядит именно так — основные функции ПЛИС могут быть выполнены достаточно небольшим набором логических модулей. Добавление дополнительных устройств в скором времени приведет к «насыщению» характеристик — пропорциональный рост производительности прекратится. Соответственно, имеется некоторая архитектура, обеспечивающая оптимальное соотношение «производительность — цена». Из современной роли ПЛИС в разработке цифровых устройств проистекает дополнительное требование к такой архитектуре — совместимость с наиболее производительными устройствами класса hi-end на уровне исходных текстов описания аппаратуры. Иными словами, основные цифровые узлы, разрабатываемые с использованием языков описания аппаратуры (HDL), должны реализовываться как на наиболее производительных, так и на дешевых ПЛИС. Во втором случае возможна некоторая потеря производительности и увеличение размера проекта за счет того, что ряд цифровых узлов будет выполнен с использованием большего количества логических ячеек.
Таким образом, вопросы, возникающие при выборе серии ПЛИС, аналогичны вопросам о выборе модели процессора. Является ли серия Virtex неоправданным вложением средств? Или напротив, бюджетные устройства Spartan принципиально не позволяют реализовать какие-либо возможности обработки сигналов или реализации цифровых устройств и являются, таким образом, вынужденным компромиссом? Ответ на этот вопрос не имеет смысла без описания условий применения этих серий. Кроме того, необходимо подробно рассмотреть, какие именно характеристики ПЛИС подлежат сравнению и каким образом они отражаются на параметрах проектируемых изделий.
Компоненты и технологии, № 5'2005 Номенклатура серий Virtex и Spartan
Основой ПЛИС FPGA является матрица логических ячеек (logic cells), окруженных блоками ввода-вывода, непосредственно подключаемыми к внешним выводам корпуса ПЛИС. Между отдельными ячейками, а также между матрицей ячеек и блоками ввода-вывода находятся программируемые трассировочные ресурсы. Кроме того, современные семейства ПЛИС (как Virtex, так и Spartan) содержат на кристалле достаточно большое количество разнообразных специализированных ресурсов, которые часто вносят существенные коррективы в процесс проектирования цифровых устройств. К таким устройствам относятся:
• выделенные трассировочные ресурсы, предназначенные для уменьшения задержки распространения сигналов, которые требуются для построения типовых узлов цифровой схемотехники (например, цепи ускоренного переноса);
• выделенные ресурсы для построения умножителей: вентили MULT_AND с уменьшенной задержкой распространения и аппаратно реализованные блоки умножения независимых 18-разрядных операндов в семействах Virtex-II/II Pro/4, Spartan3;
• блочная память;
• аппаратно реализованные процессорные ядра PowerPC PPC 405 (только Virtex-II Pro и Virtex-4 FX).
Перечень дополнительных узлов на этом не исчерпывается (особенно это относится к семейству Virtex-4, в составе которого имеется внушительное количество специализированных аппаратных устройств). Однако для сравнительного анализа двух основных серий FPGA Xilinx этих сведений вполне достаточно.
На рис. 1 представлена диаграмма развития архитектуры двух основных серий FPGA — Virtex и Spartan. Родоначальники второй серии, семейства Spartan и Spartan XL, на диаграмме не показаны как устаревшие. В действительности эти семейства не вполне соотносятся с основным направлением данной статьи, поскольку их архитектура основана на еще более ранней серии FPGA Xilinx под названием XC4000. Эта серия, имевшая несколько модификаций с разным напряжением питания, была достаточно широко распространена чуть менее 10 лет назад. Ее архитектура оказалась достаточно удачной и явилась, по сути дела, отправной точкой для дальнейшего развития. Однако опыт использования этих ПЛИС показал, что достаточно богатые возможности логических ячеек, с одной стороны, используются не полностью, а с другой — в архитектуре имеются «бутылочные горлышки», затрудняющие эффективную реализацию некоторых наиболее типичных блоков.
Производители встали перед дилеммой: наращивать функциональность логических ячеек и сложность трассировочных ресурсов, или же напротив, обеспечить эффективную реализацию только для наиболее типичных цифровых узлов, резко снизив общую производительность ПЛИС при выходе за пределы, очерченные производителем. Необходимо заметить, что дополнительным фактором,
Virtex Virtex-E Virtex-EM Virtex-II Virtex-II Pro
Virtex-4 LX, SX, FX
Аппаратное
процессорное
ядро
Power PC (только FX)
Spartan-II
Spartan-IIE
Spartan-3
Spartan-3E
Память 4 кбит блочная память 18 кбит блочная память
DSP Вентили MULT_AND для построения умножителей Выделенные блоки умножения 18x18 (и MULT_AND в логических ячейках) Блоки DSP48
Питание
2,5 В
,8 В
,5 В
,5 В
,2 В
1,2 В
Рис. 1. Основные семейства ПЛИС FPGA фирмы Xilinx
действовавшим в то время (как, впрочем, и сейчас), была необходимость укрепления позиций программируемой логики в качестве альтернативы заказным микросхемам. Для этого были необходимы недорогие устройства, которые обеспечивали бы гибкость и реконфигурирование на этапе разработки в сочетании с невысокой ценой в процессе производства небольших партий. Именно такую роль сыграли первые семейства новой серии Spartan, которые в целом были основаны на архитектуре XC4000, но за счет отказа от некоторых редко используемых возможностей их цену удалось существенно снизить. Необходимо отметить, что принципиального ограничения возможностей при этом не произошло, поскольку многие функции, которые ранее реализовывались в одном конфигурируемом логическом блоке XC4000, можно было реализовать на базе двух блоков Spartan.
Данная информация сейчас может рассматриваться в основном в качестве исторических сведений. Несмотря на то что поставки устройств XC4000 еще возможны, динамика развития в этой области такова, что даже продукция 5-7- летней давности на сегодняшний день является кандидатом на замену. Однако отказ от рассмотрения семейств Spartan и Spartan XL (и более ранних) имеет под собой еще одно серьезное основание. Как известно, основная САПР ПЛИС фирмы Xilinx под названием Xilinx Foundation Series, претерпев множество изменений, начиная с версии 4.1, была существенно переработана. Фактически состоялся переход к новой САПР — Integrated Software Environment (ISE), которая сегодня является основной. Версия 4.2 была последней, в которой поддерживалась старая САПР. Вместе с интерфейсом разработчика и названием в новой линейке САПР был кардинально изменен маршрут проектирования. Предыдущий маршрут, основанный на схемотехническом представлении (точнее, формате описания схем edif), хорошо подходил для ПЛИС объемом до десятков тысяч эквивалентных вентилей, но трассировка достаточно крупного проекта могла занимать несколько часов.
Новый маршрут, XST, был основан на представлении проекта в виде описания на одном из языков высокого уровня — VHDL или Verilog (в современных версиях можно исполь-
зовать оба этих языка в одном и том же проекте). Вопросы реализации цифровых узлов с помощью edif и HDL можно отдаленно сравнить с реализацией программных модулей на ассемблере и языках высокого уровня. Конечно, грамотный программист часто способен вручную оптимизировать небольшой фрагмент кода, но разработка крупной программы целиком на ассемблере представляет собой слишком сложную задачу, с которой современный оптимизирующий компилятор языка высокого уровня в целом справится лучше. Аналогичная ситуация сложилась и в сфере проектирования ПЛИС. Вынужденная потеря контроля над «низким уровнем» описания проекта скомпенсировалась тем, что новый маршрут проектирования обеспечил существенно большую скорость трансляции и вполне приемлемую производительность для наиболее типичных цифровых узлов.
Алгоритмы преобразования HDL-описаний и трассировки соединений также постоянно совершенствуются, поэтому в настоящее время, говоря о разработке проекта для ПЛИС объемом в сотни тысяч вентилей, необходимо иметь в виду именно HDL. Некоторый минус для разработчиков, использовавших XC4000 и Spartan, заключался в том, что эти устройства новым маршрутом проектирования не поддерживались, и поддержка их так и не была добавлена.
В связи с этим имеет смысл рассматривать только семейства ПЛИС, последовавшие за серией XC4000. Все они поддерживаются маршрутом XST и вполне могут быть использованы в современных разработках. Однако следует заметить, что даже семейства, приведенные на диаграмме, можно условно отнести к двум «поколениям». Несмотря на общую схожесть архитектур, сумма количественных изменений и существенно отличающиеся технико-экономические характеристики позволяют провести границу между двумя группами семейств FPGA. К первой группе условно отнесем семейство Virtex и основанное на нем семейство Spartan-II, а также последовавшие за ним Virtex-E, Virtex-EM и также основанные на их архитектуре Spartan-IIE. Ко второй — более поздние Virtex-II, Virtex-II Pro, Virtex-4 (в трех модификациях), Spartan-3 и недавно анонсированное Spartan-3E. Последние семейства расположены на диаграмме между Virtex-II Pro и Virtex-4,
Компоненты и технологии, № 5'2005
поскольку сточки зрения архитектуры они являются недорогими аналогами Virtex-II/II Pro, но выполнены по 90-нанометровому техпроцессу, как и Virtex-4.
Сравниваемые технические характеристики ПЛИС: объем
Современные ПЛИС (особенно архитектуры FPGA) имеют достаточно сложную внутреннюю структуру, которая не может быть адекватно оценена набором из двух-трех характеристик. В то же время непосредственно в обозначении конкретных устройств присутствует информация, отражающая их технические характеристики (например, объем в эквивалентных вентилях или логических ячейках). Может сложиться впечатление, что эта информация является достаточной для оценки ПЛИС. Однако в этом случае серия Virtex выглядит избыточной и явно проигрывает серии Spartan по соотношению «цена — объем ресурсов». Для прояснения ситуации необходимо проанализировать, какие дополнительные факторы оказывают влияние на итоговые характеристики изделия на базе ПЛИС.
При обозначении производителями своих микросхем цифро-буквенные комбинации в ряде случаев носят исключительно номинальный характер и позволяют только идентифицировать устройство. Однако иногда в обозначении можно выделить отдельные поля, указывающие на объем, производительность, точность (разрядность) и прочие параметры, которые производитель считает значимыми. При этом срабатывает принцип «большее число соответствует лучшим характеристикам выпускаемого устройства», поэтому потребитель может ориентироваться на положение «номера» в общем ряду продукции данной фирмы. В связи с этим интересно посмотреть на коррективы, вносимые фирмой Xilinx в обозначения своих ПЛИС в течение последних 10 лет.
В отношении обозначения устройств CPLD выбираемый параметр очевиден. Поскольку структура CPLD достаточно проста, и ресурсом, подлежащим учету, является количество макроячеек, именно оно присутствует в составе обозначения большого количества семейств таких микросхем. Например, в XC9536 имеется 36 макроячеек, а в XC9572 — 72. Однако для FPGA ситуация не столь очевидна. Поскольку даже ранние семейства имели в своем составе по крайней мере три типа ресурсов: логические ячейки, блоки ввода-вывода и трассировочные ресурсы, их соотношение требовалось отразить в названии. К примеру, для одной из устаревших в настоящее время серий XC3000 непосредственной корреляции между последними цифрами номера микросхемы и какими-либо параметрами логической емкости не прослеживается. Однако устройство с большим номером в обозначении имеет и большее количество программируемых ресурсов (всех типов). Естественно стремление разработчиков (и потребителей) получить в свое распоряжение некоторую интегральную характеристику, которую можно было бы ввести в наименование ПЛИС и ис-
пользовать как обобщенную оценку ее емкости. Возвращаясь к примеру с процессорами, можно сказать, что потребители могут оценить для себя отношение «цена — производительность», ориентируясь на тактовую частоту, сообщаемую производителем.
Для ПЛИС вариантом интегральной оценки ее емкости стал так называемый эквивалентный логический вентиль (logic gate). Из цифровой схемотехники известно, что любое цифровое устройство можно создать, используя только элементы 2И-НЕ (базис Шеффера) или 2ИЛИ-НЕ (базис Пирса). Таким образом, для оценки сложности цифровой схемы можно указать количество базовых элементов, требуемых для ее реализации. Ресурсам, входящим в состав ПЛИС, также можно установить некоторую «стоимость» в логических вентилях. В этом случае у производителя появляется возможность обосновать, например, почему соотношение цен между двумя ПЛИС не равно в точности соотношению количества их логических ячеек. Если в одной из ПЛИС присутствуют дополнительные ресурсы (например, блоки ввода-вывода), что увеличивает стоимость изготовления, то появляется возможность указать больший объем этой ПЛИС в логических вентилях. Подобный подход, основанный на включении в обозначение ПЛИС количества логических вентилей (в тысячах штук), является основным для многих производителей, в том числе и Xilinx.
Обращаясь к технической документации на ПЛИС различных семейств, можно обнаружить, что оценка емкости в вентилях носит интервальный характер. Что интересно, производители ПЛИС указывают в обозначении своих устройств максимальную емкость, тогда как нижнее значение этого интервала может быть меньше в 3 раза. Например, для ПЛИС Spartan-II-100 интервал логической емкости указан как 37-100 тыс. вентилей. Очевидно, нижняя граница соответствует ситуации, когда имеющиеся аппаратные ресурсы ПЛИС используются пользовательским проектом крайне неэффективно. Тем не менее потребитель, читая обозначение микросхемы, ориентируется именно на верхнюю границу. Можно добавить, что даже в рамках принятых методик оценки логической емкости существует множество способов регулировать этот параметр в зависимости от принимаемых производителем предположений о характере проектов, которые будут реализовываться в этих ПЛИС. Например, логический генератор, входящий в состав ячейки ПЛИС, может быть сконфигурирован как комбинаторная логика или как распределенная память. Предположение о том, что ПЛИС будет реализовывать именно распределенную память, позволяет несколько завысить ее логическую емкость. В этом случае в зависимости от принятого производителем соотношения «память — логика» емкость в вентилях может быть как завышена, так и уменьшена.
Кроме этого, в современных семействах ПЛИС на кристалле располагается большое количество выделенных ресурсов, реализованных аппаратно. С одной стороны, они не являются программируемыми в общепринятом смысле
Таблица. Аппаратный состав ПЛИС FPGA одинаковой логической емкости
ПЛИС Вентилей, тыс. Логи- ческих ячеек Распределенная память, бит Блочная память, бит (блоков)
XC2S100E 100 2700 38400 40960 (10)
XCV100 108,904 2700 38400 40960 (10)
XCV100E 128,236 2700 38400 81920 (20)
XCV1000 1124,022 27648 393216 131072 (32)
XCV1000E 1569,178 27648 393216 393216 (96)
XC3S1000 1000 17280 122880 442368 (24)*
XC2V1000 1000 5120 163840 737280 (40)*
* В семействах Spartan-3 и Virtex-II с каждым блоком
памяти ассоциирован умножитель независимых
18-разрядных операндов
этого слова, с другой — занимают некоторую площадь кристалла и увеличивают, таким образом, его стоимость. В таблице приведены технические характеристики ряда ПЛИС FPGA, относящихся к разным семействам.
Таблица разделена на две части. В первой части сравниваются ПЛИС начального уровня, заявленные производителем как имеющие объем около 100 тыс. эквивалентных вентилей. Для семейства Spartan-IIE уточнения не делается, его емкость приводится в документации как 100 тыс. вентилей ровно, тогда как для семейств Virtex и Virtex-E делается уточнение. Сравнивая оценку в вентилях, нетрудно заметить, что при совершенно одинаковом количестве логических ячеек и распределенной памяти (что естественно, поскольку распределенная память реализуется именно с помощью ячеек), в устройствах Virtex появляются «лишние» вентили. Что касается сопоставления Virtex и Virtex-E, то здесь нетрудно заметить, что во втором устройстве объем блочной памяти больше на 40 кбит. Однако таблица не дает ответа на вопрос, чем отличаются Virtex и Spartan-IIE.
Вторая часть таблицы представляет еще больший интерес. В ней приведены ПЛИС номинальным объемом миллион логических вентилей (то есть в 10 раз больше, чем в первой части таблицы). Считая, что в оценку по вентилям основной вклад вносят логические ячейки, грубый подсчет дает 27 тысяч логических ячеек для всех этих устройств. Примерно такое количество и имеется в ПЛИС Virtex/Virtex-E, однако в устройствах следующего поколения логических ячеек существенно меньше. Чем же это скомпенсировано, с учетом того, что в семействе Virtex-II миллион вентилей заявляется для устройства, содержащего в 5 раз меньше логических ячеек?
Ответ заключается в том, что с появлением таких семейств, как Virtex-II, Spartan-3 и далее, в ПЛИС увеличился удельный вес выделенных ресурсов. Опыт использования ПЛИС показывает, что матрица программируемых логических ячеек дает возможность выполнять быстрое прототипирование цифровых устройств, но их стоимость и задержки распространения сигналов существенно больше, чем для ASIC такой же функциональности. Соответственно, ПЛИС имеет смысл применять только в том случае, если разработка ASIC экономически нецелесообразна. Это означает, что достаточно выпускать небольшие количества
Компоненты и технологии, № 5'2005
ПЛИС, чтобы покрыть потребности рынка в аппаратных платформах для прототипирования и решениях для уникальных задач с небольшими объемами производства. Естественно, такое положение невыгодно для производителей ПЛИС, которые вынуждены искать способы снижения их стоимости и повышения привлекательности для потребителя. Если пути снижения стоимости более-менее понятны (уменьшение количества программируемых ресурсов в серии Spartan), то одним из путей повышения производительности ПЛИС стала их ориентация на решение задач цифровой обработки сигналов. Даже ранние семейства Spartan обеспечивали меньшую стоимость одной операции «умножение с накоплением», чем существовавшие в то время сигнальные процессоры, несмотря на то, что при этом ресурсы кристалла использовались далеко не полностью. Очевидным стало решение упростить реализацию алгоритмов цифровой обработки сигналов, разместив на кристалле ПЛИС соответствующие ресурсы. В ранних семействах Spartan и Virtex использовались специальные вентили MULT_AND с уменьшенной задержкой распространения, ускоряющие работу перемножителей. Свое логическое завершение этот процесс получил в Virtex-II, где появились полнофункциональные устройства умножения независимых операндов. Более того, блочная память в этих ПЛИС была организована таким образом, чтобы ее выход мог быть подан непосредственно на один из входов блока умножения (что требуется для целого ряда DSP-задач). В наиболее современном на настоящее время семействе Virtex-4 сделан еще один шаг — добавлен 48-разрядный аккумулятор, работающий на той же частоте, что и блочная память и блоки умножения. При максимальной тактовой частоте 500 МГц и при 512 блоках DSP ПЛИС позволяют достичь пиковой производительности в 256 млрд умножений с накоплением в секунду, что для современных сигнальных процессоров является недостижимым результатом. Разумеется, необходимо сделать поправку, что речь идет только о распараллеливаемых вычислениях. Однако даже с этой поправкой понятно, что реализация выделенных блоков умножения открыла для ПЛИС новую нишу применения, где они способны успешно конкурировать с ASIC. Таким образом, при оценке «вентильной» емкости ПЛИС необходимо учитывать, что на кристалле размещены еще и DSP-устройства.
Еще одним весьма важным в архитектуре ПЛИС событием стало размещение на кристалле устройств Virtex-II Pro ядра процессора PowerPC 405. Этот 32-разрядный процессор реализован вместе с кэш-памятью кода и данных (по 16 кбайт) и вспомогательными устройствами, соединяющими его с матрицей логических ячеек. Очевидно, что его учет в вентилях значительно увеличит емкость кристалла, введя в заблуждение разработчика, который будет рассчитывать на соответствующее количество программируемых ресурсов. Поэтому некоторое время назад в обозначении ПЛИС состоялся переход к указанию количества логических ячеек, а не вентилей.
Фирма Xilinx перешла к такому стилю обозначения, начиная с семейства Virtex-II Pro. ПЛИС серии Spartan пока обозначаются по количеству логических вентилей.
В целом можно констатировать, что в современных условиях оценка в вентилях является достаточно условной. При разработке изделия на базе ПЛИС обычно становятся понятны требования к основным программируемым ресурсам — логическим ячейкам и выделенным блокам умножения. В зависимости от серии ПЛИС соотношение между количеством этих ресурсов несколько меняется, что позволяет выбрать наиболее адекватное данной задаче устройство. Необходимо отметить, что данный подход нашел свое отражение в номенклатуре нового семейства Virtex-4, содержащего 3 подсемейства, различающихся именно соотношением логических ячеек, DSP-модулей и специальных узлов. Подробно о развитии архитектуры серии Virtex было рассказано в № 1'2005 нашего журнала.
Сравниваемые технические характеристики ПЛИС: производительность
Производительность проекта на базе ПЛИС может быть оценена множеством различных способов. Для современной микроэлектроники наиболее интересными параметрами являются максимальная тактовая частота проекта и максимальная задержка распространения сигнала (эти параметры, очевидно, взаимосвязаны). Ситуация с обозначением характеристик ПЛИС в связи с этим также несколько неоднозначна. Для ее прояснения обратимся еще раз к более простым устройствам с архитектурой CPLD.
Основной характеристикой их производительности является задержка «контакт-контакт», то есть время распространения сигнала от входного контакта корпуса ПЛИС до выходного контакта, с учетом того, что внутри ПЛИС сигнал проходит через одну макроячейку. Это время (в наносекундах) обычно входит в состав обозначения CPLD. Например, в составе семейства XC9500 имеются устройства с временами распространения сигнала 5, 6, 7, 10, 15 и 20 нс. Оценка быстродействия такой ПЛИС при большей сложности проекта достаточно тривиальна: две последовательно соединенные макроячейки соответствуют вдвое большему времени распространения сигнала. Такой простой анализ временных характеристик проекта является следствием простой архитектуры CPLD и отсутствию в них выделенных модулей ввода-вывода. Однако и возможности CPLD в организации электрических интерфейсов достаточно скромны.
Что касается устройств FPGA, то их более сложная архитектура обусловливает и повышенную сложность организации распространения сигнала по кристаллу. Прежде всего, логические ячейки основной матрицы таких ПЛИС не соединяются с выводами кристалла непосредственно. Вместо этого электрический интерфейс обеспечивается блоками ввода-вывода (IOB — Input/Output Block), которые обеспечивают существенно большую функциональность, чем в устройствах CPLD, но и вносят дополнительные задержки
в распространение сигнала. Такое положение дел делает оценку производительности FPGA достаточно нетривиальной задачей.
Прежде всего, необходимо заметить, что в ранних семействах FPGA использовалась и маркировка, включающая задержку распространения «контакт-контакт», как и для CPLD. Однако данный подход оставляет производителям ПЛИС еще больше свободы для маневра, поскольку такая задержка весьма существенно зависит от пути распространения сигнала. В простейшем случае задержка распространения сложится из задержки входного блока ввода-вывода, задержки на внутренней логике (для определенности примем, что логическая функция реализуется одной программируемой ячейкой) и задержки на выходном блоке ввода-вывода.
Однако такая оценка может носить чрезмерно синтетический характер. Во-первых, для разработчика основной интерес представляет задержка, которую ПЛИС обеспечит на реальных проектах, а не пример, выбранный разработчиком и подчеркивающий наиболее интересные архитектурные и технологические находки. Во-вторых, большая, чем у CPLD, сложность трассировочных ресурсов обусловливает слабо прогнозируемую величину задержки, дополнительно появляющейся при более или менее сложной трассировке конкретного проекта. Более того, для устройств FPGA существует возможность использования логических ячеек для «сквозного» (wire-through) распространения сигнала в том случае, когда матрица трассировочных ресурсов уже не в состоянии обеспечить требуемую сложность внутренних соединений. В этом случае итоговая рабочая частота проекта может оказаться существенно ниже заявляемой производителем для «идеального» случая.
Можно также заметить, что, к примеру, для FPGA Spartan-IIE существует в общей сложности около 100 (!) различных временных задержек, характерных для того или иного внутреннего модуля. Поэтому указать какое-либо «наиболее характерное время» без ущерба для информативности описания практически невозможно. Однако между задержками распространения сигнала на отдельных узлах внутри ПЛИС существуют определенные соотношения. Можно ожидать, что ПЛИС, выполненная по более совершенному техпроцессу, обеспечит пропорционально меньшие задержки на всех своих узлах. Таким образом, можно описать каждую группу устройств внутри определенного семейства неким «классом» скорости, который будет характеризовать техпроцесс и относить конкретную микросхему к одной из временных групп внутри каждого семейства. Такой параметр для FPGA Xilinx носит название «speed grade» и выбирается по принципу «больше значение — выше тактовая частота». Данный принцип обозначения временных задержек действителен для обеих основных серий этой фирмы. Конкретные величины задержек, связанные с отдельными устройствами или путями распространения сигнала, необходимо уточнять в технической документации.
Продолжение следует.