Какие схемотехнические решения академические ПЛИС унаследовали от индустриальных

PDF версия
Развитие архитектур академических ПЛИС повторяло, а в некоторых случаях даже повлияло на инженерные решения в области развития архитектур индустриальных ПЛИС, в частности с помощью САПР VTR было установлено ухудшение производительности современных гетерогенных ПЛИС по 3D-технологиям при использовании кремниевых интерпозеров для соединения кристаллов ИС с логическими ресурсами. Академический САПР VTR является совместной разработкой трех университетов: Торонто (Канада, Торонто), Нью-Брансвик (Канада, UNB) и Калифорнийского университета в Беркли (США, University of California, Berkeley).

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

Архитектура академической ПЛИС, принятая в VTR

Рис. 1. Архитектура академической ПЛИС, принятая в VTR

Академические ПЛИС целесообразно рассматривать в сравнении с более ранними ПЛИС компании Altera, в частности c сериями FLEX и Stratix II, III, IV, и ПЛИС компании Xilinx серий XC3000, XC4000, Virtex‑6.

Коммутаторы (кросс-бары) обеспечивают бесконфликтную параллельную передачу информации с множества Y‑входов на множество Z‑выходов, но имеют большую аппаратную избыточность, и применение их ограничено созданием коммутационных систем небольшой размерности. Полный коммутатор является наиболее гибким, однако к его недостаткам следует отнести большое количество конфигурационной памяти, что приводит к потреблению избыточной площади кристалла ПЛИС. В более поздних ПЛИС предпочтение стали отдавать использованию разряженных коммутаторов. На рис. 2 показано использование разряженных и полных коммутаторов в индустриальной ПЛИС Altera серии FLEX 8K.

Разряженный и полный коммутатор в индустриальной ПЛИС Altera серии FLEX 8K

Рис. 2. Разряженный и полный коммутатор в индустриальной ПЛИС Altera серии FLEX 8K

Подключение кластера (КЛБ или LAB, как принято в ПЛИС Altera) из восьми логических элементов (ЛЭ) с 4‑входовыми LUT с числом входов 24 к горизонтальному трассировочному каналу из 168 межсоединений (FastTrack — длинное непрерывное межсоединение в трассировочном канале) осуществляется с помощью разряженного коммутатора 1/12 (168 входов х 24 выхода). Каждая строка из канала может быть скоммутирована на входы КЛБ. Внутри КЛБ коммутация межсоединений осуществляется с помощью полной коммутации, позволяющей любой вход подключить к любому выходу. Например, в ПЛИС EPF10K10 внутрикластерный коммутатор имеет 22 входа и 30 выходов, а в ПЛИС EPF10K100 — 26 входов и 34 выхода. Соединительный блок в индустриальных ПЛИС иногда называют «глобальный коммутатор», а внутрикластерный коммутатор — «локальный».

На рис. 3 показана стандартная схема коммутации в академических ПЛИС, принятая в САПР VTR. Предусмотрена двухуровневая схема коммутации: L1‑уровень использует разряженный коммутатор, а L2‑уровень — полный коммутатор. Для сравнения, СнК ПЛИС серии SmartFusion2 фирмы Microsemi имеют трехуровневую внутрикластерную схему коммутации.

Двухуровневая коммутация, используемая в академическом САПР VTR для соответствия индустриальным ПЛИС Altera

Рис. 3. Двухуровневая коммутация, используемая в академическом САПР VTR для соответствия индустриальным ПЛИС Altera

Соединительный блок в простейшем случае можно рассматривать как мультиплексор. Объединяя несколько соединительных блоков с заданным коэффициентом объединения по входу Fc_in в группу, можно сконструировать разряженный коммутатор. Например, Fc_in = 0,15 означает, что на каждый вход кластера с помощью соединительного блока подключается до 15% доступных межсоединений в трассировочном канале шириной W. В архитектурном файле САПР VTR используется тег <pinlocations pattern=“spread”/>, который позволяет связывать входы/выходы (контакты) КЛБ с трассировочными каналами. Предусмотрены специальные шаблоны для указания, с какой стороны располагаются входы/выходы КЛБ. Шаблон spread соответствует равномерному распределению входов/выходов со всех сторон КЛБ круговым способом. Так, если у КЛБ 33 контакта (входов I = 22, выходов O = 10), то восемь контактов с Fc_in = 0,15 назначаются по всем сторонам, кроме одной, для которой назначены девять контактов (один из них для подключения синхросигнала).

Все входы и выходы кластера логически эквивалентны (equivalent=“true”). Логическая эквивалентность входов означает, что подключения к этим входам могут быть заменены без изменения их функциональности.

В современных индустриальных ПЛИС с адаптивными логическими модулями (АЛМ), например Stratix IV, предпочтение отдается разряженным коммутаторам. Поэтому академические ПЛИС были доработаны и для подобного случая. На рис. 4 показано подключение кластера из логических элементов (BLE — такое обозначение принято в академических ПЛИС) к горизонтальным и вертикальным трассировочным каналам (WX = WY) в ПЛИС с помощью разряженных коммутаторов. Внутрикластерная коммутация осуществляется с применением разряженных коммутаторов. Однако такая схема внутрикластерной коммутации не является стандартной для САПР VTR и требует доработки архитектурного файла.

Применение разряженных коммутаторов для подключения КЛБ к трассировочным каналам и для внутрикластерной коммутации в академической ПЛИС

Рис. 4. Применение разряженных коммутаторов для подключения КЛБ к трассировочным каналам и для внутрикластерной коммутации в академической ПЛИС

Подключение входов/выходов кластера к трассировочным каналам осуществляется с четырех сторон. Трассировочные каналы сегментируются маршрутизаторами типа Disjoint с коэффициентом разветвления FS = 3. Для сравнения, в ПЛИС Stratix III используется трехсторонняя, а в ПЛИС Virtex — двухсторонняя схема подключения кластера к трассировочным каналам.

В маршрутизаторах типа Disjoint используются n‑МОП шеститранзисторные ключи, которые могут быть реализованы с помощью мультиплексоров и буферов с третьим состоянием. VTR позволяет применить три типа маршрутизаторов в трассировочных каналах: Disjoint, Wilton и Universal.

Маршрутизатор, построенный посредством двунаправленных межсоединений и двунаправленных ключей, получил название multi-driver, а с использованием однонаправленных межсоединений и мультиплексорных структур — single-driver switch block.

Методология single-driver широко распространена в сериях ПЛИС серий Stratix и Virtex. В ПЛИС серий Stratix используется патентованная технология DirectDrive, которая гарантирует идентичные соединительные ресурсы для любой реализуемой булевой функции, независимо от ее месторасположения на кристалле, а в ПЛИС Virtex‑5 для реализации логических функций и локальных межсоединений предусмотрена технология ExpressFabric.

Методология single-driver также распространяется на соединительные блоки. В случае применения маршрутизаторов Wilton осуществляется непосредственное подключение выходов КЛБ в мультиплексоры ближайших маршрутизаторов, что позволяет отказаться от выходных демультиплексоров в соединительных блоках.

На рис. 5 показано подключение КЛБ и ЦОС-блоков к маршрутизаторам трассировочных каналов в индустриальных ПЛИС Xilinx. Главное отличие логических плиток (tile) Xilinx от плиток академических ПЛИС заключается в том, что внутрикластерные коммутаторы вынесены в глобальные трассировочные структуры (в маршрутизаторы). В ПЛИС Xilinx логическими плитками могут быть как КЛБ, умножители, так и блоки памяти.

Подключение КЛБ и ЦОС-блоков к маршрутизаторам трассировочных каналов в индустриальных ПЛИС Xilinx

Рис. 5. Подключение КЛБ и ЦОС-блоков к маршрутизаторам трассировочных каналов в индустриальных ПЛИС Xilinx

Для ПЛИС с числом входов LUT, равным 4 (K = 4), и числом ЛЭ, равным 8, число входов КЛБ определяется по формуле I = K/2(N+1). Тогда полный коммутатор имеет 26 (I = 18 входов и N = 8 выходов обратной связи) входов и 32 выхода (KхN). Полный коммутатор реализуется из двух мультиплексоров по двухступенчатой схеме с разделением управляющих сигналов (рис. 6).

Структурная схема внутрикластерной коммутации на транзисторном уровне

Рис. 6. Структурная схема внутрикластерной коммутации на транзисторном уровне

На первой ступени с помощью мультиплексора MUX 18:1 подключаются входы КЛБ к LUT ЛЭ, а с помощью мультиплексора MUX 8:1 второй ступени выходы КЛБ подключаются ко входам LUT (рис. 7). Полный коммутатор 26:32 требует 32х16 управляющих сигналов (SR0–SR15), то есть 512 конфигурационных ячеек памяти (SR).

Структурная схема коммутатора «26 в 1» и его условное обозначение

Рис. 7. Структурная схема коммутатора «26 в 1» и его условное обозначение

На рис. 8 показана внутрикластерная коммутация с использованием полных коммутаторов в КЛБ академической ПЛИС.

Внутрикластерная коммутация с использованием полных коммутаторов в КЛБ академической ПЛИС

Рис. 8. Внутрикластерная коммутация с использованием полных коммутаторов в КЛБ академической ПЛИС

На рис. 9 показана внутрикластерная коммутация в КЛБ академической ПЛИС с помощью коммутатора 60х60 (полная коммутация, 60 входных линий и 60 выходных, 40 внешних входов и 20 линий обратной связи), предусмотренная в VTR 8.0. Для сравнения, локальный коммутатор АЛМ ПЛИС Stratix IV (72х88) использует 52 входные линии и 20 линий обратной связи, имеет 88 выходных линий, является разряженным на 50%, то есть коммутируется не 60 линий на каждый вход ЛЭ, как в академических ПЛИС, а 36 линий в одну.

КЛБ состоит из 10 базовых логических элементов ble (N = 10) (рис. 9). ЛЭ имеет 6‑входовую перестраиваемую таблицу перекодировок (fracturable 6‑входовая LUTs или адаптивный LUT по аналогии с ПЛИС Altera). LUT может быть сконфигурирован как чисто 6‑входовой LUT или как два 5‑входовых с пятью общими входами. ЛЭ с перестраиваемыми таблицами перекодировок в САПР VTR 8.0 обозначается как fle, который можно рассматривать как адаптивный логический элемент современных индустриальных ПЛИС.

КЛБ в САПР VTR 8.0. Внутрикластерная коммутация реализуется с использованием полных коммутаторов

Рис. 9. КЛБ в САПР VTR 8.0. Внутрикластерная коммутация реализуется с использованием полных коммутаторов

Архитектурный файл, позволяющий создавать различные ПЛИС в САПР VTR 8.0, в большей степени ориентирован на индустриальные ПЛИС Altera. Но в то же время предпринимаются попытки выполнять модели индустриальных ПЛИС Xilinx в САПР VTR 8.0 (рис. 10). Для реализации в базисе индустриальных ПЛИС Xilinx базовый КЛБ, используемый в САПР VTR 8.0, необходимо изменить, поскольку в нем используется полный коммутатор, а не разряженный (рис. 10).

КЛБ ПЛИС Virtex-6 с разряженным коммутатором для реализации в САПР VTR 8.0

Рис. 10. КЛБ ПЛИС Virtex-6 с разряженным коммутатором для реализации в САПР VTR 8.0

Однако, как отмечает ряд исследователей, реализация ПЛИС серии Virtex‑6 в VTR сопряжена с большими трудностями в связи с тем, что некоторые особенности ЛЭ Virtex‑6 не поддерживаются синтезом VTR (алгоритмом упаковки (кластеризации) оптимизированного blif-файла в технологически зависимый базис ПЛИС, состоящий из LUT, триггеров, умножителей и блоков памяти) — например, мультиплексоры F7/F8, LUTRAM (LUT в режиме ОЗУ) и SRL (LUT как сдвиговый регистр) в секции SLICEM. В частности, двухтактные триггеры FF в ПЛИС Virtex-6 могут тактироваться нарастающим или спадающим фронтом синхросигнала, но все FF в секции должны тактироваться одинаковыми фронтами. Алгоритм упаковки AAPack в САПР VTR 8.0 не содержит встроенных средств обеспечения этого правила.

В более поздних экспериментах с архитектурами ПЛИС внутрикластерный коммутатор был вынесен из КЛБ (рис. 11а). Также были использованы аппаратные сумматоры на выходах LUT (XADDER) для организации вертикальных цепей переноса для каскадирования сумматоров и доработана модель трассировочных ресурсов с применением однонаправленных и двунаправленных межсоединений (bi-dir) с различной длиной сегментации, проходящих непрерывно через L = 1, 2, 4, и 16 кластеров в горизонтальном, вертикальном, диагональном и изогнутых направлениях (рис. 11б).

В архитектурном файле VTR для соответствия ПЛИС серии Virtex-6 используются: а) доработанный КЛБ; б) модель трассировочных ресурсов

Рис. 11. В архитектурном файле VTR для соответствия ПЛИС серии Virtex-6 используются:
а) доработанный КЛБ; б) модель трассировочных ресурсов

 

Выводы

Гипотетические академические архитектуры ПЛИС унаследовали все ключевые решения архитектур индустриальных ПЛИС, включая адаптивные логические элементы, внутрикластерные коммутаторы, соединительные блоки, маршрутизаторы, гетерогенные блоки, такие как умножители и блоки памяти.

САПР VTR 8.0 позволяет задавать и исследовать сегментацию межсоединений и топологию маршрутизаторов в трассировочных каналах, внутрикластерную коммутацию, структуру логических элементов, коммутацию внутри логического элемента, размеры LUT, различные связи, например между блоками памяти и умножителями в ПЛИС, строить планировку кристалла и многое другое. VTR разрешает создавать кросс-бары с полной коммутацией и с шинным мультиплексированием. Ядром VTR является VPR (Versatile Place and Route). Упаковщик AAPack реализует кластеризацию взаимосвязанных логических элементов в структурно-зависимые блоки ПЛИС, основан на «жадном» эвристическом алгоритме упаковки с использованием затравочного механизма роста кластера. Размещение кластеров на кристалле ПЛИС осуществляется с помощью алгоритма «имитации отжига», а процесс трассировки использует модификацию алгоритма PathFinder.

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

Литература
  1.  www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/wp/wp-01258-achieving-highest-levels-of-integration-in-programmable-logic.pdf
  2. Luu J., Anderson J., Rose J. Architecture Description and Packing for Logic Blocks with Hierarchy, Modes and Complex Interconnect. FPGA’11, February 27 – March 1. Monterey, California, USA, 2011.
  3. Luu J., Goeders J., Wainberg M., Somerville A., Yu T., Nasartschuk К., Nasr M., Wang S., Liu T.,  Ahmed N., Kent K. B., Anderson J., Rose J., Betz V. VTR 7.0: Next Generation Architecture and CAD System for FPGAs // ACM Transactions on Recon-figurable Technology and Systems. 2014. Vol. 7. No. 2. Article 6.
  4. Verilog-to-Routing Documentation. Release 7.0.7. Aug. 23, 2017.
  5. Kim J. H., Anderson J. H. Synthesizable Standard Cell FPGA Fabrics Targetableby the Verilog-to-Routing CAD Flow // ACM Transactions on Reconfigurable Technology and Systems. 2017. Vol. 10. No.2. Article 11. 
  6. Hung E., Eslami F., Wilton S. J. E. Escaping the Academic Sandbox: Realizing VPR Circuits on Xilinx Devices. Field-Programmable Custom Computing Machines (FCCM), 2013.
  7. Hung E. Examining where academic FPGA tools lag behind industry. Field Programmable Logic and Applications (FPL). 2015.
  8. Haroldsen T. D. Academic Packing for Commercial FPGA Architectures (2017). All Theses and Dissertations. 6526. 
  9. Строгонов  А., Цыбин  С., Городков  П. САПР VTR7 для проектирования академических ПЛИС // Компоненты и технологии. 2016. № 3.
  10. Строгонов  А., Городков  П. Реализация Verilog-проектов в базисе академических ПЛИС с применением САПР VTR 7.0 // Компоненты и технологии. 2017. № 5.
  11. Строгонов  А., Городков  П. Какие архитектуры ПЛИС можно разрабатывать с использованием САПР VTR 8.0 // Компоненты и технологии. 2018. № 2.

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

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