Программируемая коммутация в ПЛИС: взгляд изнутри
В архитектуре ПЛИС семейства Stratix фирмы Altera соединения между конфигурируемыми логическими блоками (КЛБ), TriMatrix-памятью, DSP-блоками и элементами ввода/вывода (ЭВВ) осуществляются с помощью сети многоканальных межсоединений MultiTrack с использованием технологии DirectDrive.
Архитектура межсоединений MultiTrack обеспечивает большую доступность ко всем окружающим КЛБ с помощью меньшего числа связей, что позволяет увеличить производительность, снизить энергопотребление и оптимизировать упаковку логики. MultiTrack позволяет за 1 шаг соединить 34 соседних КЛБ, за 2 шага — 96 КЛБ и 160 КЛБ за 3 шага (рис. 1а).
рис. 1. Трассировочные ресурсы ПЛИС: а) Stratix IV фирмы Altera с использованием технологии DirectDrive;
б, в) фирмы Xilinx с использованием технологии ExpressFabric: б) Virtex-4; в) Virtex-5
Многоканальные соединения представляют собой непрерывный, оптимизированный набор шин различной длины и скорости, используемые для меж- и внутриблоковой разводки. Технология DirectDrive гарантирует идентичные соединительные ресурсы для любой реализуемой функции, независимо от ее месторасположения на кристалле ПЛИС. Многоканальные соединения представляют собой горизонтальные и вертикальные соединения, простирающиеся на фиксированное расстояние.
В ПЛИС Stratix II горизонтальные соединения, входящие в многоканальные соединения, включают в себя: прямые соединения между логическими блоками и соседними блоками; R4 — соединения, проходящие через четыре блока; R24 — высокоскоростные соединения, пересекающие 24 блока или всю ширину кристалла. Вертикальные соединения аналогичны горизонтальным. Вертикальные соединения включают в себя: совместные последовательные арифметические соединения внутри КЛБ; соединения Carry chain (цепи переноса) внутри КЛБ и от КЛБ к КЛБ; соединения Register chain (регистерные цепи) внутри логического блока; C4 — соединения, проходящие через четыре блока вверх или вниз; C16 — высокоскоростные соединения, пересекающие 16 блоков или всю высоту схемы.
В ПЛИС Stratix III горизонтальные соединения включают в себя: прямые соединения между КЛБ и соседними КЛБ; R4 — соединения, проходящие через четыре КЛБ; R20 — высокоскоростные соединения, пересекающие 20 КЛБ или всю ширину кристалла ПЛИС.
Блоки Memory LAB (Memory КЛБ) и LAB (КЛБ) сосуществуют парами и подключены к локальным матрицам межсоединений и к строкам и столбцам С4, С12, R4, R20, обладающим различной скоростью распространения сигналов и длиной межсоединений (рис. 2). Локальные матрицы позволяют напрямую подключать соседние КЛБ, блоки памяти с архитектурой TriMatrix, встроенные блоки цифровой обработки сигналов (DSP-блоки) или ЭВВ.
рис. 2. Многоканальные соединения в ПЛИС семейства Stratix III
В ПЛИС Virtex фирмы Xilinx созданы локальные трассировочные ресурсы, называемые VersaBlock. Они позволяют реализовать три типа соединений: связи между LUT-таб-лицами, триггерами и главной трассировочной матрицей (GRM). Высокоскоростные связи с LUT-таблицами в рамках одного КЛБ позволяют соединять их в виде цепочек с минимальными задержками распространения сигналов. Прямые трассы создают высокоскоростные соединения с соседними по горизонтали КЛБ, избегая при этом больших задержек, присущих трассам GRM.
Большинство связей в ПЛИС Virtex реализуются с помощью трассировочных ресурсов общего назначения, и, следовательно, большая часть ресурсов межсоединений связана с этим типом трассировочной иерархии. Трассировочные ресурсы общего назначения расположены в виде горизонтальных и вертикальных трассировочных каналов и размещены в непосредственной близости от строк и столбцов матрицы, образованной блоками КЛБ. К каждому КЛБ примыкает главная трассировочная матрица GRM. GRM — это матрица переключателей, с помощью которых коммутируются горизонтальные и вертикальные трассы и посредством которых блоки КЛБ получают доступ к трассировочным ресурсам общего назначения. GRM связана в каждом из четырех направлений с соседней GRM посредством 24 трасс одинарной длины. 96 буферизованных HEX-ли-ний трассируют GRM-сигналы к шести другим GRM в каждом из четырех направлений. HEX-линии организованы в виде зигзагов. HEX-линии могут подключаться к источникам сигнала только в своих конечных точках или в середине (три блока от источника). Одна третья часть — двунаправленные HEX-линии, в то время как остальные — однонаправленные. 12 длинных линий являются буферизированными и двунаправленными, распространяющими сигналы в ПЛИС быстро и эффективно. Вертикальные длинные линии имеют протяженность, равную полной высоте кристалла, а горизонтальные длинные линии — полной ширине.
ПЛИС Virtex имеет дополнительные трассировочные ресурсы, расположенные по периферии. Эти трассировочные ресурсы формируют добавочный интерфейс между КЛБ и ЭВВ. Эти дополнительные ресурсы, называемые VersaRing, улучшают возможности закрепления сигналов за контактами и переназначения уже сделанного закрепления, если это требование накладывается расположением сигналов на печатной плате. При этом сокращается время изготовления всего проекта, так как изготовление и проектирование печатной платы можно выполнять одновременно с проектированием ПЛИС.
В ПЛИС Virtex-5 для реализации логических функций и локальных межсоединений используется технология ExpressFabric. Она включает в себя реализацию шестивходо-вых LUT-таблиц в сочетании с диагональной структурой локальных программируемых межсоединений, что позволяет реализовывать комбинаторную логику при помощи меньшего числа логических уровней, использовать меньшее количество соединений с соседними блоками и упаковывать в среднем на 40% больше логики по сравнению с ПЛИС Virtex-4 (рис. 1б-в). Увеличенная плотность позволяет уменьшить число каскадно соединенных LUT-таблиц и улучшить время распространения сигнала по критическим путям.
Для более детального изучения трассировочных ресурсов ПЛИС необходимо обобщить информацию о более ранних сериях ПЛИС по архитектуре ППВМ (программируемые пользователем вентильные матрицы, FPGA). Модель ПЛИС можно представить в виде периодической структуры (рис. 3), содержащей программируемые элементы ввода/вывода (ЭВВ), систему глобальных и локальных программируемых межсоединений (ГМС и ЛМС), конфигурируемые логические блоки (КЛБ) и реконфигурируемые блоки памяти (РБП).
рис. 3. Архитектура ПЛИС типа ППВМ
Детализированная структура КЛБ и трассировочных каналов проектируемой ПЛИС с числом эквивалентных вентилей до 250 000, с использованием сегментированных соединений представлена на рис. 4. В состав КЛБ входят коммутаторы сигналов, логические элементы (ЛЭ) и выходные буферы. Данная структура трассировочных каналов характерна для ранних ПЛИС фирмы ХДшх (ХШпх 3000, 4000).
рис. 4. Детализированная структура КЛБ и трассировочных каналов ПЛИС
Мощные буферные элементы, формирующие выходные сигналы ЛЭ, размещены внутри КЛБ, а не в системе глобальной трассировки ПЛИС, для обеспечения большего быстродействия. Это связано с тем, что удаление буферов из КЛБ приводит к увеличению длительности фронтов сигналов на их входе, что влияет на быстродействие всей системы в целом. КЛБ характеризуется параметрами I и N где I — число входов блока, а N — число логических элементов в КЛБ. Каждый логический элемент характеризуется числом входов К и одним выходом.
Любой вход любого ЛЭ в КЛБ может быть подсоединен к любому произвольному входу ЛЭ КЛБ или выходу. Это называется «КЛБ с полной коммутацией». Все входы и все выходы в таком КЛБ являются логически эквивалентными и функционально идентичными. При полной коммутации достигаются лучшие показатели «площадь/быстродействие» с максимальной гибкостью при коммутации связей внутри КЛБ.
Для достижения 98% логического использования КЛБ требуется число входов, равное 2Ы+2 (I = 2№2). Для КЛБ, содержащего от 3 до 8 ЛЭ, занимаемая им площадь на кристалле реализуется наиболее эффективно. Для КЛБ с размером N>10 происходит значительное разрастание площади кристалла, что связано с усложнением коммутаторов межсоединений и увеличением длины шин трассировки, что в свою очередь требует увеличения размеров выходных транзисторов, формирующих сигналы на этих шинах.
КЛБ размера N = 8 (8 ЛЭ) хорошо согласуется с размером логических блоков архитектур коммерческих ПЛИС (N = 4 для большинства изделий Xilinx, N = 8-10 для изделий фирмы Altera, N = 4 — Actel, N = 9 — Atmel). На выбор N = 8 указывает большинство исследователей ПЛИС как наиболее целесообразный. И кроме того, эта величина равняется байту, а значит, в пределах такого блока наиболее эффективно будут реализовываться арифметические функции (обычно кратные байту).
Анализ современных архитектур ПЛИС показал, что подавляющее большинство серийно выпускаемых изделий имеют базовый логический элемент, включающий генератор функций (ГФ), выполненный в виде таблицы перекодировок (LUT-таблица), логику цепей ускоренного переноса и каскадирования (carry chain и cascade chain), программируемый триггер, логику выбора тактовых сигналов, логику управления сигналами сброса и установки (clear/preset logic), выходные коммутаторы к системам локальных и глобальных матриц межсоединений.
Обобщенный ЛЭ можно представить в виде схемы (рис. 5). ГФ в ЛЭ характеризуется числом входов. Используя ГФ с большим числом входов, можно реализовать в нем больше логики и, следовательно, будет требоваться меньше ЛЭ для построения той или иной схемы. При этом экономится место для трассировки, так как в этом случае между логическими блоками требуется меньше межсоединений.
рис. 5. Структурная схема логического элемента ПЛИС
Однако сложность ГФ экспоненциально растет с увеличением числа входов, поэтому непрактично использование ГФ с большим числом входов. Пусть число входов ГФ равно К. Для достижения минимальных затрат площади на реализацию тех или иных электрических схем наиболее подходящими являются ГФ с числом входов 3<К<4. А для достижения максимального быстродействия электрических схем — значение 4<К<6. Эти показатели связаны с достижением оптимального баланса между функциональностью ГФ (функция К-переменных) и затратами на трассировку связей. Таким образом, использование ГФ 4 переменных наиболее эффективно по площади и быстродействию. Реальная оценка емкости логических элементов ПЛИС с архитектурой на основе ячеек статической памяти составляет 7-15 вентилей.
Необходимость наличия буфера управления выходом вытекает из того, что после включения питания ПЛИС, но до того, как будет загружена прошивка, конфигурационные биты не запрограммированы и возможны конфликты («закоротки») между выходами логических блоков на трассировочных треках. Поэтому для управления выходами логических блоков ставят буферы с третьим состоянием. Эти буферы контролируются глобальным сигналом и в процессе включения и программирования устанавливаются в третье состояние. Таким образом, глобальным сигналом запрещаются все соединения с дорожками межсоединений в процессе включения и программирования. Наличие на выходе логического блока буфера с третьим состоянием негативно сказывается на быстродействии ПЛИС.
Другая важная проблема — емкость на входе логического блока. Емкость на входе зависит от того, открыт или закрыт ключ. Если ключ закрыт, то емкость определяется самим транзистором ключа, если же ключ открыт, то емкость будет определяться цепью на другой стороне ключа. Это значит, что емкость на входах логического блока будет функцией числа открытых ключей.
Ключевой схемный элемент ПЛИС на основе статической памяти (SRAM), предназначенный для коммерческого и индустриального применения, может быть выполнен в двух вариантах, представленных на рис. 6. Эти элементы называются конфигурационной памятью и используются для программирования конфигураций ПЛИС.
рис. 6. Конфигурационные ячейки памяти: а) 5-транзисторные; б) 6-транзисторные
Запоминающий элемент может быть выполнен на основе 5- или 6-транзисторной ячейки. Шеститранзисторная ячейка памяти более стабильна из-за своей симметричности и позволяет обеспечить быструю запись и чтение. Транзисторы 1, 3, 5, 6 могут быть выполнены с Щ = Щ^, а размеры транзисторов 2 и 4 должны быть примерно в 2-3 раза больше по отношению к транзисторам выборки 5 и 6. Выходными узлами данного элемента для управления ключевыми транзисторами (программируемыми ключами) являются узлы А и В. Несмотря на то, что ячейка на рис. 5а содержит на один транзистор меньше, она несимметрична. Кроме того, шина данных может использоваться только для записи (чтение по данной шине — проблематично). Выходными узлами для управления программируемыми ключами является узел В. С другой стороны, этот элемент очень удобен при организации конфигурационной памяти в виде последовательного сдвигового регистра, когда вход последующего является выходом предыдущего (рис. 7). В дальнейшем все ячейки памяти, предназначенные для конфигурирования ПЛИС, будем называть конфигурационными ячейками (КЯ).
рис. 7. Соединения КЯ в виде последовательного
сдвигового регистра
Шеститранзисторный элемент позволяет организовать конфигурационную память в виде системы произвольного доступа (рис. 8). Шины данных можно успешно использовать как для записи, так и для чтения данных. Система организации КЯ в виде системы произвольного доступа эффективна для ПЛИС с системой мониторинга состояния КЯ в процессе эксплуатации. Считывается содержимое конфигурационной памяти и сравнивается с эталонными значениями, и в случае сбоя конфигурационная память переписывается без потери работоспособности ПЛИС. Поэтому данное решение предпочтительней для ПЛИС, предназначенных для высоконадежных применений.
рис. 8. Организация соединений 6-транзисторных КЯ
в виде системы произвольного доступа
Для уменьшения занимаемой логическим блоком площади и увеличения быстродействия LUT-таблица строится на 2-входовых мультиплексорах с использованием п-МОПТ-ключей (рис. 9). Например, LUT-таблица запрограммирована для выполнения булевой функции Q = S3⊕S2⊕S1⊕S0. Таблица перекодировки (LUT), по сути, представляет собой декодер адреса и реализуется в виде «дерева» мультиплексоров. На выходе LUT находится буфер с восстановлением уровня. Выходы с ячеек конфигурационной памяти также буферизуются. Остальные мультиплексоры, задействованные в КЛБ, не управляемые динамически, а задающие конфигурацию логического элемента, реализуются в виде КМОП-ключей с целью выравнивания задержек сигналов и сокращения количества и размеров буферов.
рис. 9. Дерево мультиплексоров 4-входовой LUT-таблицы
(информационные входы — S0, S1, S2, S3; конфигурационные биты памяти — I0–I15)
На рис. 10а показана коммутация сигналов в ПЛИС FLEX10KE фирмы Altera. Осуществляется коммутация с ГМС-строки, выделенных информационных входов (не показаны), выделенных тактовых входов (не показаны) на ЛМС; коммутация столбца на строку ГМС; коммутация строки на столбец ГМС; коммутация выходов ЛЭ на строку и столбец ГМС; коммутация КЛБ с КЛБ через соседний КЛБ.
рис. 10. а) Программируемая коммутация сигналов в ПЛИС FLEX10KE фирмы Altera; б) пример использования входных коммутаторов в межсоединениях ПЛИС
На рис. 10б показано, как осуществляется коммутация сигналов с дорожек ГМС на ЛМС КЛБ и с ЛМС на входы ЛЭ. На рис. 11 представлены: коммутатор 11—> 1 и коммутатор 30—1 в символьном виде.
рис. 11. Символьное представление коммутатора: а) 11→1; б) 30→1
Коммутаторы в ПЛИС могут быть реализованы на мультиплексорах (рис. 12) или с использованием одного п-МОПТ ключа (рис. 13) на каждое track-to-pin соединение. В первом случае требуется 4 ячейки конфигурационной памяти (24 транзистора), во втором случае — 16 ячеек памяти (96 транзисторов), однако появляется критический путь из четырех последовательно соединенных п-МОПТ ключей. В мультиплексорах могут быть использованы как п-МОПТ ключи (рис. 12б), так и КМОП-ключи (рис. 12в). Использование мультиплексоров дает меньшую площадь, но наносит существенный удар по быстродействию, так как сигнал должен проходить через серии ключей. При использовании п-МОПТ ключей высокий уровень в цепочке снижается после каждого элемента на величину порогового напряжения. Комбинированный вариант позволяет уменьшить число ключей в критическом пути, удовлетворяя эмпирическому правилу «не более двух ключей», и повысить быстродействие при незначительном увеличении числа КЯ (рис. 13в).
рис. 12. а) Коммутатор сигналов с локальных межсоединений на вход конфигурируемого логического блока
с использованием мультиплексоров (S0–S3 — конфигурационные биты памяти);
б) мультиплексор на n-МОПТ ключах; в) мультиплексор на КМОП-ключах
рис. 13. а) Коммутатор сигналов 16 в 1 с межсоединений на вход КЛБ с использованием n-МОПТ ключей; б) условное обозначение; в) комбинированный вариант
Тип используемых ключей будет оказывать существенное влияние на размеры кристалла, то есть на функциональную емкость и на временные характеристики ПЛИС (быстродействие). При использовании п-МОПТ-ключей выигрыш в площади получается не только из-за экономии в площади кармана. Также внутренние узлы цепей п-МОПТ-ключей могут не требовать контактов, экономя место и уменьшая контактную емкость. Что касается скорости, комплементарный ключ получается путем добавления р-канального транзистора, который в 2,5 раза превосходит размер п-канального транзистора. Сопротивление уменьшается в 2 раза, но контактная емкость увеличивается в 3,5 раза или больше, в зависимости от используемых контактов. Это значит, что RC-задержка по крайней мере в 0,5×3,5 = 1,75 раза больше, так что n-канальный транзистор будет более быстродействующим по сравнению с комплементарным ключом.
На рис. 14 показана детализированная схема программируемой коммутации выходных сигналов ЛЭ КЛБ на строки и столбцы ГМС и обратно на ЛМС, а также коммутация столбца на строку ГМС в ПЛИС FLEX10KE фирмы Altera. Коммутация выхода ЛЭ1 показана на рис. 15.
рис. 14. Программируемая коммутация сигналов в ПЛИС FLEX10KE фирмы Altera
(выходные коммутаторы)
рис. 15. Коммутация выхода ЛЭ1 на строки, столбцы ГМС и на ЛМС в ПЛИС FLEX10KE
фирмы Altera
Выводы
Программируемые коммутаторы межсоединений определяют быстродействие ПЛИС и могут быть выполнены как на мультиплек-сорных структурах с использованием n-МОПТ или КМОП-ключей, так и с использованием одного n-МОПТ ключа на каждое track-to-pin
соединение или их комбинации. В случае использования мульти-плексорных структур существует критический путь из трех или более последовательно соединенных п-МОПТ ключей. Комбинированный вариант позволяет уменьшить число ключей в критическом пути и повысить быстродействие при незначительном увеличении числа конфигурационных ячеек памяти.
Литература
- Самкова Е. STRATIX IV против УШТЕХ-5. Точка не поставлена // Электронные компоненты. 2009. № 8.
- Дуглас С. Особенности архитектуры нового семейства ПЛИС Virtex-5 // Электронные компоненты. 2007. № 4.
- Betz V., Rose J. How Much Logic Should Go in an FPGA Logic Block? // IEEE Design and Test Magazine. Spring 1998.
- Betz V., Rose J. FPGA Routing Architecture: Segmentation and Buffering to Optimize Speed and Density // IEEE Design and Test Magazine. Spring 1999.
- Lewis D. et al. The Stratix Logic and Routing Architecture. Proc FPGA-02.
- Ahmed E., Rose J. The Effect of LUT and Cluster Size on Deep-Submicron FPGA Performance and Density. Proc FPGA-00.
- Czajkowski T. S., Rose J. A Synthesis Oriented Omniscient Manual Editor FPGA’04. Feb. 22-24, 2004. Monterey, California, USA.
- FLEX 10K Embedded Programmable Logic Device Family. Data Sheet. March 2001, ver. 4.1 — www.altera.com
- Stratix III Device Handbook. July 2009. Vol 1. Software version 9.0 — www.altera.com