Выпуск #4/2019
И. Тарасов
Применение ПЛИС класса «система на кристалле» Xilinx Zynq и подходы к проектированию на основе языков описания аппаратуры высокого уровня
Применение ПЛИС класса «система на кристалле» Xilinx Zynq и подходы к проектированию на основе языков описания аппаратуры высокого уровня
Просмотры: 2256
Рассмотрены возможности существующих и перспективных семейств программируемых логических интегральных схем компании Xilinx с архитектурой «система на кристалле», а также предпочтительные подходы к проектированию цифровых систем под управлением процессоров на основе САПР Xilinx Vivado HLS.
DOI: 10.22184/1992-4178.2019.185.4.62.66
УДК 004.2
ВАК 05.13.15
DOI: 10.22184/1992-4178.2019.185.4.62.66
УДК 004.2
ВАК 05.13.15
В последние годы происходит постоянное увеличение логического объема ПЛИС и добавление в них новых функциональных возможностей. Эти процессы сопровождаются появлением новых методов и инструментов проектирования, основанных на языках описания аппаратуры высокого уровня. В статье рассматриваются возможности существующих и перспективных семейств программируемых логических интегральных схем компании Xilinx с архитектурой «система на кристалле», а также предпочтительные подходы к проектированию цифровых систем под управлением процессоров на основе САПР Xilinx Vivado HLS.
Развитие компонентной базы ПЛИС в последние десятилетия связано с определенными качественными изменениями в архитектуре. Основные тенденции, возникшие с момента появления архитектуры FPGA в 1985 году, получают уточнение и качественно эволюционируют. К таким тенденциям в части аппаратной архитектуры можно отнести (в хронологическом порядке):
• появление и увеличение удельной доли в составе ПЛИС аппаратных компонентов: памяти, аппаратных умножителей, высокоскоростных последовательных приемопередатчиков, процессорных ядер;
• переход к синхронной методологии проектирования и далее – к подходу «глобально асинхронные, локально синхронные» схемы;
• увеличение абсолютной величины системной производительности при отстающем росте производительности внешних интерфейсов.
В части инструментов проектирования наблюдались следующие изменения:
• переход от схемотехнического проектирования к языкам описания аппаратуры в начале 2000-х годов;
• усиление доли IP-ядер в составе проектов и внедрение высокоуровневых инструментов проектирования (Embedded Development Kit, System Generator for DSP) для решения частных задач (конец 2000-х годов);
• внедрение и развитие высокоуровневых языков описания аппаратуры (HLL, High-Level Language) в сочетании с маршрутом проектирования, основанным на области применения (в настоящее время к таким глобальным областям Xilinx относит цифровую обработку сигналов, коммуникационные системы, процессорные встраиваемые системы).
Для адекватного отражения возрастающей сложности проектирования цифровых устройств в ПЛИС Zynq‑7000 компании Xilinx были добавлены аппаратные ядра процессоров класса ARM Cortex-A. Это позволило переложить часть решаемых задач на процессорную подсистему, что, кроме чисто технического эффекта, способно ускорить процесс проектирования, расширив коллектив разработчиков программистами.
Архитектура ПЛИС ППСнК
На протяжении развития элементной базы ПЛИС все большее распространение получали цифровые системы, состоящие из процессора или микроконтроллера с подключенной ПЛИС [1, 2, 3]. В рамках такой системы ПЛИС выполняет задачи ускорителя вычислений на базе параллельно работающих IP-ядер, а процессор реализует, как правило, интерфейс с периферийными устройствами и общее управление. При этом используется более простой порядок проектирования для процессора, основанный на разработке только программного обеспечения. Действительно, время создания нового варианта конфигурационного файла существенно превышает время компиляции программного проекта, и мелкие изменения эффективнее выполнять для программного обеспечения, а не аппаратной схемы. При этом ожидается, что замена аппаратного обеспечения в ПЛИС будет происходить существенно реже.
Ранее на кристалле ПЛИС уже размещались аппаратные ядра процессора – например, в ПЛИС Xilinx Virtex-II Pro, Virtex‑4 FX, Virtex‑5 FXT имелись аппаратные ядра PowerPC. Однако эти ядра требовали реализации периферийных устройств на базе программируемых ячеек ПЛИС, что усложняло процесс начальной настройки процессорной подсистемы и ограничивало список доступных периферийных устройств теми, которые могли бы быть реализованы на базе матрицы программируемых ресурсов ПЛИС. Выпущенное в 2011 году семейство ПЛИС Xilinx Zynq‑7000 содержало автономную подсистему процессора ARM Cortex-A9 вместе с системной шиной и набором периферийных контроллеров, таких как USB, Ethernet MAC, I2C и др. По сравнению с аппаратными ядрами, требующими реализации периферийных компонентов для начала работы, такой подход обеспечил следующие принципиальные свойства:
• явное разделение на процессорную подсистему (PS, Processor System) и программируемую логику (PL, Programmable Logic);
• ведущая роль процессорной подсистемы и ее готовность к работе без программирования логических ячеек;
• тесная интеграция компонентов путем размещения на кристалле двуслойной системной шины AXI и более 3 000 аппаратных соединений между PS и PL.
Для того чтобы подчеркнуть изменившийся характер разработки систем на базе данных устройств, Xilinx обозначил их как ППСнК (полностью программируемая система на кристалле, также APSOC – All-Programmable System On Chip) [4].
Компания Xilinx предлагает несколько вариантов ППСнК (рис. 1, табл. 1).
Платформа Zynq UltraScale+ CG представляет собой базовый вариант, содержащий двухъядерный процессор Cortex-A53 вместо четырехъядерного. В качестве примеров применения рассматриваются:
• управление приводами, в том числе сложных робототехнических комплексов;
• контроллеры твердотельных накопителей (SSD);
• промышленная автоматизация и системы сбора данных.
Платформа Zynq UltraScale+ EG содержит также графический контроллер (GPU) Mali 400, что позволяет разрабатывать на базе процессора ARM полноценное рабочее место оператора с графическим интерфейсом на базе нескольких операционных систем, поддержка которых уже добавлена в платформу Zynq (Linux, Android, FreeRTOS и др.). Вместе с тем программируемая часть ПЛИС вполне достаточна для размещения там автономно работающих узлов, снимающих с центрального процессора основную нагрузку по обеспечению высокопроизводительных параллельных вычислений, цифровой обработки сигналов и обработки сетевых пакетов. Ввиду этого в качестве применений платформы EG рассматриваются:
• проводные и беспроводные коммуникационные системы, включая программно-зависимое радио;
• облачные вычислительные платформы.
Платформа Zynq UltraScale+ EV содержит кроме графического контроллера также и аппаратный видеокодек, поддерживающий форматы H.264 / H.265 с разрешением до 4K2K с частотой кадров 60 Гц. Очевидным применением являются системы мультимедиа или анализа видео:
• обработка данных профессиональных видеокамер;
• системы технического зрения в промышленности;
• система типа «помощник водителя» для анализа окружающей обстановки;
• мультимедийные центры.
Особенностью применения ПЛИС как таковых является необходимость эффективного использования аппаратных приемопередатчиков и компонентов для цифровой обработки сигналов. Важной методологической ошибкой является оценка характеристик ППСнК с точки зрения процессора ARM с программируемой периферией. В этом случае более высокая стоимость этих микросхем по сравнению с процессорными СнК на базе ARM будет казаться совершенно неоправданной. Однако целесообразность применения ПЛИС в основном связана с возможностью размещения на программируемом кристалле параллельно работающих вычислительных узлов с высокой суммарной производительностью. Например, при достаточно умеренной для подсистемы DSP частоте 300 МГц суммарная производительность вычислений составит для Zynq‑7000 более 6 · 1011 операций умножения с накоплением (multiply-accumulate, MAC) в секунду, а для Zynq UltraScale+ – более 1012 MAC / с. Для получения пиковой производительности эти значения необходимо увеличить как минимум в два раза, однако пиковая производительность, соответствующая так называемой системной тактовой частоте, в реальных проектах, как правило, не достигается. В данном же случае речь идет о реально достижимых параметрах, на 2–3 порядка превышающих производительность современных однопоточных сигнальных процессоров. Поэтому крайне важно выбрать соответствующую архитектуру проекта, которая могла бы эффективно использовать возможности ППСнК в части организации массово-параллельных вычислений. Анонс семейства ПЛИС для техпроцесса с нормами 7 нм подтверждает тенденцию повышения уровня интеграции компонентов на кристалле, увеличения скоростей вычислений и передачи данных, а также ориентацию на использование специального процессора для управления вычислительным комплексом на базе программируемых ресурсов ПЛИС.
Семейство ПЛИС Versal
Особенностью основных производителей ПЛИС, в том числе Xilinx, является так называемая fabless модель производства. Она подразумевает отсутствие собственных производственных мощностей и передачу выпуска контрактным производителям. Такой подход позволяет Xilinx своевременно обновлять технологическую базу для производства нового поколения микросхем, пользуясь возможностями контрактных производителей. В 2018 году было анонсировано семейство ПЛИС, предполагаемое к выпуску в 2019 году на производственных мощностях компании TSMC с соблюдением 7-нм норм. Это новое семейство ПЛИС, с обозначением Versal, представляет собой, с точки зрения Xilinx, новый подкласс ПЛИС СнК – «адаптируемая платформа ускорения вычислений» (ACAP, Adaptive Compute Acceleration Platform). Состав ПЛИС ACAP представлен на рис. 2.
Новое поколение ПЛИС, по данным пресс-релиза [5], продолжает направление повышения интеграции компонентов и разделения функций проекта между программной и аппаратной подсистемами. Кроме процессорной подсистемы, сочетающей процессоры приложений (класса Cortex-A) и процессоры реального времени (Cortex-R), на кристалл будет добавлена память c высокой пропускной способностью (high bandwidth memory, HBM), высокоскоростные последовательные приемопередатчики, а также высокочастотные ЦАП и АЦП (в настоящее время возможность поставок таких микросхем в Россию представляется сомнительной из-за экспортных ограничений).
Проектирование цифровых систем на базе ПЛИС СнК Xilinx
При использовании ПЛИС большого логического объема возникает задача эффективного использования ресурсов микросхемы в пользовательском проекте. Качественные изменения в маршруте проектирования для ПЛИС можно отнести к 2003–2004 годам, когда состоялся переход от маршрутов проектирования, основанных на схемотехническом представлении, к маршрутам, в основу которых были положены языки описания аппаратуры (HDL). Основным аргументом такого перехода указывалась необходимость обеспечить эффективную работу для ПЛИС, состоящих из 50 тыс. и более эквивалентных логических вентилей, что соответствует приблизительно 1 тыс. стандартных логических ячеек. С учетом того, что современные ПЛИС достигают логических объемов 2–4 млн стандартных ячеек, очевидной становится потребность перехода к проектированию, основанному на более эффективных средствах описания проекта, поскольку трудоемкость описания схемы такого размера чрезмерна даже для языков описания аппаратуры.
Для решения данной проблемы в настоящее время предпочтительно использование комплекса аппаратных и инструментальных подходов. В качестве аппаратного подхода можно указать на состоявшуюся специализацию ряда аппаратных компонентов ПЛИС, в первую очередь размещение на кристалле процессорной подсистемы. К инструментальным решениям следует отнести комбинацию высокоуровневых средств проектирования, в первую очередь высокоуровневых языков описания аппаратуры (HLL, High-Level Language):
• Vivado HLS – среда разработки синтезируемых модулей и их системного моделирования с использованием языков С / С++ / SystemC;
• System Generator for DSP – расширение для ПО Matlab, позволяющее моделировать подсистемы цифровой обработки сигналов в инструменте Simulink. Смоделированные узлы могут быть автоматически экспортированы в САПР ISE / Vivado с сохранением основных характеристик производительности. System Generator является специализированным инструментом, поэтому его применение ограничено разработкой подсистем цифровой обработки сигналов. Добавление новых компонентов существенно сложнее, чем работа в Simulink с графическим представлением проекта, поэтому использовать System Generator для построения устройств общего назначения неэффективно;
• IP Integrator – библиотека IP-ядер, разработанных Xilinx. В текущих версиях имеется более 200 ядер, сгруппированных по назначению и предназначенных для решения частных задач. Преимуществом IP-ядер является то, что они сопровождаются проектными ограничениями, описывающими взаимное расположение отдельных компонентов. В результате характеристики ядер оказываются хорошо воспроизводимыми и не зависят от квалификации разработчика, который выполняет их подключение.
Архитектурный уровень разработки проектов на базе ППСнК
Вследствие увеличения степени интеграции компонентов и роста сложности проектов компания Xilinx выделяет в маршруте разработки архитектурный уровень, на котором выполняется разделение задач на решаемые аппаратно и решаемые программно, а также определяется порядок взаимодействия этих компонентов системы. Например, спектральный анализ сигнала может быть выполнен как аппаратным IP-ядром (собранным на базе программируемых ресурсов ПЛИС), так и с помощью программной библиотеки, запускаемой на одном из процессоров ARM. Очевидно, что в одном и другом случае характеристики системы будут существенно различаться. Особенность данного примера заключается в том, что производительность конфигурируемых ресурсов ПЛИС в задачах цифровой обработки сигналов существенно выше, чем для процессорного ядра, за счет применения параллельных вычислительных структур на базе блоков цифровой обработки сигналов XtremeDSP. Поэтому в случае спектрального анализа или цифровой фильтрации практически очевиден выбор в пользу аппаратного решения.
В случае же применения в проекте сложного протокола обмена аппаратное решение окажется чрезмерно сложным и потребует привлечения большого объема программируемых ресурсов (например, для реализации управляющего автомата с большим количеством состояний). Удобнее использовать для подобных целей программную реализацию соответствующих алгоритмов – например, если речь идет о стеке протоколов TCP / IP или протоколах сопоставимой сложности. Вопрос выбора программного или аппаратного решения часто является открытым, допуская также и сочетание этих вариантов в виде аппаратного ускорителя критичных по времени операций. Именно поэтому явно выделяется стадия проектирования программно-аппаратной архитектуры в общем маршруте разработки для ПЛИС.
* * *
Таким образом, можно констатировать, что тенденция активного привлечения процессорных ядер и специализированных аппаратных ресурсов для упрощения организации работы программируемых ресурсов ПЛИС нашла свое продолжение в очередном поколении продукции одного из ведущих мировых производителей программируемой элементной базы, компании Xilinx. Более активное привлечение программистов к разработке проектов на такой сложной платформе, как ПЛИС, становится возможным не только благодаря переносу части функций в процессорную подсистему, но и за счет добавления в общий маршрут проектирования таких высокоуровневых инструментов, как Vivado HLS и семейство САПР SDx. Это призвано способствовать сокращению времени разработки сложных проектов на ПЛИС большой логической емкости.
Литература
Sullivan C. Codesign Comes to Virtex-II Pro and MicroBlaze Systems // Xcell Journal, 2002. Issue 44. PP. 36–39.
Kluter T., Jacomet M. General-Purpose SoC Platform Handles Hardware / Software Co-Design // Xcell Journal. 2011. Issue 74. PP. 32–37.
Santarini M. Zynq‑7000 EPP Sets Stage for New Era of Innovations // Xcell Journal. 2011. Issue 75. PP. 8–13.
Santarini M. Xilinx 16nm UltraScale+ Devices Yield 2-5X Performance / Watt Advantage // Xcell Journal. 2015. Issue 90. PP. 8–15.
Xilinx Unveils Revolutionary Adaptable Computing Product Category. Mar 19, 2018. https://www.xilinx.com / news / press / 2018 / xilinx-unveils-revolutionary-adaptable-computing-product-category.html
Развитие компонентной базы ПЛИС в последние десятилетия связано с определенными качественными изменениями в архитектуре. Основные тенденции, возникшие с момента появления архитектуры FPGA в 1985 году, получают уточнение и качественно эволюционируют. К таким тенденциям в части аппаратной архитектуры можно отнести (в хронологическом порядке):
• появление и увеличение удельной доли в составе ПЛИС аппаратных компонентов: памяти, аппаратных умножителей, высокоскоростных последовательных приемопередатчиков, процессорных ядер;
• переход к синхронной методологии проектирования и далее – к подходу «глобально асинхронные, локально синхронные» схемы;
• увеличение абсолютной величины системной производительности при отстающем росте производительности внешних интерфейсов.
В части инструментов проектирования наблюдались следующие изменения:
• переход от схемотехнического проектирования к языкам описания аппаратуры в начале 2000-х годов;
• усиление доли IP-ядер в составе проектов и внедрение высокоуровневых инструментов проектирования (Embedded Development Kit, System Generator for DSP) для решения частных задач (конец 2000-х годов);
• внедрение и развитие высокоуровневых языков описания аппаратуры (HLL, High-Level Language) в сочетании с маршрутом проектирования, основанным на области применения (в настоящее время к таким глобальным областям Xilinx относит цифровую обработку сигналов, коммуникационные системы, процессорные встраиваемые системы).
Для адекватного отражения возрастающей сложности проектирования цифровых устройств в ПЛИС Zynq‑7000 компании Xilinx были добавлены аппаратные ядра процессоров класса ARM Cortex-A. Это позволило переложить часть решаемых задач на процессорную подсистему, что, кроме чисто технического эффекта, способно ускорить процесс проектирования, расширив коллектив разработчиков программистами.
Архитектура ПЛИС ППСнК
На протяжении развития элементной базы ПЛИС все большее распространение получали цифровые системы, состоящие из процессора или микроконтроллера с подключенной ПЛИС [1, 2, 3]. В рамках такой системы ПЛИС выполняет задачи ускорителя вычислений на базе параллельно работающих IP-ядер, а процессор реализует, как правило, интерфейс с периферийными устройствами и общее управление. При этом используется более простой порядок проектирования для процессора, основанный на разработке только программного обеспечения. Действительно, время создания нового варианта конфигурационного файла существенно превышает время компиляции программного проекта, и мелкие изменения эффективнее выполнять для программного обеспечения, а не аппаратной схемы. При этом ожидается, что замена аппаратного обеспечения в ПЛИС будет происходить существенно реже.
Ранее на кристалле ПЛИС уже размещались аппаратные ядра процессора – например, в ПЛИС Xilinx Virtex-II Pro, Virtex‑4 FX, Virtex‑5 FXT имелись аппаратные ядра PowerPC. Однако эти ядра требовали реализации периферийных устройств на базе программируемых ячеек ПЛИС, что усложняло процесс начальной настройки процессорной подсистемы и ограничивало список доступных периферийных устройств теми, которые могли бы быть реализованы на базе матрицы программируемых ресурсов ПЛИС. Выпущенное в 2011 году семейство ПЛИС Xilinx Zynq‑7000 содержало автономную подсистему процессора ARM Cortex-A9 вместе с системной шиной и набором периферийных контроллеров, таких как USB, Ethernet MAC, I2C и др. По сравнению с аппаратными ядрами, требующими реализации периферийных компонентов для начала работы, такой подход обеспечил следующие принципиальные свойства:
• явное разделение на процессорную подсистему (PS, Processor System) и программируемую логику (PL, Programmable Logic);
• ведущая роль процессорной подсистемы и ее готовность к работе без программирования логических ячеек;
• тесная интеграция компонентов путем размещения на кристалле двуслойной системной шины AXI и более 3 000 аппаратных соединений между PS и PL.
Для того чтобы подчеркнуть изменившийся характер разработки систем на базе данных устройств, Xilinx обозначил их как ППСнК (полностью программируемая система на кристалле, также APSOC – All-Programmable System On Chip) [4].
Компания Xilinx предлагает несколько вариантов ППСнК (рис. 1, табл. 1).
Платформа Zynq UltraScale+ CG представляет собой базовый вариант, содержащий двухъядерный процессор Cortex-A53 вместо четырехъядерного. В качестве примеров применения рассматриваются:
• управление приводами, в том числе сложных робототехнических комплексов;
• контроллеры твердотельных накопителей (SSD);
• промышленная автоматизация и системы сбора данных.
Платформа Zynq UltraScale+ EG содержит также графический контроллер (GPU) Mali 400, что позволяет разрабатывать на базе процессора ARM полноценное рабочее место оператора с графическим интерфейсом на базе нескольких операционных систем, поддержка которых уже добавлена в платформу Zynq (Linux, Android, FreeRTOS и др.). Вместе с тем программируемая часть ПЛИС вполне достаточна для размещения там автономно работающих узлов, снимающих с центрального процессора основную нагрузку по обеспечению высокопроизводительных параллельных вычислений, цифровой обработки сигналов и обработки сетевых пакетов. Ввиду этого в качестве применений платформы EG рассматриваются:
• проводные и беспроводные коммуникационные системы, включая программно-зависимое радио;
• облачные вычислительные платформы.
Платформа Zynq UltraScale+ EV содержит кроме графического контроллера также и аппаратный видеокодек, поддерживающий форматы H.264 / H.265 с разрешением до 4K2K с частотой кадров 60 Гц. Очевидным применением являются системы мультимедиа или анализа видео:
• обработка данных профессиональных видеокамер;
• системы технического зрения в промышленности;
• система типа «помощник водителя» для анализа окружающей обстановки;
• мультимедийные центры.
Особенностью применения ПЛИС как таковых является необходимость эффективного использования аппаратных приемопередатчиков и компонентов для цифровой обработки сигналов. Важной методологической ошибкой является оценка характеристик ППСнК с точки зрения процессора ARM с программируемой периферией. В этом случае более высокая стоимость этих микросхем по сравнению с процессорными СнК на базе ARM будет казаться совершенно неоправданной. Однако целесообразность применения ПЛИС в основном связана с возможностью размещения на программируемом кристалле параллельно работающих вычислительных узлов с высокой суммарной производительностью. Например, при достаточно умеренной для подсистемы DSP частоте 300 МГц суммарная производительность вычислений составит для Zynq‑7000 более 6 · 1011 операций умножения с накоплением (multiply-accumulate, MAC) в секунду, а для Zynq UltraScale+ – более 1012 MAC / с. Для получения пиковой производительности эти значения необходимо увеличить как минимум в два раза, однако пиковая производительность, соответствующая так называемой системной тактовой частоте, в реальных проектах, как правило, не достигается. В данном же случае речь идет о реально достижимых параметрах, на 2–3 порядка превышающих производительность современных однопоточных сигнальных процессоров. Поэтому крайне важно выбрать соответствующую архитектуру проекта, которая могла бы эффективно использовать возможности ППСнК в части организации массово-параллельных вычислений. Анонс семейства ПЛИС для техпроцесса с нормами 7 нм подтверждает тенденцию повышения уровня интеграции компонентов на кристалле, увеличения скоростей вычислений и передачи данных, а также ориентацию на использование специального процессора для управления вычислительным комплексом на базе программируемых ресурсов ПЛИС.
Семейство ПЛИС Versal
Особенностью основных производителей ПЛИС, в том числе Xilinx, является так называемая fabless модель производства. Она подразумевает отсутствие собственных производственных мощностей и передачу выпуска контрактным производителям. Такой подход позволяет Xilinx своевременно обновлять технологическую базу для производства нового поколения микросхем, пользуясь возможностями контрактных производителей. В 2018 году было анонсировано семейство ПЛИС, предполагаемое к выпуску в 2019 году на производственных мощностях компании TSMC с соблюдением 7-нм норм. Это новое семейство ПЛИС, с обозначением Versal, представляет собой, с точки зрения Xilinx, новый подкласс ПЛИС СнК – «адаптируемая платформа ускорения вычислений» (ACAP, Adaptive Compute Acceleration Platform). Состав ПЛИС ACAP представлен на рис. 2.
Новое поколение ПЛИС, по данным пресс-релиза [5], продолжает направление повышения интеграции компонентов и разделения функций проекта между программной и аппаратной подсистемами. Кроме процессорной подсистемы, сочетающей процессоры приложений (класса Cortex-A) и процессоры реального времени (Cortex-R), на кристалл будет добавлена память c высокой пропускной способностью (high bandwidth memory, HBM), высокоскоростные последовательные приемопередатчики, а также высокочастотные ЦАП и АЦП (в настоящее время возможность поставок таких микросхем в Россию представляется сомнительной из-за экспортных ограничений).
Проектирование цифровых систем на базе ПЛИС СнК Xilinx
При использовании ПЛИС большого логического объема возникает задача эффективного использования ресурсов микросхемы в пользовательском проекте. Качественные изменения в маршруте проектирования для ПЛИС можно отнести к 2003–2004 годам, когда состоялся переход от маршрутов проектирования, основанных на схемотехническом представлении, к маршрутам, в основу которых были положены языки описания аппаратуры (HDL). Основным аргументом такого перехода указывалась необходимость обеспечить эффективную работу для ПЛИС, состоящих из 50 тыс. и более эквивалентных логических вентилей, что соответствует приблизительно 1 тыс. стандартных логических ячеек. С учетом того, что современные ПЛИС достигают логических объемов 2–4 млн стандартных ячеек, очевидной становится потребность перехода к проектированию, основанному на более эффективных средствах описания проекта, поскольку трудоемкость описания схемы такого размера чрезмерна даже для языков описания аппаратуры.
Для решения данной проблемы в настоящее время предпочтительно использование комплекса аппаратных и инструментальных подходов. В качестве аппаратного подхода можно указать на состоявшуюся специализацию ряда аппаратных компонентов ПЛИС, в первую очередь размещение на кристалле процессорной подсистемы. К инструментальным решениям следует отнести комбинацию высокоуровневых средств проектирования, в первую очередь высокоуровневых языков описания аппаратуры (HLL, High-Level Language):
• Vivado HLS – среда разработки синтезируемых модулей и их системного моделирования с использованием языков С / С++ / SystemC;
• System Generator for DSP – расширение для ПО Matlab, позволяющее моделировать подсистемы цифровой обработки сигналов в инструменте Simulink. Смоделированные узлы могут быть автоматически экспортированы в САПР ISE / Vivado с сохранением основных характеристик производительности. System Generator является специализированным инструментом, поэтому его применение ограничено разработкой подсистем цифровой обработки сигналов. Добавление новых компонентов существенно сложнее, чем работа в Simulink с графическим представлением проекта, поэтому использовать System Generator для построения устройств общего назначения неэффективно;
• IP Integrator – библиотека IP-ядер, разработанных Xilinx. В текущих версиях имеется более 200 ядер, сгруппированных по назначению и предназначенных для решения частных задач. Преимуществом IP-ядер является то, что они сопровождаются проектными ограничениями, описывающими взаимное расположение отдельных компонентов. В результате характеристики ядер оказываются хорошо воспроизводимыми и не зависят от квалификации разработчика, который выполняет их подключение.
Архитектурный уровень разработки проектов на базе ППСнК
Вследствие увеличения степени интеграции компонентов и роста сложности проектов компания Xilinx выделяет в маршруте разработки архитектурный уровень, на котором выполняется разделение задач на решаемые аппаратно и решаемые программно, а также определяется порядок взаимодействия этих компонентов системы. Например, спектральный анализ сигнала может быть выполнен как аппаратным IP-ядром (собранным на базе программируемых ресурсов ПЛИС), так и с помощью программной библиотеки, запускаемой на одном из процессоров ARM. Очевидно, что в одном и другом случае характеристики системы будут существенно различаться. Особенность данного примера заключается в том, что производительность конфигурируемых ресурсов ПЛИС в задачах цифровой обработки сигналов существенно выше, чем для процессорного ядра, за счет применения параллельных вычислительных структур на базе блоков цифровой обработки сигналов XtremeDSP. Поэтому в случае спектрального анализа или цифровой фильтрации практически очевиден выбор в пользу аппаратного решения.
В случае же применения в проекте сложного протокола обмена аппаратное решение окажется чрезмерно сложным и потребует привлечения большого объема программируемых ресурсов (например, для реализации управляющего автомата с большим количеством состояний). Удобнее использовать для подобных целей программную реализацию соответствующих алгоритмов – например, если речь идет о стеке протоколов TCP / IP или протоколах сопоставимой сложности. Вопрос выбора программного или аппаратного решения часто является открытым, допуская также и сочетание этих вариантов в виде аппаратного ускорителя критичных по времени операций. Именно поэтому явно выделяется стадия проектирования программно-аппаратной архитектуры в общем маршруте разработки для ПЛИС.
* * *
Таким образом, можно констатировать, что тенденция активного привлечения процессорных ядер и специализированных аппаратных ресурсов для упрощения организации работы программируемых ресурсов ПЛИС нашла свое продолжение в очередном поколении продукции одного из ведущих мировых производителей программируемой элементной базы, компании Xilinx. Более активное привлечение программистов к разработке проектов на такой сложной платформе, как ПЛИС, становится возможным не только благодаря переносу части функций в процессорную подсистему, но и за счет добавления в общий маршрут проектирования таких высокоуровневых инструментов, как Vivado HLS и семейство САПР SDx. Это призвано способствовать сокращению времени разработки сложных проектов на ПЛИС большой логической емкости.
Литература
Sullivan C. Codesign Comes to Virtex-II Pro and MicroBlaze Systems // Xcell Journal, 2002. Issue 44. PP. 36–39.
Kluter T., Jacomet M. General-Purpose SoC Platform Handles Hardware / Software Co-Design // Xcell Journal. 2011. Issue 74. PP. 32–37.
Santarini M. Zynq‑7000 EPP Sets Stage for New Era of Innovations // Xcell Journal. 2011. Issue 75. PP. 8–13.
Santarini M. Xilinx 16nm UltraScale+ Devices Yield 2-5X Performance / Watt Advantage // Xcell Journal. 2015. Issue 90. PP. 8–15.
Xilinx Unveils Revolutionary Adaptable Computing Product Category. Mar 19, 2018. https://www.xilinx.com / news / press / 2018 / xilinx-unveils-revolutionary-adaptable-computing-product-category.html
Отзывы читателей