Выпуск #3/2025
А.В. Строгонов, К. Гопенко, А.И. Строгонов
ПРОГРАММНЫЕ ИНСТРУМЕНТЫ САПР VTR 8.1.0 ДЛЯ ИССЛЕДОВАНИЯ НОВЫХ АРХИТЕКТУР ПЛИС
ПРОГРАММНЫЕ ИНСТРУМЕНТЫ САПР VTR 8.1.0 ДЛЯ ИССЛЕДОВАНИЯ НОВЫХ АРХИТЕКТУР ПЛИС
Просмотры: 644
DOI: 10.22184/1992-4178.2025.244.3.192.198
В статье рассмотрены программные инструменты САПР VTR (Verilog-to-Routing) версии 8.1.0 с открытым исходным кодом, разработанные международным научным сообществом для исследования перспективных архитектур ПЛИС по нанопроектным нормам и алгоритмов САПР, таких как логический синтез, упаковка, размещение, трассировка.
В статье рассмотрены программные инструменты САПР VTR (Verilog-to-Routing) версии 8.1.0 с открытым исходным кодом, разработанные международным научным сообществом для исследования перспективных архитектур ПЛИС по нанопроектным нормам и алгоритмов САПР, таких как логический синтез, упаковка, размещение, трассировка.
Теги: fpga logic synthesis placement routing software tools vtr 8.1.0 cad yosys synthesizer логический синтез плис программные инструменты размещение сапр vtr 8.1.0 синтезатор yosys трассировка
Программные инструменты
САПР VTR 8.1.0 для исследования
новых архитектур ПЛИС
А.В. Строгонов, д.т.н.1, К. Гопенко2, А.И. Строгонов3
САПР с открытым исходным кодом широко используются в научной
среде для разработки новых подходов к созданию перспективных коммерческих САПР и реализации проектов на основе новых архитектур ПЛИС. В нашей стране программные инструменты с открытым исходным кодом применяются многими ведущими компаниями-разработчиками при проектировании ИС. В статье рассмотрены программные инструменты САПР VTR (Verilog-to-Routing) версии 8.1.0 с открытым исходным кодом, разработанные международным научным сообществом для исследования перспективных архитектур ПЛИС по нанопроектным нормам и алгоритмов САПР, таких как логический синтез, упаковка, размещение, трассировка и др.
Н овая версия САПР VTR 8.1.0 предполагает исполь-
зование следующих программных инструментов: Parmys (логический синтезатор Verilog-проектов Yosys c частичным отображением логических ресурсов), программу логической оптимизации и технологического отображения ABC, размещение и трассировку
в базис ПЛИС VPR (Versatile Place and Route) [1]. Считается, что индустриальный САПР Quartus II является глубоко переработанной академической версией VTR/VPR.
Рассмотрим новый маршрут проектирования академических ПЛИС, в котором используются Parmys (Partial Mapper for Yosys), ABC и VPR (рис. 1). В маршруте САПР VTR инструмент Parmys обеспечивает оптимизацию и преобразует Verilog-код после синтеза Yosys в плоский сетевой список, состоящий из логических элементов, триггеров и черных ящиков, представляющих разнородные блоки (например, сумматоры, умножители и фрагменты оперативной памяти). Информацию по более ранним версиям САПР VTR 8.0 и VTR 7.0 с использованием синтезатора Verilog-кодов ODIN II можно найти в работах [2–5],
а по возможностям синтезатора Yosys (Yosys Open SYnthesis Suite) – в работе [6]. Yosys версии 0.7+194 способен отображать Verilog-проекты в базис индустриальных ПЛИС Intel FPGA (Altera) серии Cyclone IV, MAX 10, ПЛИС Xilinx Spartan-6, Virtex-7, а также Lattice. Cинтезатор ODIN II в VTR 8.1.0 используется альтернативно Yosys.
Синтезатор Yosys популярен также и в нашей стране. Так, в маршруте проектирования АО «ПКК Миландр» для ПЛИС-М3 (разработка 2020 года) и в маршруте проектирования ПЛИС АО «Микрон» серии 5510XC используется синтезатор Yosys.
Один из ключевых аспектов работы Parmys заключается в том, что он адаптирует Verilog-код под конкретную целевую архитектуру ПЛИС путем замены абстрактных логических блоков на конкретные физические ресурсы ПЛИС, такие как LUT (Look-Up Tables), таблицы перекодировок или генераторы булевых функций от n-переменных и триггеры (FF).
Оптимизации, выполняемые Parmys, направлены
не только на уменьшение количества используемых ресурсов, но и на минимизацию задержек сигналов и повышение общей производительности схемы. Например, он может попытаться уменьшить длину критического пути, перемещая некоторые элементы ближе к источникам сигналов. Parmys помогает интегрировать в гомогенную ПЛИС, состоящую из множества кластеров логических блоков (в простейшем случае LUT+триггер), гетерогенные блоки, такие как ОЗУ и умножители, заменяя соответствующие части нетлиста на эти специальные компоненты.
При использовании программного инструмента ABC выполняется логическая оптимизация схемы и ее размещение в LUT логических блоков академической ПЛИС (технологическое отображение). Выходным является файл в формате .blif, в котором выделяются LUT, D-триг-
геры логических блоков и гетерогенные блоки. VPR упаковывает полученный после работы ABC нетлист в крупнозернистые логические блоки, размещает и маршрутизирует в ПЛИС и выдает различную статистику, например, минимальное количество межсоединений на канал, необходимое для успешной трассировки, общую длину межсоединений, метрики площади, времени и мощности.
В версии VTR 8.0 и старше реализован детальный конт-
роль как над маршрутизаторами (коммутаторами) в трассировочных каналах (межсоединение к межсоединению), так и над соединительными блоками, осуществляющими подключение логических блоков к трассировочным каналам (вывод к межсоединению) и прямыми соединениями между логическими блоками (вывод к выводу) при генерации трассировочной структуры ПЛИС. В этой версии схему маршрутизации можно настраивать так, чтобы точно контролировать взаимодействие различных типов провод-
ников и отдельных межсоединений вдоль всей длины.
САПР VTR 8.0 позволяет задавать и исследовать сегментацию межсоединений и топологию маршрутизаторов в трассировочных каналах, внутрикластерную коммутацию, структуру логических элементов, коммутацию внутри логического элемента, размеры LUT, различные связи (например, между блоками памяти и умножителями), строить планировку кристалла и многое другое. VTR позволяет создавать внутрикластерные коммутаторы с полной коммутацией и с шинным мультиплексированием.
Новая версия САПР VTR 8.1.0 предоставляет возможность создавать и исследовать различные архитектуры академических ПЛИС, подобных современным индуст-
риальным ПЛИС Intel серии Stratix-10.
Например, в ПЛИС СнК Intel серии Stratix-10 реализовано восемь адаптивных логических модулей (АЛМ)
на кластер. АЛМ имеет восемь входов и четыре опционально регистерных выхода. Каждый АЛМ способен выполнять одну 6-входовую булеву функцию или две независимые 4-входовые функции, а также включает в себя регистр с различными режимами работы. Структура АЛМ позволяет эффективно реализовывать сложные цифровые схемы, обеспечивая высокую степень параллелизма и производительность.
В ПЛИС СнК Intel серии Stratix-10 была применена инновационная архитектура трассировочных ресурсов HyperFlex, в которой появились дополнительные обходные регистры на выходах трассировочных мультиплексоров, которые могут выполнять роль как соединительных блоков, так и быть элементом маршрутизатора
(рис. 2). Эти дополнительные регистры называют гипер-регистрами (отличаются от традиционных регистров, содержащихся внутри АЛМ), они доступны на каж-
дом трассировочном сегменте и на входах всех функцио-
нальных блоков, включая входы АЛМ, блоков памяти, ЦОС-блоков и блоков ввода/вывода. Архитектура Intel HyperFlex обеспечила для Stratix-10 более высокую производительность и до 70 % меньшее энергопотребление по сравнению с высокопроизводительными ПЛИС предыдущего поколения.
Программные инструменты САПР в новом маршруте проектирования с учетом архитектурных особенностей Stratix-10 (Hyper-Aware Design Flow) могут автоматически выбирать оптимальное местоположение гиперрегистра после этапа размещения и трассировки проекта в ПЛИС, чтобы максимизировать его производительность.
В ПЛИС серии Agilex в архитектуре трассировочных ресурсов HyperFlex второго поколения дополнительно
к гиперрегистрам появились высокоскоростные обходные пути, которые позволили еще на 40 % увеличить производительность [7]. Разбиение критического пути на части
с помощью гиперрегистров позволяет быстро перераспределить задержки распространения сигналов в трассировочных ресурсах.
Трассировочная структура HyperFlex также используется и во внутрикластерной коммутации АЛМ. По мере уменьшения проектных норм задержки между АЛМ становятся доминирующим фактором и ограничивают производительность. Поэтому размещение гиперрегистров в маршрутизации межсоединений позволяет наилучшим образом решить эту проблему. Например, в случае конвейеризации пути уже не требуется использовать регистры АЛМ, что высвобождает не только логические ресурсы ПЛИС, но и сокращает коммутационные цепочки из мультиплексоров внутри самого АЛМ, ведь чтобы сигналу добраться до информационного входа триггера ему нужно пройти через LUT, который вносит существенную задержку в распространение сигнала. При этом число гиперрегистров в 10 раз превышает число регистров АЛМ.
На рис. 3 упрощенно показан небольшой участок матрицы ПЛИС
с девятью АЛМ и соединяющая их маршрутизация. Местоположение гиперрегистра обозначается квад-
ратами на пересечении каждого горизонтального и вертикального трассировочного сегмента.
Рассмотрим маршрут Parmys+ ABC+VPR для создания академической ПЛИС, подобной индустриальной ПЛИС Intel серии Stratix-10, и реа-
лизации в ней проекта КИХ-фильт-
ра, насыщенного умножителями
и представленного на HDL Verilog. Для работы программ Parmys и VPR требуется архитектурный файл (xml-файл), а внешний граф ресурсов маршрутизации (RR-граф) необходим инструменту VPR опционально, при этом VPR создает свой внешний RR-граф из xml-файла. RR-граф является абстрактной моделью физической структуры маршрутизации ПЛИС, где каждый узел представляет элемент цепи (например, межсоединение или контакт), а каждое ребро описывает возможность соединения этих элементов через коммутаторы (соединительные блоки
и маршрутизаторы).
В качестве примера будем использовать файл 4bit_adder_double_chain_arch.xml с возможностью реализации 4-разрядного сумматора с двойной цепью (рис. 4), описанный в работе [1] и доступный
в САПР VTR 8.1.0. На рис. 4 показаны две отдельные цепи переноса с отдельными входными (Cin[0] и Cin[1]) и выходными сигналами (Cout[0] и Cout[1]). Сумматоры в каждом АЛМ соединены вместе цепью переноса; цепь 1 соединяет пять АЛМ (ALM[0]–ALM[4]), а цепь 2 – ALM[5]–ALM[9].
Задержки для маршрутизации и логических блоков берутся из допусков технологического процесса 20 нм, полученные с помощью специальной программы COFFE
и симулятора SPICE [1]. Задержки для ЦОС-блоков (DSP) берутся из задержек, характерных для ПЛИС СнК Intel серии Arria 10 (22 нм), а задержки блочной памяти СОЗУ (BRAM) –
из задержек ПЛИС Intel серии Straitx IV (40 нм).
В архитектурном файле 4bit_adder_double_chain_arch.xml каждый АЛМ представляет собой 6-входовый LUT, разделяемый на два 5-входовых LUT, а два 5-входовых LUT совместно используют как минимум два входа для реализации 8-входового LUT. Каждые два выхода ALM логически эквивалентны. Так же реализован арифметический режим, в котором каждая 5-входовая LUT разбивается на две 4-входовые LUT, а каждая из них на две 3-LUT. Это позволяет реализовать восемь 3-LUT на одном АЛМ и аппаратный 4-разрядный сумматор (рис. 5).
В САПР VTR 8.1.0 принято кластер обозначать как CLB или LAB, а АЛМ – как fle (адаптивный (дробный) логический элемент который имеет несколько режимов конфигурации LUT). На рис. 6 представлено описание кластера
из 10 АЛМ с двойной цепью переноса (два входа cin и два выхода cout). Кластер имеет 60 общих входов от трассировочного канала и 40 выходов. Внутрикластерный (локальный) коммутатор имеет размерность 100 × 80 (60 внешних входов плюс 40 линий обратной связи и 80 выходов для LUT). Два выхода каждого АЛМ с помощью прямых
соединений подключаются на правый и левый АЛМ в клас-
тере. Выходы O1–O4 каждого АЛМ в качестве обратных связей подаются в локальный коммутатор.
Архитектурный файл также позволяет реализовать
20 Кбит памяти, которая поддерживает истинные и простые 2-портовые режимы. В простом режиме 2-портовой памяти можно настроить следующие конфигурации: 512 × 40, 1024 × 20 и 2048 × 10, а в истинном 2-портовом режиме ее можно настроить как: 1024 × 20 и 2028 × 10. Кроме того, имеется ЦОС блок (умножитель) с размерностью операндов 27 × 27, который можно разбить на два умножителя с размерностью 18 × 19.
На рис. 7 показан фрагмент размещенного и разтрассированного проекта КИХ-фильтра с конвейеризацией на 52 отвода (fir_pipe_52.v) в ресурсы академической ПЛИС с архитектурным файлом 4bit_adder_double_chain_arch.xml. Для реализации проекта требуется
141 кластер (clb), 1383 АЛМ (fle), 2312 5-LUT, 866 4-LUT
(866 одноразрядных сумматоров), 2310 триггеров (ff); 12 умножителей mult_27, а общий размер ПЛИС составляет 17x17 плиток (включая блоки ввода/вывода, кластеры из АЛМ, умножители и блоки памяти). Для коммутации однонаправленных межсоединий в трассировочных каналах используются мультиплексорные структуры (маршрутизатор типа Wilton). В настоящее время считается, что использование однонаправленных межсоединений в совокупности с мультиплексорными структурами в маршрутизаторах наиболее перспективно,
так как позволяет получать существенный выигрыш
по быстродействию и площади кристалла, а сам маршрутизатор обладает наилучшей разводимостью.
На рис. 8 показано крупным планом расположение плиток на кристалле и их связи между собой (маршрутизаторы не представлены). Зеленым цветом выделен умножитель, красным – выходные сигналы из умножителя, идущие в соседние плитки, синим – входные сигналы, идущие в умножитель от соседних плиток.
В контексте академической архитектуры ПЛИС, подобной Stratix-10, которая используется в новой версии VTR 8.1.0, нет явных упоминаний о поддержке гипер-регистров. VTR ориентирован на создание и исследование традиционных архитектур ПЛИС, где основное внимание уделяется структуре логического блока, маршрутизации, блокам памяти и умножителям. Тем не менее, VTR является достаточно гибким инструментом, позволяющим пользователям модифицировать архитектуру ПЛИС в соответствии со своими потребностями. Если необходимо добавить поддержку гиперрегистров в разрабатываемую архитектуру, возможно, потребуется внести соответствующие изменения в маршрут VTR.
Заключение
САПР VTR 8.1.0 позволяет создавать
и исследовать различные архитектуры академических ПЛИС, схожие c индустриальными ПЛИС, а также реализовывать в них крупные Verilog-проекты и оценивать производительность
и энергопотребление этих проектов.
В новой версии САПР VTR 8.1.0
в Parmys в качестве синтезатора Verilog HDL используется программный инструмент Yosys вместо синтезатора ODIN II, что позволяет успешно обрабатывать крупные и сложные Verilog-проекты, создавать и исследовать новые архитектуры академических ПЛИС с АЛМ, блоками памяти и умножителями.
Выбор Yosys взамен ODIN II обусловлен рядом факторов, таких как открытость кода, широкая поддержка научного сообщества, совместимость с разнообразными устройствами и возможность интеграции с другими средствами разработки. Parmys играет ключевую роль
в оптимизации и адаптации Verilog-кода к конкретной целевой архитектуре ПЛИС.
ЛИТЕРАТУРА
Eldafrawy M., Boutros A., Yazdanshenas S., Betz V.
FPGA Logic Block Architectures for Eicient Deep Learning Inference // ACM Transactions on Reconfigurable Technology and Systems, Vol. 13, No. 3, Article 12 (June 2020), 34 p.
Строгонов А., Городков П. Реализация Verilog-проектов в базисе академических ПЛИС с применением САПР
VTR 7.0 // Компоненты и технологии, 2017, № 5, C.74–79.
Строгонов А., Городков П. САПР VTR8 как инструмент исследования новых архитектур ПЛИС // Компоненты
и технологии, 2017, № 10, C. 106–110.
Строгонов А., Горлов М., Городков П. САПР
с открытым кодом для реализации проектов
в академических ПЛИС // ЭЛЕКТРОНИКА: Наука,
Технология, Бизнес. 2018. № 3. С. 146–154.
Строгонов А., Кривчун М., Городков П.
Обзор программных средств с открытым исходным
кодом для исследования современных архитектур
ПЛИС Xilinx // ЭЛЕКТРОНИКА: Наука, Технология, Бизнес. 2020. № 1. С. 100–107.
Строгонов А., Городков П. Реализация Verilog-
проектов в базисе заказных БИС и ПЛИС с применением синтезатора Yosys // ЭЛЕКТРОНИКА: Наука, Технология, Бизнес. 2017. № 5. С. 98–109.
Строгонов А., Городков П. Современные
тенденции развития ПЛИС от системной интеграции
к искусственному интеллекту // ЭЛЕКТРОНИКА:
Наука, Технология, Бизнес. 2020. № 4. С. 46–56.
САПР VTR 8.1.0 для исследования
новых архитектур ПЛИС
А.В. Строгонов, д.т.н.1, К. Гопенко2, А.И. Строгонов3
САПР с открытым исходным кодом широко используются в научной
среде для разработки новых подходов к созданию перспективных коммерческих САПР и реализации проектов на основе новых архитектур ПЛИС. В нашей стране программные инструменты с открытым исходным кодом применяются многими ведущими компаниями-разработчиками при проектировании ИС. В статье рассмотрены программные инструменты САПР VTR (Verilog-to-Routing) версии 8.1.0 с открытым исходным кодом, разработанные международным научным сообществом для исследования перспективных архитектур ПЛИС по нанопроектным нормам и алгоритмов САПР, таких как логический синтез, упаковка, размещение, трассировка и др.
Н овая версия САПР VTR 8.1.0 предполагает исполь-
зование следующих программных инструментов: Parmys (логический синтезатор Verilog-проектов Yosys c частичным отображением логических ресурсов), программу логической оптимизации и технологического отображения ABC, размещение и трассировку
в базис ПЛИС VPR (Versatile Place and Route) [1]. Считается, что индустриальный САПР Quartus II является глубоко переработанной академической версией VTR/VPR.
Рассмотрим новый маршрут проектирования академических ПЛИС, в котором используются Parmys (Partial Mapper for Yosys), ABC и VPR (рис. 1). В маршруте САПР VTR инструмент Parmys обеспечивает оптимизацию и преобразует Verilog-код после синтеза Yosys в плоский сетевой список, состоящий из логических элементов, триггеров и черных ящиков, представляющих разнородные блоки (например, сумматоры, умножители и фрагменты оперативной памяти). Информацию по более ранним версиям САПР VTR 8.0 и VTR 7.0 с использованием синтезатора Verilog-кодов ODIN II можно найти в работах [2–5],
а по возможностям синтезатора Yosys (Yosys Open SYnthesis Suite) – в работе [6]. Yosys версии 0.7+194 способен отображать Verilog-проекты в базис индустриальных ПЛИС Intel FPGA (Altera) серии Cyclone IV, MAX 10, ПЛИС Xilinx Spartan-6, Virtex-7, а также Lattice. Cинтезатор ODIN II в VTR 8.1.0 используется альтернативно Yosys.
Синтезатор Yosys популярен также и в нашей стране. Так, в маршруте проектирования АО «ПКК Миландр» для ПЛИС-М3 (разработка 2020 года) и в маршруте проектирования ПЛИС АО «Микрон» серии 5510XC используется синтезатор Yosys.
Один из ключевых аспектов работы Parmys заключается в том, что он адаптирует Verilog-код под конкретную целевую архитектуру ПЛИС путем замены абстрактных логических блоков на конкретные физические ресурсы ПЛИС, такие как LUT (Look-Up Tables), таблицы перекодировок или генераторы булевых функций от n-переменных и триггеры (FF).
Оптимизации, выполняемые Parmys, направлены
не только на уменьшение количества используемых ресурсов, но и на минимизацию задержек сигналов и повышение общей производительности схемы. Например, он может попытаться уменьшить длину критического пути, перемещая некоторые элементы ближе к источникам сигналов. Parmys помогает интегрировать в гомогенную ПЛИС, состоящую из множества кластеров логических блоков (в простейшем случае LUT+триггер), гетерогенные блоки, такие как ОЗУ и умножители, заменяя соответствующие части нетлиста на эти специальные компоненты.
При использовании программного инструмента ABC выполняется логическая оптимизация схемы и ее размещение в LUT логических блоков академической ПЛИС (технологическое отображение). Выходным является файл в формате .blif, в котором выделяются LUT, D-триг-
геры логических блоков и гетерогенные блоки. VPR упаковывает полученный после работы ABC нетлист в крупнозернистые логические блоки, размещает и маршрутизирует в ПЛИС и выдает различную статистику, например, минимальное количество межсоединений на канал, необходимое для успешной трассировки, общую длину межсоединений, метрики площади, времени и мощности.
В версии VTR 8.0 и старше реализован детальный конт-
роль как над маршрутизаторами (коммутаторами) в трассировочных каналах (межсоединение к межсоединению), так и над соединительными блоками, осуществляющими подключение логических блоков к трассировочным каналам (вывод к межсоединению) и прямыми соединениями между логическими блоками (вывод к выводу) при генерации трассировочной структуры ПЛИС. В этой версии схему маршрутизации можно настраивать так, чтобы точно контролировать взаимодействие различных типов провод-
ников и отдельных межсоединений вдоль всей длины.
САПР VTR 8.0 позволяет задавать и исследовать сегментацию межсоединений и топологию маршрутизаторов в трассировочных каналах, внутрикластерную коммутацию, структуру логических элементов, коммутацию внутри логического элемента, размеры LUT, различные связи (например, между блоками памяти и умножителями), строить планировку кристалла и многое другое. VTR позволяет создавать внутрикластерные коммутаторы с полной коммутацией и с шинным мультиплексированием.
Новая версия САПР VTR 8.1.0 предоставляет возможность создавать и исследовать различные архитектуры академических ПЛИС, подобных современным индуст-
риальным ПЛИС Intel серии Stratix-10.
Например, в ПЛИС СнК Intel серии Stratix-10 реализовано восемь адаптивных логических модулей (АЛМ)
на кластер. АЛМ имеет восемь входов и четыре опционально регистерных выхода. Каждый АЛМ способен выполнять одну 6-входовую булеву функцию или две независимые 4-входовые функции, а также включает в себя регистр с различными режимами работы. Структура АЛМ позволяет эффективно реализовывать сложные цифровые схемы, обеспечивая высокую степень параллелизма и производительность.
В ПЛИС СнК Intel серии Stratix-10 была применена инновационная архитектура трассировочных ресурсов HyperFlex, в которой появились дополнительные обходные регистры на выходах трассировочных мультиплексоров, которые могут выполнять роль как соединительных блоков, так и быть элементом маршрутизатора
(рис. 2). Эти дополнительные регистры называют гипер-регистрами (отличаются от традиционных регистров, содержащихся внутри АЛМ), они доступны на каж-
дом трассировочном сегменте и на входах всех функцио-
нальных блоков, включая входы АЛМ, блоков памяти, ЦОС-блоков и блоков ввода/вывода. Архитектура Intel HyperFlex обеспечила для Stratix-10 более высокую производительность и до 70 % меньшее энергопотребление по сравнению с высокопроизводительными ПЛИС предыдущего поколения.
Программные инструменты САПР в новом маршруте проектирования с учетом архитектурных особенностей Stratix-10 (Hyper-Aware Design Flow) могут автоматически выбирать оптимальное местоположение гиперрегистра после этапа размещения и трассировки проекта в ПЛИС, чтобы максимизировать его производительность.
В ПЛИС серии Agilex в архитектуре трассировочных ресурсов HyperFlex второго поколения дополнительно
к гиперрегистрам появились высокоскоростные обходные пути, которые позволили еще на 40 % увеличить производительность [7]. Разбиение критического пути на части
с помощью гиперрегистров позволяет быстро перераспределить задержки распространения сигналов в трассировочных ресурсах.
Трассировочная структура HyperFlex также используется и во внутрикластерной коммутации АЛМ. По мере уменьшения проектных норм задержки между АЛМ становятся доминирующим фактором и ограничивают производительность. Поэтому размещение гиперрегистров в маршрутизации межсоединений позволяет наилучшим образом решить эту проблему. Например, в случае конвейеризации пути уже не требуется использовать регистры АЛМ, что высвобождает не только логические ресурсы ПЛИС, но и сокращает коммутационные цепочки из мультиплексоров внутри самого АЛМ, ведь чтобы сигналу добраться до информационного входа триггера ему нужно пройти через LUT, который вносит существенную задержку в распространение сигнала. При этом число гиперрегистров в 10 раз превышает число регистров АЛМ.
На рис. 3 упрощенно показан небольшой участок матрицы ПЛИС
с девятью АЛМ и соединяющая их маршрутизация. Местоположение гиперрегистра обозначается квад-
ратами на пересечении каждого горизонтального и вертикального трассировочного сегмента.
Рассмотрим маршрут Parmys+ ABC+VPR для создания академической ПЛИС, подобной индустриальной ПЛИС Intel серии Stratix-10, и реа-
лизации в ней проекта КИХ-фильт-
ра, насыщенного умножителями
и представленного на HDL Verilog. Для работы программ Parmys и VPR требуется архитектурный файл (xml-файл), а внешний граф ресурсов маршрутизации (RR-граф) необходим инструменту VPR опционально, при этом VPR создает свой внешний RR-граф из xml-файла. RR-граф является абстрактной моделью физической структуры маршрутизации ПЛИС, где каждый узел представляет элемент цепи (например, межсоединение или контакт), а каждое ребро описывает возможность соединения этих элементов через коммутаторы (соединительные блоки
и маршрутизаторы).
В качестве примера будем использовать файл 4bit_adder_double_chain_arch.xml с возможностью реализации 4-разрядного сумматора с двойной цепью (рис. 4), описанный в работе [1] и доступный
в САПР VTR 8.1.0. На рис. 4 показаны две отдельные цепи переноса с отдельными входными (Cin[0] и Cin[1]) и выходными сигналами (Cout[0] и Cout[1]). Сумматоры в каждом АЛМ соединены вместе цепью переноса; цепь 1 соединяет пять АЛМ (ALM[0]–ALM[4]), а цепь 2 – ALM[5]–ALM[9].
Задержки для маршрутизации и логических блоков берутся из допусков технологического процесса 20 нм, полученные с помощью специальной программы COFFE
и симулятора SPICE [1]. Задержки для ЦОС-блоков (DSP) берутся из задержек, характерных для ПЛИС СнК Intel серии Arria 10 (22 нм), а задержки блочной памяти СОЗУ (BRAM) –
из задержек ПЛИС Intel серии Straitx IV (40 нм).
В архитектурном файле 4bit_adder_double_chain_arch.xml каждый АЛМ представляет собой 6-входовый LUT, разделяемый на два 5-входовых LUT, а два 5-входовых LUT совместно используют как минимум два входа для реализации 8-входового LUT. Каждые два выхода ALM логически эквивалентны. Так же реализован арифметический режим, в котором каждая 5-входовая LUT разбивается на две 4-входовые LUT, а каждая из них на две 3-LUT. Это позволяет реализовать восемь 3-LUT на одном АЛМ и аппаратный 4-разрядный сумматор (рис. 5).
В САПР VTR 8.1.0 принято кластер обозначать как CLB или LAB, а АЛМ – как fle (адаптивный (дробный) логический элемент который имеет несколько режимов конфигурации LUT). На рис. 6 представлено описание кластера
из 10 АЛМ с двойной цепью переноса (два входа cin и два выхода cout). Кластер имеет 60 общих входов от трассировочного канала и 40 выходов. Внутрикластерный (локальный) коммутатор имеет размерность 100 × 80 (60 внешних входов плюс 40 линий обратной связи и 80 выходов для LUT). Два выхода каждого АЛМ с помощью прямых
соединений подключаются на правый и левый АЛМ в клас-
тере. Выходы O1–O4 каждого АЛМ в качестве обратных связей подаются в локальный коммутатор.
Архитектурный файл также позволяет реализовать
20 Кбит памяти, которая поддерживает истинные и простые 2-портовые режимы. В простом режиме 2-портовой памяти можно настроить следующие конфигурации: 512 × 40, 1024 × 20 и 2048 × 10, а в истинном 2-портовом режиме ее можно настроить как: 1024 × 20 и 2028 × 10. Кроме того, имеется ЦОС блок (умножитель) с размерностью операндов 27 × 27, который можно разбить на два умножителя с размерностью 18 × 19.
На рис. 7 показан фрагмент размещенного и разтрассированного проекта КИХ-фильтра с конвейеризацией на 52 отвода (fir_pipe_52.v) в ресурсы академической ПЛИС с архитектурным файлом 4bit_adder_double_chain_arch.xml. Для реализации проекта требуется
141 кластер (clb), 1383 АЛМ (fle), 2312 5-LUT, 866 4-LUT
(866 одноразрядных сумматоров), 2310 триггеров (ff); 12 умножителей mult_27, а общий размер ПЛИС составляет 17x17 плиток (включая блоки ввода/вывода, кластеры из АЛМ, умножители и блоки памяти). Для коммутации однонаправленных межсоединий в трассировочных каналах используются мультиплексорные структуры (маршрутизатор типа Wilton). В настоящее время считается, что использование однонаправленных межсоединений в совокупности с мультиплексорными структурами в маршрутизаторах наиболее перспективно,
так как позволяет получать существенный выигрыш
по быстродействию и площади кристалла, а сам маршрутизатор обладает наилучшей разводимостью.
На рис. 8 показано крупным планом расположение плиток на кристалле и их связи между собой (маршрутизаторы не представлены). Зеленым цветом выделен умножитель, красным – выходные сигналы из умножителя, идущие в соседние плитки, синим – входные сигналы, идущие в умножитель от соседних плиток.
В контексте академической архитектуры ПЛИС, подобной Stratix-10, которая используется в новой версии VTR 8.1.0, нет явных упоминаний о поддержке гипер-регистров. VTR ориентирован на создание и исследование традиционных архитектур ПЛИС, где основное внимание уделяется структуре логического блока, маршрутизации, блокам памяти и умножителям. Тем не менее, VTR является достаточно гибким инструментом, позволяющим пользователям модифицировать архитектуру ПЛИС в соответствии со своими потребностями. Если необходимо добавить поддержку гиперрегистров в разрабатываемую архитектуру, возможно, потребуется внести соответствующие изменения в маршрут VTR.
Заключение
САПР VTR 8.1.0 позволяет создавать
и исследовать различные архитектуры академических ПЛИС, схожие c индустриальными ПЛИС, а также реализовывать в них крупные Verilog-проекты и оценивать производительность
и энергопотребление этих проектов.
В новой версии САПР VTR 8.1.0
в Parmys в качестве синтезатора Verilog HDL используется программный инструмент Yosys вместо синтезатора ODIN II, что позволяет успешно обрабатывать крупные и сложные Verilog-проекты, создавать и исследовать новые архитектуры академических ПЛИС с АЛМ, блоками памяти и умножителями.
Выбор Yosys взамен ODIN II обусловлен рядом факторов, таких как открытость кода, широкая поддержка научного сообщества, совместимость с разнообразными устройствами и возможность интеграции с другими средствами разработки. Parmys играет ключевую роль
в оптимизации и адаптации Verilog-кода к конкретной целевой архитектуре ПЛИС.
ЛИТЕРАТУРА
Eldafrawy M., Boutros A., Yazdanshenas S., Betz V.
FPGA Logic Block Architectures for Eicient Deep Learning Inference // ACM Transactions on Reconfigurable Technology and Systems, Vol. 13, No. 3, Article 12 (June 2020), 34 p.
Строгонов А., Городков П. Реализация Verilog-проектов в базисе академических ПЛИС с применением САПР
VTR 7.0 // Компоненты и технологии, 2017, № 5, C.74–79.
Строгонов А., Городков П. САПР VTR8 как инструмент исследования новых архитектур ПЛИС // Компоненты
и технологии, 2017, № 10, C. 106–110.
Строгонов А., Горлов М., Городков П. САПР
с открытым кодом для реализации проектов
в академических ПЛИС // ЭЛЕКТРОНИКА: Наука,
Технология, Бизнес. 2018. № 3. С. 146–154.
Строгонов А., Кривчун М., Городков П.
Обзор программных средств с открытым исходным
кодом для исследования современных архитектур
ПЛИС Xilinx // ЭЛЕКТРОНИКА: Наука, Технология, Бизнес. 2020. № 1. С. 100–107.
Строгонов А., Городков П. Реализация Verilog-
проектов в базисе заказных БИС и ПЛИС с применением синтезатора Yosys // ЭЛЕКТРОНИКА: Наука, Технология, Бизнес. 2017. № 5. С. 98–109.
Строгонов А., Городков П. Современные
тенденции развития ПЛИС от системной интеграции
к искусственному интеллекту // ЭЛЕКТРОНИКА:
Наука, Технология, Бизнес. 2020. № 4. С. 46–56.
Отзывы читателей
eng




