Анализ характеристик FPGA ХІІІпх
семейств Virtex-6 и Spartan-6
С освоением мировой электронной промышленностью выпуска цифровых микросхем с технологическими нормами 45/40 нм вполне естественно было ожидать перехода основных производителей FPGA на эту технологию. Фирма ХІІІпх анонсировала новые семейства, выполненные с ука-Илья ТАРАСОВ, г г
к. т. н. занными нормами, в феврале 2009 г., и теперь, с началом поставок этих
[email protected] устройств, можно провести сравнительный анализ их характеристик.
Введение
В то время как семейство, выполненное с использованием более современных технологий, привлекательно уже по причине чисто экстенсивного совершенствования характеристик (повышение тактовой частоты, уменьшение размеров и цены), Xilinx регулярно добавляла в свои FPGA интересные решения, улучшавшие отдельные аспекты проектирования. Введение «колоночной» архитектуры ASMBL в Virtex-4, 6-входовых LUT и диагональной трассировки в Virtex-5, переход в том же Virtex-5 к умножителям формата 25x18, регулярное добавление новых аппаратных ядер — вот краткий перечень знаменательных событий в мире ПЛИС, инициированных именно фирмой Xilinx. Анонсированные в феврале 2009 г. семейства Virtex-6 и Spartan-6, выполненные с применением технологических норм 40 и 45 нм соответственно, позволяют предполагать качественные изменения в характеристиках проектов на базе ПЛИС.
Прежде всего, уже обозначение новых продуктов позволяет дать некоторые комментарии. Ранее Xilinx выпустила продукты семейства Virtex-5 в сегменте высокопроизводительных FPGA (65 нм) и семейства Spartan-3 (90 нм) в сегменте дешевых уст-ройств. Также по 90-нм технологическому процессу было произведено семейство Virtex-4. С переходом Spartan-6 сразу к 45 нм, минуя 65, можно отметить, что Spartan-4 и 5 оказались пропущенными. Можно также вспомнить, что архитектура Spartan-3 весьма схожа не с Virtex-4, а с Virtex-II, который выпускался с нормами 0,15 мкм. В итоге получилось, что между сериями Virtex и Spartan наметился определенный раздел, когда 90-нм Spartan оказался отстающим по архитектурным решениям от Virtex-4, а 65-нм версия Spartan вообще не была выпущена. Можно, кстати, отметить, что при выпуске ПЛИС Spartan Xilinx осваивала тех-
нологические нормы «через одну», а серия Virtex представлена для всех основных норм. Поэтому пропуск 65 нм для Spartan является в какой-то степени ожидаемым. Теперь же Xilinx «выровняла» обе серии, причем не только по обозначению, но и, что весьма интересно, по архитектуре.
Уже при первом взгляде на обозначение устройств Spartan-6 можно обратить внимание на то, что в нем указывается количество логических ячеек (в тысячах) вместо количества вентилей. Впервые Xilinx ввела такой переход для семейства Virtex-II Pro, в составе которого появились процессорные ядра PowerPC и высокоскоростные последовательные приемопередатчики. С одной стороны, эти ядра могли быть оценены по эквивалентному числу вентилей, однако с другой — эти вентили не являлись программируемыми для пользователя, поэтому и возникла дилем-
ма — какую же из цифр указать в обозначении этих ПЛИС? Действительно, с увеличением удельного веса аппаратных ядер на первый план при оценке логической емкости ПЛИС стали выходить уже не вентили, а ячейки. В обозначении Spartan-6 мы также можем увидеть цифру, соответствующую тысячам логических ячеек, как и для современных семейств Virtex. Более того, среди Spartan-6 имеются как устройства LX, так и LXT — по классификации, которая ранее была прерогативой Virtex. И действительно, в Spartan-6 доступны скоростные последовательные приемопередатчики — великолепное дополнение для недорогих FPGA.
Состав семейств
В настоящее время имеется информация о следующих платформах:
Таблица 1. Характеристики ПЛИС семейства Virtex-б
Кристалл (XC6SV...) Virtex-6 LXT Virtex-6 SXT
LX75T LX130T LX195T LX240T LX365T LX550T LX760 SX315T SX475T
Секции (4 б-LUT + 8 FF) 11 б 40 20 000 31 200 37 б80 5б 880 85 920 118 5б0 49 200 74 400
Логические ячейки 74 49б 128 000 199 б80 241 152 3б4 032 549 888 758784 314880 47б 1б0
Триггеры 93 120 1б0 000 249 б00 301 440 455 040 б873б0 948 480 393 б00 595200
еле еде Ра ная память (max), кбит 1045 1740 3040 3б50 4130 б200 8280 5090 7б40
Блоки памяти BRAM (по 36 кбит) 15б 2б4 344 41б 41 б б32 720 704 10б4
Общая емкость BRAM, кбит 5б1б 9504 12 384 14 97б 14 97 б 22 752 25 920 25 344 38 304
Блоки синхронизации (MMCM) б 10 10 12 12 18 18 12 18
Контакты (max) 3б0 б00 б00 720 720 1200 1200 720 840
Дифференциальные пары (max) 180 300 300 3б0 3б0 б00 б00 3б0 420
DSP48E1 288 480 б40 7б8 57 б 8б4 8б4 1344 201б
PCI Express блок 1 2 2 2 - 2 2
10/100/1000 Ethernet MAC 4 4 4 4 - 4 4
Трансивер GTX 12 20 20 24 24 3б - 24 3б
Коммерческий диапазон (C) -L1 ,-1 ,-2,-3 -L1 ,-1 ,-2,-3 -L1,-1 ,-2,-3 -L1 ,-1 ,-2,-3 -L1 ,-1 ,-2,-3 -L1 ,-1 ,-2 -L1 ,-1 ,-2 -L1 ,-1 ,-2,-3 -L1 ,-1 ,-2,-3
Индустриальный диапазон (I) -L1 ,-1,-2 -L1 ,-1 ,-2 -L1,-1,-2 -L1 ,-1 ,-2 -L1 ,-1 ,-2 -L1 ,-1 -L1 ,-1 -L1 ,-1,-2 -L1 ,-1 ,-2
Конфигурационная память, Мбит 25,0 41,7 58,7 70,4 91,б 137,4 17 б,3 99,б 149,4
Корпус Размер/шаг, мм Максимальное число пользовательских контактов / GTX
FF(G)484 23x23/1,0 240/8 240/8
FF(G)7 84 29x29/1,0 3б0/12 400/12 400/12 400/12
FF(G)115б 35x35/1,0 б00 /20 б00 /20 б00/20 б00/20 б 00 /2 0 б00 /20
FF(G)1759 42,5x42,5/1,0 720/24 720/24 840/3б 840 /3б
FF^^O 42,5x42,5/1,0 1 200/0 1 200/0
Таблица 2. Характеристики ПЛИС семейства Spartan-6 LX (1,2; 1,0 В)
Кристалл XC6S... LX4 LX9 LX16 LX25 LX45 LX75 LX100 LX150
Секции (4 6-LUT + 8 FF) 600 1430 2278 3758 6822 11 662 15 822 23 038
Логические ячейки 3840 9152 14 579 24 051 43 661 74 637 101 261 147 443
Триггеры 4800 11 440 18 224 30 064 54 576 93 296 126 57б 184304
Распределенная память (max), кбит 75 90 136 229 401 692 976 1355
Блоки памяти BRAM (по 18 кбит) 12 32 32 52 116 172 268 268
Общая емкость BRAM, кбит 216 57 б 57 б 936 2088 3096 4824 4824
Блоки синхронизации (CMT) 2 2 2 2 4 б б б
Контакты (max) 132 200 232 266 358 400 480 576
Дифференциальные пары (max) бб 100 116 133 179 200 240 288
DSP48A1 8 16 32 38 58 132 180 180
PCI Express блок - - - - - - - -
Контроллер памяти 0 2 2 2 2 4 4 4
Трансивер GTP - - - - - - - -
Коммерческий диапазон (C) -L1 ,-2,-3 -L1 ,-2,-3 -L1 ,-2,-3 -L1 ,-2,-3 -L1 ,-2,-3 -L1 ,-2,-3 -L1 ,-2,-3 -L1 ,-2,-3
Индустриальный диапазон (I) -L1 ,-2,-3 -L1 ,-2,-3 -L1 ,-2,-3 -L1 ,-2,-3 -L1 ,-2,-3 -L1 ,-2,-3 -L1 ,-2,-3 -L1 ,-2,-3
Конфигурационная память, Мбит 2,7 3,7 6,4 11,9 19,6 26,5 33,8
Корпус Размер/шаг, мм Максимальное число пользовательских контактов
C PG19б 8х8/0,5 106 106 106
TQG144 20x20/0,5 102 102
CSG225 13x13/0,8 132 160 160
CSG324 15x15/0,8 200 232 226 218
CSG484 19x19/0,8 320 328 338 338
FT(G)256 17x17/1,0 186 186 186
FG(G)484 23x23/1,0 266 316 280 326 338
FG(G)67 б 27x27/1,0 358 408 480 498
FG(G)900 31x31/1,0 576
Таблица 3. Характеристики ПЛИС семейства Spartan-б LXT
Кристалл (XC6S...) LX25T LX45T LX75T LX100T LX150T
Секции (4 6-LUT + 8 FF) 3758 6822 11 662 15 822 23 038
Логические ячейки 24 051 43 661 74 637 101 261 147443
Триггеры 30 064 54 57 б 93 296 126576 184304
Распределенная память (max), кбит 229 401 692 97 б 1355
Блоки памяти BRAM (по 18 кбит) 52 116 172 268 268
Общая емкость BRAM, кбит 936 2088 3096 4824 4824
Блоки синхронизации (CMT) 2 4 б
Контакты (max) 250 296 348 498 540
Дифференциальные пары (max) 125 148 174 249 270
DSP48A1 38 58 132 180 180
PCI Express блок 1 1 1
Контроллер памяти 2 2 4
Трансивер GTP 2 4 8
Коммерческий диапазон (C) -2,-3,-4 -2,-3,-4 -2,-3,-4 -2,-3,-4 -2,-3,-4
Индустриальный диапазон (I) -2,-3 -2,-3 -2,-3 -2,-3 -2,-3
Конфигурационная память, Мбит 6,4 11,9 19,6 26,5 33,8
Корпус Размер/шаг, мм Максимальное число пользовательских контактов/Трансиверы GTP
CSG324 15x15/0,8 190/2 190/4
CSG484 19x19/0,8 296/4 292/4 296/4 296/4
FG(G)484 23x23/1,0 250/2 296/4 268/4 296/4 296/4
FG(G)67 б 27x27/1,0 348/8 376/8 396/8
FG(G)900 31x31/1,0 498/8 540/8
• Virtex-6 LX/LXT — платформа с большим объемом логики;
• Virtex-6 SXT — платформа, предназначенная для цифровой обработки сигналов;
• Virtex-6 HXT — платформа, предназначенная для построения скоростных телекоммуникационных устройств на основе приемопередатчиков GTH с пропускной способностью до 11,2 Гбит/с;
• Spartan-6 LX — недорогое семейство, предназначенное для реализации устройств преимущественно с помощью логических ячеек;
• Spartan-6 LXT — семейство с высокоскоростными последовательными приемопередатчиками GTP (до 3,25 Гбит/с). Основные характеристики анонсированных FPGA для семейств Virtex-6 LX, LXT,
SXT, а также для Spartan-6 LX и Spartan-6 LXT приведены в таблицах 1-3. Можно видеть, что почти все микросхемы, кроме V6LX760,
имеют в своем составе аппаратные скоростные приемопередатчики. Это является свидетельством того, что Xilinx существенно полагается на характеристики данного типа устройств, которые к тому же служат аппаратным интерфейсом для построения таких модулей, как Ethernet 1G, PCI Express и SATA.
Анализ характеристик новых семейств
Возрастание сложности ПЛИС приводит к тому, что ознакомление только с технической документацией не всегда позволяет дать развернутую картину того, как именно производить выбор ПЛИС для конкретного проекта с учетом особенностей архитектуры и характеристик установленных на кристалле элементов. Поэтому в рамках настоящей статьи будет сделана попытка указать на наиболее значимые новые свойства и те следствия, которые важны для практического конструирования.
Архитектура логических ячеек
Внесены ли в новые семейства принципиальные улучшения, которые позволяют ожидать качественного роста характеристик проектов? На этот вопрос можно с уверенностью дать утвердительный ответ. В новых семействах в очередной раз изменена сама структура логической ячейки: вместо конфигурации «LUT6 + триггер» (которая впервые появилась в Virtex-5) введена «LUT6 + 2 триггера» (рис. 1, 2).
С уменьшением технологических норм площадь логической ячейки стала уменьшаться. Вместе с тем возросли удельный вес и значимость трассировочных ресурсов и выделенных аппаратных ядер. Экономия площади путем уменьшения размеров ячейки перестала быть актуальной, и вместе с тем одна более мощная ячейка позволяла уменьшить общее количество ячеек, требуемых для реализации проекта. Долгое время стандартным решением для комбинаторной логики в FPGA была 4-входовая таблица истинности (LUT4), представляющая собой статическую память 16x1. Добавление каждого нового входа к этой таблице удваивало требуемый размер памяти, что вызывало рост
Рис. 1. Эволюция архитектуры логической ячейки в различных поколениях FPGA Virtex
Spartan-3A
LUT4/FF Pair
Spartan-6
LUT6/Dual FF Pair
>■
>1*
Рис. 2. Изменения в архитектуре логической ячейки семейства Spaгtan-6 по сравнению со Spaгtan-3A
площади ПЛИС в геометрической прогрессии. 4-входовая таблица истинности долгое время была общепринятым компромиссом между занимаемой на кристалле площадью и сложностью реализуемых функций, однако с развитием архитектуры FPGA появлялось все больше и больше возможностей увеличения числа входов комбинаторного выражения путем привлечения к его реализации дополнительных ресурсов логической ячейки. Такие конструкции с дополнительными входами могли реализовывать только ограниченные классы комбинаторных схем; правда, в их числе такие широко распространенные узлы, как мультиплексоры. Однако с уменьшением площади кристалла, требуемой для реализации логических генераторов, увеличение числа их входов перестало быть настолько сложной задачей, чтобы сложность перевешивала получаемые выгоды. Поэтому с переходом на 65-нм семейство Virtex-5 Xilinx добавляет два входа к LUT, используя для этого статическую память 64x1. Такое решение снимало ограничения на вид реализуемых комбинаторных выражений (оставляя при этом возможность привлекать дополнительные ресурсы логической ячейки для дальнейшего наращивания числа входов), а рост площади кристалла с учетом более плотной упаковки ресурсов оказался не настолько существенным, чтобы неоправданно увеличить стоимость. Можно заметить, что серия Virtex имеет больший удельный вес выделенных аппаратных ресурсов, на которые увеличение площади LUT никак не повлияло.
Устройства Virtex-5, по сведениям Xilinx, заняли 97% рынка 65-нм high-end FPGA, что, несомненно, подтверждает правильность выбора архитектурных решений. Однако при эксплуатации этих FPGA выявились интересные нюансы, проистекающие не из технической, а скорее из организационной стороны проектирования на ПЛИС. Для сложных проектов, особенно на таких емких устройствах, как Virtex-5, весьма эффективно использование IP-ядер (soft-IP), доступных через Core Generator. Однако ряд таких ядер был тщательно оптимизирован
для эффективной реализации в ПЛИС со старой архитектурой, основанной на LUT4, и переход к 6-входовым LUT не позволил в полной мере задействовать новые возможности Virtex-5. Рассмотрим простейший пример.
Допустим, что комбинаторная схема имеет 24 входа. Для простоты анализа примем также, что дополнительные ресурсы ячеек неприменимы, и используются исключительно LUT. Для реализации такой схемы требуется 6 LUT4 и только 4 LUT6. На втором уровне будут, соответственно, 6 и 4 сигналов, и в общем случае потребуются две LUT4 для объединения 6 сигналов второго уровня (а следовательно, еще и третий уровень LUT из одной ячейки) и только одна LUT6. Если мы сориентируемся на максимальную производительность и решим применить глубокую конвейеризацию, потребуются три уровня триггеров для LUT4 (6 после первого уровня LUT и 2 после второго), а для LUT6 будет достаточно всего 4 триггеров. Если жестко установить структуру такого узла с трехступенчатой конвейеризацией, будет не только неоправданно увеличена латентность, но и задействованы дополнительные триггеры. При этом необходимо иметь в виду, что для Virtex-5 оценка емкости выполнена в эквивалентных ячейках, приведенных к виду LUT4 + триггер. Например, в V5LX330 имеется только 207 тысяч триггеров, которых, в принципе, может оказаться вполне достаточно для схемы, ориентированной на LUT6. Однако жесткая фиксация схемы с принудительным использованием LUT 6 как LUT4 может исчерпать триггеры ПЛИС, особенно в сложных проектах с глубокой конвейеризацией, которые очень привлекательны для реализации в ПЛИС большого объема. Именно этот эффект и наблюдался для ряда 1Р-ядер — в Virtex-5 быстро заканчивались триггеры, хотя возможности логических генераторов использовались совершенно нерационально, и число ядер, помещавшихся в ПЛИС, оказывалось заниженным. Для получения решения, оптимального для Virtex-5, следовало провести повторный синтез ядер, отталкиваясь от их поведенческого, а не структурного описания.
Семейства Virtex-6 и Spartan-6 выполнены по еще более тонкому технологическому процессу, что дает основания предполагать возможность размещения еще большего количества ресурсов в рамках одной логической ячейки. Именно это и можно наблюдать, анализируя соотношение ресурсов: в новых семействах применена архитектура LUT6 + 2 триггера. Можно с удовлетворением отметить, что изменения коснулись не только Virtex, но и Spartan, таким образом, традиционно более дешевые ПЛИС Spartan нового поколения имеют полнофункциональную логическую ячейку, как и Virtex-6.
Второй триггер может быть использован как для более глубокой конвейеризации, так и для реализации режима, в котором логический генератор используется как два 5-входовых генератора. Естественно, они должны выбирать из 6 общих входов, но выходы могут быть индивидуальными. При этом каждый выход таких LUT5 может быть запомнен в собственном триггере. Это обеспечивает разработчикам (и алгоритмам синтеза) большую гибкость, чем при использовании FPGA предыдущих поколений.
В целом, новая ячейка представляет собой вид ресурса ПЛИС, который улучшает характеристики проектов без необходимости специального вмешательства разработчика (что требуется, например, для правильной настройки некоторых IP-ядер). Средства синтеза автоматически реализуют конструкции HDL на новых ячейках, эффективно используя и 6-входовые логические генераторы, и второй триггер. В то же время разработчик может дополнительно обратить внимание на состав аппаратных ресурсов, реализуя такие узлы, которые обеспечат «наиболее плотное прилегание к аппаратуре».
Архитектура CLB Spartan-6
Конфигурируемый логический блок (CLB) — это своеобразная «молекула» в FPGA, состоящая из «атомов»-ячеек (logic cells). Возможности самих ячеек, несомненно, являются весьма важными для достижения высоких показателей проекта, однако дополнительные ресурсы, служащие для объединения ячеек в конфигурируемый логический блок, также могут привнести полезные свойства.
Рассмотрение можно начать с семейства Spartan-6, поскольку именно в нем появилось заметное нововведение в виде трех разновидностей логической ячейки. Можно вспомнить, что полезной особенностью FPGA Xilinx являлась возможность использования логического генератора в режимах распределенной памяти 16x1 или сдвигового регистра. Впоследствии число таких универсальных ячеек было сокращено, и появились секции SliceM и SliceL (символы M и L означают Memory и Logic соответственно, то есть ряд ячеек мог реализовывать функцию памяти, а остальные — только логику). Вместе с тем оба типа секций располагались в рамках каждого CLB, то есть
секции, способные реализовать память и сдвиговые регистры, равномерно распределялись по всей матрице ^В. В Spartan-6 появился третий тип — SliceX. Что интересно, это менее мощная разновидность секции, поскольку в ней отсутствует цепь ускоренного переноса, то есть она не может служить для организации сложения или вычитания.
В итоге в ^В Spartan-6 оказываются следующие секции:
• SliceM — универсальная секция с LUT, конфигурируемыми во всех режимах, а также линиями ускоренного переноса.
• SliceL — LUT конфигурируется только как логический генератор, есть цепи ускоренного переноса.
• SliceX — LUT конфигурируется только как логический генератор, нет цепей ускоренного переноса.
Из двух ^В один содержит пару секций SliceL + SliceX, а другой — SliceM + SliceX. Блоки, соответственно, называются ^В^Х и CLB_MX (рис. 3).
Такое нововведение следует трактовать как формальное ухудшение функциональности. С другой стороны, можно указать и на позитивные факторы — упрощение ячеек, а следовательно, повышение производительности и уменьшение стоимости. В практических проектах можно рассчитывать на то, что цепи ускоренного переноса будут требоваться не в 100% цифровых узлов, так что САПР будет иметь возможность поместить имеющиеся в проекте арифметические блоки в те секции, где имеются цепи ускоренного переноса.
Архитектура CLB Virtex-6
В отличие от Spartan-6, ^В Virtex-6 включает в себя одну секцию SliceM и три секции SliceL (рис. 4). Таким образом, уменьшения функциональности в серии Virtex не наблюдается. Более того, Virtex-6 в каждой секции имеет две цепи ускоренного переноса, что облегчает, например, построение сумматора трех операндов.
Распределенная память строится на базе LUT в секциях SliceM, как и в предыдущих
поколениях FPGA, и может работать в режимах Single port, simple dual port, dual port и quad port (один порт чтения/записи, три порта только для чтения). 6-входовая логическая ячейка соответствует 64 битам памяти в одной LUT.
Между CLB семейства Virtex-6, как Virtex-5, проложены как вертикальные и горизонтальные, так и диагональные трассировочные линии. Это позволяет охватить короткими (и быстрыми) связями большее количество CLB, чем в предыдущих поколениях FPGA (рис. 5). На рисунке цветами выделены CLB, трассировка до которых может быть выполнена за 1, 2 и 3 шага соответственно. Количество ячеек, трассировка до которых может быть выполнена за 2 шага, увеличивается — по сравнению с Virtex-4 — примерно в полтора раза. Этот ресурс также применяется средствами трассировки автоматически и не требует отдельного внимания со стороны разработчиков.
В целом, характеристики ячейки семейства Virtex-6 схожи с характеристиками ячейки Virtex-5 в плане дополнительных возможностей. Основным отличием, как уже упоминалось выше, является наличие второго триггера, что позволяет реализовывать схемы с большим количеством этих элементов при меньших затратах логических ячеек.
■ ■ ■
■■ ■■
■■■ ■■■
■■нш ■ шяии
■■■ ■■■
■■ ■■
■ ■ ■
Рис. 5. Локальные соединения между ^В, выполняемые с применением диагональной трассировки в семействах Viгtex-5 и Viгtex-6
Блочная память
Блочная память является показательным примером встроенного аппаратного ресурса, повышающего эффективность ПЛИС при решении типовых задач схемотехники. Действительно, блок памяти занимает гораздо меньше места, чем аналогичный по емкости блок, выполненный на распределенной памяти логических ячеек, и к тому же он обладает предсказуемо высокими характеристиками производительности.
Память не претерпела революционных изменений и по-прежнему размещается блоками по 18 кбит в Spartan и 36 кбит в Virtex. Для ПЛИС нового поколения увеличен удельный вес блочной памяти, что и показано на рис. 6.
Интересно заметить, что ПЛИС Virtex-6 LX/LXT имеют в 2 раза больший удельный вес памяти, чем Virtex-5 LX, и такой же, как и в Virtex-5 SXT, хотя для цифровой обработки в целом требуется большой объем памяти для хранения коэффициентов и цифровых отсчетов. Для объемов свыше 220 тысяч ячеек темпы роста несколько замедляются, но Virtex-6 SXT, в свою очередь, удваивает показатель «объем памяти на единицу логики». Дополнительно на рис. 6 показано
Ф Virtex-6 LX Spartan-6 LX —*■ Virtex-6 SXT —Virtex-5 LX —О Virtex-5 SXT
H X
1 «33 uuu к
nj ju UUU с
z
\D I
0
100 000 200 000 300 000 400 000 500 000 600 000 700 000 800 000 Число логических ячеек
Рис. 6. Зависимость объема блочной памяти от числа логических ячеек
♦ Virtex-6 LX Virtex-5 LX
-Spartan-6 LX Virtex-5 SXT
Virtex-6 SXT
CL
U>
a
a
О
*
О
100 000 200 000 300 000 400 000 500 000 600 000 700 000 800 000
Число логических ячеек
Рис. 7. Зависимость числа блоков DSP48 от числа логических ячеек
это же соотношение для Spartan-6, которое совпадает с линией для Virtex-5 LX.
Семейство Spartan-6 имеет очень интересное дополнение к аппаратным блокам, отсутствующее в Virtex-6. Это аппаратный контроллер внешней памяти DDR/DDR2/DDR3, имеющий название MCB (Memory Controller Block). Такие контроллеры (до 4 на микросхему) позволяют подключать внешнюю память с 16-разрядной шиной данных без дополнительных компонентов, что существенно расширяет возможности проекта в FPGA (особенно проектов на базе MicroBlaze или другого процессорного ядра, способного получить преимущества от наличия памяти большого объема).
Блоки цифровой обработки сигналов XtremeDSP
Количество блоков DSP в ПЛИС нового поколения также существенно увеличено. Более того, преодолен рубеж в 2000 таких блоков, а с учетом максимальной тактовой частоты — и рубеж пиковой производительности в 1 TMAC/s (рис. 7). Кроме того, платформа SXT, предназначенная для цифровой обработки, по объему ресурсов превосходит Virtex-5 SXT, не перекрываясь, то есть младшая ПЛИС Virtex-6 SXT имеет больше логи-
ческих ячеек и блоков XtremeDSP, чем любая из микросхем Virtex-5 SXT.
Как Virtex-6, так и Spartan-6 имеют в своем составе блоки XtremeDSP, то есть устройства, способные выполнять умножение с накоплением на системной тактовой частоте (600 МГц для Virtex-6 и 325 МГц для Spartan-6). Для накопления используется 48-разрядный аппаратный аккумулятор, который в семействе Spartan до этого существовал только в достаточно дорогом подсемействе Spartan-3A DSP.
Блоки цифровой обработки в семействах Virtex-6 и Spartan-6 имеют существенное отличие: блок DSP48E1 в Virtex-6 способен умножать 25- и 18-битные числа, а блок DSP48A1 в Spartan-6 ограничивается двумя 18-разрядными операндами. Увеличение разрядности одного из операндов до 25 бит не только способствует увеличению динамического диапазона представляемых значений, но и помогает с помощью всего двух умножителей 25x18 выполнять перемножение чисел с плавающей точкой с одинарной точностью (в формате short float). В предыдущих поколениях FPGA для этого потребовалось бы 4 умножителя, так что новая архитектура блока XtremeDSP способствует эффективной реализации цифровых фильтров, использующих более точное представление чисел.
Нововведением — по сравнению с семейством Virtex-5 — является предварительный сумматор (pre-adder), показанный на рис. 8.
На первый взгляд, его функции существенно ограничены, а применение очень узко. Однако такой модуль является хорошим примером технического решения, которое при небольших аппаратных затратах позволяет получить существенный выигрыш при реализации определенного класса алгоритмов. В данном случае речь идет о цифровых фильтрах с симметричными коэффициентами (рис. 9). При прямом вычислении суммы произведений оказывается, что математически выражение k13xx13+k17xx17 при равенстве k13 и k17 может быть представлено как k13x(x13+x17). Для Virtex-6 (и Spartan-6) операция суммирования цифровых отсчетов x13+x17 может быть выполнена как раз добавленным предварительным сумматором. Можно обратить внимание, что сумматор стоит в цепи 18-разрядного операнда, который предполагается источником данных (25-разрядный операнд с большим динамическим диапазоном предпочтительнее для передачи коэффициентов фильтра). В конечном итоге для фильтров с симметричными коэффициентами мы имеем двукратное уменьшение количества требуемых для реализации блоков XtremeDSP. Разумеется, для этого необходимо, чтобы алгоритм обработки подразумевал использование симметричных коэффициентов, но это не такой уж узкий класс алгоритмов цифровой обработки.
В таблице 4 показаны сводные характеристики производительности для FPGA семейств Virtex разных поколений. Из таблицы видно, что пиковая производительность возрастает в 2 раза при переходе к каждому новому семейству, что достигается прежде всего соответствующим двукратным ростом количества блоков цифровой обработки сигналов. Тактовая частота при этом возрастает приблизительно на 10% относительно предыдущего семейства. Это означает, что получение максимальной отдачи от FPGA серии SX возможно при глубоком распараллеливании процессов обработки, например при реализации многоканальных фильтров высоких порядков.
Блоки ввода/вывода
Блоки ввода/вывода для семейства Virtex-6 претерпели в основном эволюционные улуч-
Рис. 9. Пример симметричных коэффициентов цифрового фильтра
Рис. S. Предварительный сумматор в блоке XtremeDSP48E1
Рис. 10. Динамическое отключение терминаторов при работе с двунаправленными шинами
Таблица 4. Сводная таблица производительности FPGA ХШпх в задачах цифровой обработки сигналов
Показатель Virtex-4 Virtex-S Virtex-6
Тактовая частота, МГц 500 550 600
Количество блоков 512 1056 2016
Пиковая производительность, GMAC/s 256 580 1200
Примечание. Все частоты указаны
для исполнения ПЛИС с наиболее быстрым
классом скорости (speed grade).
шения. Если для семейства Virtex-5 максимальная скорость обмена составляла 1,2 Гбит/с, то для Virtex-6 она оказалась увеличена до 1,4.
Тем не менее, в новом семействе можно наблюдать интересное добавление — динамическое управление входным импедансом, что позволяет реализовать интерфейс HSLVDCI — High-Speed Low Voltage Dynamically Controlled Impedance. Этот интерфейс отличается пониженным потреблением энергии, поскольку позволяет отключать терминаторы динамически, это показано на рис. 10.
В данном случае показан пример реализации скоростной двунаправленной шины. При чтении данных требуется установка резисторов pull-up и pull-down, что и реализуется с помощью соответствующей настройки блока ввода/вывода. При записи данных терминаторы уже не требуются, однако в предыдущих поколениях FPGA они оставались бы подключенными к выходному буферу, обуславливая повышенное потребление тока. Динамическое управление импедансом позволяет отключать терминаторы, когда соответствующий вывод переключается в режим выхода.
Для Spartan-6 изменения (по сравнению с предыдущим поколением Spartan-3) достаточно существенны — архитектура блоков ввода/вывода приближена к серии Virtex. В блоки введены модули сериализаторов и десериализаторов (IOSERDES) с коэффициентом преобразования до 4:1 (каскадируемые до 8:1).
Скоростные
последовательные интерфейсы
В части последовательных интерфейсов можно отметить два события: анонс платформы Virtex-6 HXT с приемопередатчиками GTH, способными работать на скоростях до 11,2 Гбит/с, и появление платформы Spartan-6 LXT. Последнее событие дает богатый материал для переосмысления роли ПЛИС в практике конструирования, поскольку появляется реальная возможность создания недорогих устройств, содержащих такие интерфейсы, как Gigabit Ethernet, SATA и PCI Express, создаваемые на базе гигабитных приемопередатчиков. Spartan-6 содержат блоки GTP, как в ранних платформах семейства Virtex-5, а в Virtex-6 установлены более скоростные блоки GTX.
Верхнего предела в 3,125 Гбит/с не хватает для реализации интерфейса PCI Express 2.0, который работает на скорости до 5 Гбит/с, однако достаточно для реализации первого поколения этого интерфейса. Ядро PCI Express 2.0 доступно в составе Core Generator, однако характеристики, касающиеся поддержки режима 8 lane, рекомендуется уточнять в регулярно обновляемой Xilinx документации на данное IP-ядро.
Для ядра PCI Express доступна также функция Root Port, которая позволяет соединять несколько ПЛИС с помощью этого интерфейса (без наличия компьютера).
Процессорные системы
С точки зрения создания процессорных систем Virtex-6 и Spartan-6 пока не предлагают революционных решений. Для обоих семейств доступны версии софт-процессора MicroBlaze, получившие соответствующий прирост тактовой частоты; сборка системы на базе этого процессора может быть проведена с помощью программного продукта Embedded Development Kit.
19 октября этого года был опубликован пресс-релиз, где объявлялось о начале совместной работы компаний Xilinx и ARM по реализации процессорного ядра ARM Cortex и шины AMBA в будущих поколениях FPGA Xilinx. Данное заявление открывает весьма широкие перспективы для создания систем среднего класса (относительно, например, высокопроизводительных и дорогих систем на базе Virtex), поскольку процессоры ARM имеют весьма обширную экосистему, как в плане IP-ядер, так и в плане инструментального программного обеспечения, библиотек и приложений. Технические детали в упомянутом пресс-релизе не освещены, поэтому в настоящее время можно только предполагать, будет ли ARM добавлен в Virtex, Spartan, или появится некое новое семейство.
Средства разработки
Поддержка новых семейств появилась в САПР ISE 11.2 (на момент подготовки статьи активной является версия 11.3), которая претерпела некоторые достаточно заметные изменения по сравнению с предыдущими
версиями. В версии 11 изменился порядок регистрации программного обеспечения — теперь вместо ввода серийного номера используется привязка к сетевой карте или диску C: с генерацией лицензионного файла. Лицензионный файл генерируется и для бесплатной версии ISE WebPACK.
Далее, поставляемые наборы ПО разделены на Logic Edition, Embedded Edition и DSP Edition. Полная версия называется System Edition. Отличия в комплектности поставляемого программного обеспечения приведены в таблице 5.
Из приведенных данных (табл. 5) можно видеть, что Embedded edition и DSP edition отличаются наличием в своем составе САПР EDK/SDK и System Generator for DSP соответственно. В каждой из платных версий имеется приложение ChipScopePro, позволяющее отлаживать ПЛИС в реальном времени.
Важным изменением является включение в состав бесплатной версии САПР приложения PlanAhead, и более того — его интеграция в маршрут разработки ПЛИС. С помощью PlanAhead выполняется не только планирование размещения компонентов на кристалле, но и назначение выводов.
Полезные изменения произошли также в утилите Technology Viewer, которая предназначена для просмотра схемотехнического представления созданного блока или проекта. Этот инструмент существовал и в предыдущих версиях, но для простых проектов его исполь-
Таблица 5. Комплектность поставляемого программного обеспечения в различных версиях САПР ХШпх
Возможности ISE WebPACK (ограничения по объему ПЛИС) Logic Edition Embedded Edition DSP Edition System Edition
ISE Foundation with ISE Simulator (ISim) * * * * *
PlanAhead Design and Analysis Tool * * * * *
ChipScope Pro * * * *
ChipScope Pro Serial I/O Toolkit * * * *
Embedded Development Kit (EDK) * *
Software Development Kit (SDK) * *
System Generator for DSP * *
зование было малоактуальным, а для сложных оказывалось, что генерируемое изображение получается чересчур громоздким (для его отображения используется до 10-15 закладок в интерфейсе). Даже найти критичные цепи, не говоря уже об идентификации проблем,
оказывается достаточно сложно. В 11-й же версии Technology Viewer позволяет создать графическое изображение схемы для определенных портов или сигналов. Получившееся изображение является интерактивным: можно по желанию расширить его, показав источники
и/или получатели сигналов любого из блоков. Например, на рис. 11 показано, как в процессе последовательного дополнения схемы оказалась выявлена цепочка LUT, являющаяся приемником сигнала из блока распределенной памяти RAMB16WER. Если верхняя цепочка содержит всего одну LUT6, то в нижней цепочке уже имеются три LUT, что является указанием на возможную критичную цепь при распространении сигнала.
Заключение
При рассмотрении новых семейств FPGA Xilinx можно сделать следующий вывод: архитектуры двух основных линеек — серий Virtex и Spartan — сближаются. Это позволяет в определенной степени унифицировать конструкторские решения, принимаемые для программируемой части проекта (то есть основанной на логических ячейках), а впоследствии реализовать итоговый проект на более подходящей серии. Также немаловажно введение в Spartan-6 IP-ядер, повышающих привлекательность этого семейства для проектов средней степени сложности: приемопередатчики (позволяющие реализовать Ethernet, SATA и PCI Express 2.0) и контроллеры DDR/2/3. В целом, можно сделать вывод, что новое поколение FPGA Xilinx предоставило разработчикам мощную и разностороннюю аппаратную платформу для реализации цифровых систем. ■