Микропроцессорные ядра, предоставляемые фирмой Xilinx для проектирования встраиваемых систем

Средства автоматизированного проектирования и этапы разработки встраиваемых микропроцессорных систем на базе расширяемых процессорных платформ семейства Zynq‑7000 AP& SoC-2.
Часть 2

PDF версия
Для минимизации затрат при разработке встраиваемых микропроцессорных систем, реализуемых на базе кристаллов XC7Z010, XC7Z020 и XC7Z030, можно рекомендовать свободно распространяемые редакции средств автоматизированного проектирования фирмы Xilinx ISE WebPACK и Vivado WebPACK. Эти редакции САПР позволяют выполнить все рассмотренные этапы процесса проектирования, за исключением внутрикристальной аппаратной отладки.

Начало.

Основные этапы проектирования встраиваемых микропроцессорных систем

Процесс проектирования встраиваемых систем, реализуемых на базе кристаллов программируемой логики с архитектурой FPGA и расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC, в общем случае включает в себя следующие этапы:

  • разработка проекта микропроцессорной системы;
  • проектирование аппаратной платформы разрабатываемой системы;
  • подготовка системных программных средств нижнего (аппаратного) уровня;
  • формирование основного программного обеспечения разрабатываемой системы;
  • комплексное моделирование и отладка аппаратной платформы и программного обеспечения;
  • генерация загрузочного образа и развертывание разработанной встраиваемой системы.

В более наглядном виде последовательность выполнения перечисленных этапов разработки встраиваемых микропроцессорных систем на основе ПЛИС с архитектурой FPGA и кристаллов расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC представлена на рис. 12. Здесь же приводится краткое содержание каждого из основных этапов проектирования.

Процесс проектирования встраиваемых систем на основе ПЛИС FPGA и расширяемых вычислительных платформ семейства Zynq 7000 AP SoC

Рис. 12. Процесс проектирования встраиваемых систем на основе ПЛИС FPGA и расширяемых вычислительных платформ семейства Zynq 7000 AP SoC

В последующих разделах эти этапы рассматриваются более подробно.

 

Выбор типа процессорного ядра, используемого в качестве основы встраиваемой системы

На этапе разработки проекта встраиваемой системы необходимо, в первую очередь, определить тип процессорного ядра, который будет использоваться в качестве ее основы. Выбор типа применяемого микропроцессорного ядра осуществляется на основе анализа требований технического задания, предъявляемых к производительности, потребляемой мощности и стоимости разрабатываемой системы.

Фирма Xilinx для проектирования систем на кристалле предоставляет два типа микропроцессорных ядер, которые различаются по способу их реализации — конфигурируемые и аппаратные. Первую группу составляют микропроцессорные ядра, которые конфигурируются на основе стандартных логических ресурсов ПЛИС. Эти ядра могут применяться в кристаллах программируемой логики различных серий. Эту группу образуют семейство 8‑разрядных микропроцессорных ядер PicoBlaze и семейство 32‑разрядных микропроцессорных ядер MicroBlaze.

Ко второй группе относятся микропроцессорные ядра, которые выполнены в виде соответствующих интегрированных аппаратных блоков в составе кристаллов. Эта группа представлена семейством микропроцессорных ядер PowerPC фирмы IBM, которое присутствует в ПЛИС семейств Virtex-II Pro, Virtex‑4 FX и Virtex‑5 FXT [19], а также двухъядерным процессорным блоком с архитектурой ARM Cortex-A9, входящим в состав программируемых СнК семейства Zynq‑7000 AP SoC. Информация о производительности и тактовой частоте различных аппаратных микропроцессорных ядер, предлагаемых фирмой Xilinx для проектирования встраиваемых систем на базе кристаллов программируемой логики и расширяемых вычислительных платформ, в наглядной форме приведена на рис. 13.

Микропроцессорные ядра, предоставляемые фирмой Xilinx для проектирования встраиваемых систем

Рис. 13. Микропроцессорные ядра, предоставляемые фирмой Xilinx для проектирования встраиваемых систем

Преимуществами конфигурируемых микропроцессорных ядер, предоставляемых фирмой Xilinx, по сравнению с аппаратными являются высокая гибкость, низкая себестоимость, относительно небольшой объем используемых ресурсов кристаллов и возможность применения в проектах, реализуемых на базе самых распространенных и доступных семейств ПЛИС. 8‑разрядные микропроцессорные ядра семейства PicoBlaze целесообразно использовать в качестве основы недорогих серийно выпускаемых встраиваемых систем, требуемая производительность которых не должна превышать 90 D‑MIPS. Для проектирования более высокоскоростных встраиваемых микропроцессорных систем на базе кристаллов программируемой логики общего назначения наиболее эффективным является применение конфигурируемых ядер семейства MicroBlaze. Элементы этого семейства представляют собой 32‑разрядные микропроцессорные ядра с RISC (Reduced Instruction Set Computer) архитектурой, производительность которых значительно зависит от семейства ПЛИС, используемого для их реализации, и выбранного критерия их оптимизации.

В таблице 5 приведены сведения о максимальной производительности микропроцессорных ядер семейства MicroBlaze версии V8.40.b, реализуемых на базе наиболее перспективных серий кристаллов программируемой логики и расширяемых вычислительных платформ, для различных вариантов оптимизации их архитектуры.

Таблица 5. Производительность микропроцессорных ядер семейства MicroBlaze

Семейство ПЛИС и программируемых систем на кристалле

Категория быстродействия

Максимальная производительность

микропроцессорного ядра

MicroBlaze (DMIPs)

С оптимизацией

по производительности и оптимизацией переходов

(5-уровневый конвейер)

С оптимизацией по производительности (5-уровневый конвейер)

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

(3-уровневый конвейер)

Zynq-7000 AP SoC

(-3)

228

259

196

Virtex-7

(-3)

293

393

264

Kintex-7

(-3)

317

408

264

Virtex-6

(-3)

306

384

246

Spartan-6

(-4)

166

209

152

При этом следует обратить внимание на то, что с появлением новых серий ПЛИС архитектура микропроцессорного ядра MicroBlaze была существенно модернизирована по сравнению с вариантом, рассмотренным в [24, 30, 31, 32]. Начиная с версии MicroBlaze V8 разработчикам предоставляется новый вариант архитектуры, основанный на использовании интерфейса AXI4 (Advanced eXtensible Interface). Вид модернизированного варианта архитектуры микропроцессорного ядра MicroBlaze изображен на рис. 14.

Модернизированный вариант архитектуры микропроцессорного ядра MicroBlaze, основанный на использовании протокола интерфейса AXI4

иМодернизированный вариант архитектуры микропроцессорного ядра MicroBlaze, основанный на использовании протокола интерфейса AXI4

Интерфейс AXI4, который является частью архитектуры Advanced Microcontroller Bus Architecture (AMBA), отличается более широкими возможностями, гибкостью и повышенной производительностью по сравнению с интерфейсом PLB v46, который был в предыдущих версиях микропроцессорного ядра MicroBlaze. Применение интерфейса AXI4, используемого также в кристаллах расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC, в архитектуре микропроцессорного ядра MicroBlaze обеспечивает при необходимости возможность быстрого переноса проектов встраиваемых систем на новую, более производительную элементную базу.

Главное преимущество аппаратных микропроцессорных ядер семейства PowerPC проявляется в возможности функционирования с высокими тактовыми частотами. Следствием этого является более высокая производительность по сравнению с конфигурируемыми микропроцессорными ядрами фирмы Xilinx. К недостаткам аппаратных ядер семейства PowerPC следует отнести ограниченное число кристаллов, в которых они применяются, и их высокую стоимость. Наиболее перспективной элементной базой для реализации встраиваемых систем с аппаратными микропроцессорными ядрами являются кристаллы расширяемых процессорных платформ семейства Zynq‑7000 AP SoC, преимущества которых были рассмотрены в [1]. Поэтому далее основное внимание уделяется процессу проектирования встраиваемых систем на основе кристаллов этого семейства.

После выбора требуемого типа микропроцессорного ядра необходимо решить задачу оптимального распределения функций разрабатываемых встраиваемых систем между аппаратной и программной частью для достижения требуемой производительности.

 

Распределение функций проектируемых встраиваемых микропроцессорных систем между аппаратной и программной частью

Для функций, время выполнения которых не оказывает существенного влияния на общую производительность проектируемых систем, можно успешно использовать программный способ реализации операций. Исходные описания таких функций задаются с помощью языков программирования C и C++. Затем эти описания преобразуются с помощью соответствующих програм-мных средств разработки в код, исполняемый процессорной системой кристалла. При программной реализации функции проектируемых систем представляются в виде совокупности операций, последовательно выполняемых микропроцессорным ядром. Иными словами, в случае программной реализации функций используется метод последовательной организации вычислений.

Для функций, требующих большой продолжительности использования (загрузки) микропроцессорного ядра для их выполнения и непосредственно определяющих производительность разрабатываемых систем, рекомендуется применять аппаратный способ реализации операций, который обеспечивает возможность параллельной организации вычислений. Аппаратная реализация функций осуществляется на базе стандартных и специализированных ресурсов программируемой логики кристаллов ПЛИС и расширяемых процессорных платформ семейства Zynq‑7000 AP SoC. При этом для повышения скорости выполнения операций целесообразно применять аппаратные секции цифровой обработки сигналов, которые включают в себя высокоскоростные умножители и сумматоры/вычитающие устройства. Представление аппаратно реализуемых функций разрабатываемых встраиваемых систем, как правило, выполняется с помощью языков описания аппаратуры HDL и в первую очередь VHDL и Verilog. На основе сформированных HDL-описаний средствами автоматизированного проектирования генерируется соответствующая конфигурационная последовательность для программируемой логики кристаллов. На рис. 15 показано распределение функций проектируемых встраиваемых систем по способу реализации операций между процессорной системой PS и программируемой логикой PL кристаллов расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC.

Распределение функций проектируемых систем между процессорной системой и программируемой логикой кристаллов семейства Zynq 7000 AP SoC

Рис. 15. Распределение функций проектируемых систем между процессорной системой и программируемой логикой кристаллов семейства Zynq 7000 AP SoC

Поиск оптимального решения задачи распределения функций разрабатываемых систем между аппаратной и программной частью можно эффективно осуществлять за счет новых средств синтеза высокого уровня Xilinx Vivado High-Level Synthesis. Они позволяют задавать исходные описания всех функций проектируемых систем с помощью языков программирования C, C++ и System C. Затем, с помощью пакета Xilinx Vivado High-Level Synthesis описания отдельных функций, указанных разработчиком, могут быть автоматически преобразованы в синтезируемый HDL-код, как показано на рис. 16.

Преобразование алгоритмических описаний функций на языках C, C++ и System C в синтезируемый HDL-код

Рис. 16. Преобразование алгоритмических описаний функций на языках C, C++ и System C в синтезируемый HDL-код

После этого, выполнив этапы синтеза низкого уровня, размещения и трассировки проекта разрабатываемой системы в кристалле и используя средства моделирования, временного анализа и оценки энергопотребления применяемой САПР, можно оценить производительность и потребляемую мощность выбранного варианта реализации. Все перечисленные процессы с использованием средств синтеза высокого уровня Xilinx Vivado High-Level Synthesis и основных инструментов разработки встраиваемых систем на базе кристаллов программируемой логики и расширяемых вычислительных платформ многократно повторяются до получения приемлемых значений параметров, соответствующих условиям технического задания. Таким образом, проанализировав несколько различных вариантов распределения функций между процессорной системой и программируемой логикой кристаллов, можно выбрать наиболее эффективный способ реализации операций для каждой функции проектируемой встраиваемой системы. Применение средств синтеза высокого уровня Xilinx Vivado High-Level Synthesis в процессе распределения функций разрабатываемых систем между аппаратной и програм-мной частью поясняется на рис. 17. Функции, требующие значительных временных ресурсов при программной реализации операций, с помощью средств синтеза высокого уровня реализуются в виде соответствующих аппаратных ускорителей, конфигурируемых на базе ресурсов программируемой логики.

Распределение функций разрабатываемых систем между аппаратной и программной частью с помощью средств синтеза высокого уровня Xilinx Vivado High-Level Synthesis

Рис. 17. Распределение функций разрабатываемых систем между аппаратной и программной частью с помощью средств синтеза высокого уровня Xilinx Vivado High-Level Synthesis

Для решения задачи оптимального разделения функций разрабатываемых встраиваемых микропроцессорных систем между аппаратной и программной частью можно также применять инструменты модельно-ориентированного проектирования MATLAB/Simulink компании MathWorks. В последних версиях этих программных инструментов предусмотрен специальный комплекс средств, обеспечивающий поддержку разработки встраиваемых систем на базе кристаллов расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC. Этот комплекс включает в себя, в том числе, программные средства Embedded Coder и HDL Coder.

Средства Embedded Coder предоставляют возможность автоматического формирования компактного и эффективного програм-много кода на языках C и C++ на основе моделей разрабатываемых систем, подготовленных в среде MATLAB/Simulink. C/C++ код, генерируемый средствами Embedded Coder, максимально адаптируется к особенностям архитектуры процессорного блока PS программируемой системы на кристалле семейства Zynq‑7000 AP SoC.

Средства HDL Coder предназначены для автоматической генерации описаний аппаратной части разрабатываемых систем на языках VHDL и Verilog. HDL-код, формируемый средствами HDL Coder, оптимизируется с учетом архитектурных особенностей программируемой логики PL кристаллов семейства Zynq‑7000 AP SoC. Для тестирования сгенерированных C/C++ и HDL-кодов в среде MATLAB/Simulink предусмотрены соответствующие средства верификации. После получения успешных результатов проверки сформированных C/C++ и HDL-кодов они могут быть преобразованы в загрузочный код процессорной системы PS и конфигурационную последовательность программируемой логики PL с помощью САПР серии Xilinx ISE Design Suite или Xilinx Vivado Design Suite.

Использование инструментов модельно-ориентированного проектирования MATLAB/Simulink в процессе разработки встраиваемых микропроцессорных систем на основе кристаллов расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC показано на рис. 18.

Разделение функций разрабатываемых систем между аппаратной и программной частью с помощью инструментов разработки MATLAB/Simulink компании MathWorks

Рис. 18. Разделение функций разрабатываемых систем между аппаратной и программной частью с помощью инструментов разработки MATLAB/Simulink компании MathWorks

Вместе с решением задачи распределения функций между аппаратной и программной частью проектируемых встраиваемых систем необходимо выбрать вариант конфигурации процессорного блока, который наиболее полно соответствует требованиям проекта.

 

Выбор варианта конфигурации процессорной системы PS кристаллов семейства Zynq-7000 AP SoC

Процессорная система PS кристаллов расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC поддерживает четыре варианта конфигурации:

  • одноядерный;
  • двухъядерный симметричный мультипроцессорный (Symmetric Multi-Processing, SMP);
  • двухъядерный асимметричный мультипроцессорный (Asymmetric Multi-Processing, AMP);
  • двухъядерный виртуальный симметричный или асимметричный мультипроцессорный.

Особенности перечисленных вариантов конфигурации процессорной системы PS представлены на рис. 19.

Варианты конфигурации процессорной системы PS кристаллов семейства Zynq 7000 AP SoC

Рис. 19. Варианты конфигурации процессорной системы PS кристаллов семейства Zynq 7000 AP SoC:
а) одноядерный;
б) двухъядерный SMP;
в) двухъядерный AMP;
г) двухъядерный виртуальный SMP или AMP

При выборе одноядерного варианта конфигурации процессорного блока PS для загрузки операционной системы и прикладного ПО используется только одно ядро ARM Cortex-A9 MPCore. Этот вариант можно применять и для автономного программного обеспечения, функционирующего без операционной системы. При использовании одноядерного варианта конфигурации процессорной системы PS второе ядро процессорного блока переводится в выключенное состояние, например, с помощью технологии Clock Gating [5], тем самым обеспечивается снижение уровня энергопотребления.

Двухъядерный симметричный мультипроцессорный вариант конфигурации процессорной системы позволяет использовать одну и ту же операционную систему одновременно для двух ядер ARM Cortex-A9 MPCore. В этом случае управление всеми процессами, которые выполняют эти ядра, осуществляется средствами операционной системы. Данный вариант конфигурации процессорной системы можно применять только для операционных систем, поддерживающих режим SMP, например Linux.

Двухъядерный асимметричный мультипроцессорный вариант конфигурации процессорного блока позволяет установить для каждого из ядер ARM Cortex-A9 MPCore различные операционные системы. Иными словами, каждое ядро процессорного блока при использовании этого варианта функционирует под управлением собственной операционной системы. При этом для реализации функций разрабатываемой системы, не критичных к времени выполнения, на одном из ядер может применяться операционная система общего назначения, например Linux. А второе микропроцессорное ядро, функционирующее под управлением операционной системы реального времени, например FreeRTOS, выделяется для осуществления функций в реальном масштабе времени. Кроме того, на одном из ядер процессорного блока может функционировать автономное программное обеспечение, которое не требует операционной системы.

Двухъядерный виртуальный симметричный или асимметричный мультипроцессорный вариант конфигурации отличается от рассмотренных выше вариантов SMP и AMP использованием специального программного инструмента управления операционными системами — гипервизора (hypervisor). Гипервизор, представляющий собой монитор виртуальных машин, обеспечивает возможность безопасного выполнения нескольких операционных систем на одном процессорном блоке, управляя доступом каждой ОС к соответствующим аппаратным ресурсам.

После выбора варианта конфигурации процессорного блока, обеспечивающего необходимую производительность при выполнении функций разрабатываемой встраиваемой системы, можно перейти непосредственно к проектированию ее аппаратной платформы.

 

Проектирование аппаратной части встраиваемой микропроцессорной системы

Этап проектирования аппаратной части встраиваемой микропроцессорной системы на основе кристаллов расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC выполняется с помощью САПР серии Xilinx ISE Design Suite или Xilinx Vivado Design Suite. На этапе формирования аппаратной платформы встраиваемой системы в используемой среде разработки создается соответствующий проект, в состав которого включается микропроцессорное ядро, выбранное на предыдущем этапе. При разработке встраиваемых микропроцессорных систем на основе расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC используется ядро, которое в полном объеме представляет процессорный блок PS кристаллов этого семейства. Затем осуществляется настройка параметров конфигурации микропроцессорных ядер ARM Cortex-A9 MPCore в соответствии с разработанной архитектурой проектируемой встраиваемой системы.

Далее проект аппаратной части разрабатываемой системы дополняется необходимыми периферийными модулями, представленными в составе процессорного блока PS кристаллов расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC [1, 5]. После включения периферийных модулей процессорного блока PS в состав формируемой аппаратной платформы осуществляется настройка их параметров. Затем в состав проекта аппаратной части разрабатываемой встраиваемой микропроцессорной системы добавляются периферийные модули, реализуемые на базе ресурсов программируемой логики. Эти периферийные модули, как правило, представлены в виде соответствующих IP-ядер. При этом могут использоваться IP-ядра как предоставляемые депозитарием применяемых средств автоматизированного проектирования, так и создаваемые разработчиками.

Далее выполняются все необходимые соединения микропроцессорного ядра и применяемых периферийных модулей в соответствии с разработанной архитектурой проектируемой встраиваемой системы. После этого осуществляется синтез, размещение и трассировка в кристалле проекта аппаратной части разрабатываемой системы и генерация соответствующей конфигурационной последовательности для программируемой логики PL. Перед активизацией каждого из перечисленных процессов целесообразно выполнить верификацию сформированной аппаратной платформы встраиваемой системы методом моделирования. Для верификации проекта аппаратной части разрабатываемой системы можно использовать встроенные средства моделирования применяемой САПР (ISE Simulator или Vivado Simulator), а также инструменты моделирования третьих фирм, например ModelSim.

В случае успешного завершения этапа проектирования аппаратной платформы разрабатываемой микропроцессорной системы (при получении приемлемых результатов полного временного моделирования, выполняемого после размещения и трассировки проекта в кристалле, и генерации конфигурационной последовательности для программируемой логики PL) можно приступить к подготовке системных программных средств нижнего (аппаратного) уровня.

 

Создание программных средств нижнего уровня для встраиваемых микропроцессорных систем

Обобщенная структура ПО встраиваемых микропроцессорных систем, реализуемых на базе кристаллов расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC, показана на рис. 20.

Обобщенная структура ПО встраиваемых систем

Рис. 20. Обобщенная структура ПО встраиваемых систем

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

Средний уровень ПО включает в себя различные библиотеки и интерфейс программирования приложений API (Application Programming Interface). В состав интерфейса API входит комплект различных классов, процедур, функций, структур и констант, которые можно использовать в процессе разработки прикладного программного обеспечения.

Верхний уровень содержит базовые приложения и различные прикладные программы, реализующие соответствующие функции разрабатываемой встраиваемой микропроцессорной системы. На рис. 21 приведена структура ПО встраиваемых систем, проектируемых на основе расширяемых процессорных платформ семейства Zynq‑7000 AP SoC, при использовании операционной системы Linux.

Структура ПО встраиваемых систем при использовании операционной системы Linux

Рис. 21. Структура ПО встраиваемых систем при использовании операционной системы Linux

Этап формирования системных программных средств нижнего (аппаратного) уровня осуществляется с помощью комплекса Xilinx Software Development Kit. На этом этапе создается пакет поддержки платы Board Support Packages (BSP) и начальный загрузчик (загрузчик первого уровня) First Stage Boot Loader (FSBL). Пакет поддержки платы BSP представляет собой совокупность драйверов процессорного блока, периферии процессорной системы, а также периферийных модулей, конфигурируемых на базе программируемой логики кристаллов PL семейства Zynq‑7000 AP SoC. Компоненты этого пакета обеспечивают доступ ко всем аппаратным ресурсам разрабатываемой встраиваемой системы.

Начальный загрузчик FSBL выполняет следующие основные функции:

  • осуществляет инициализацию основных блоков процессорной системы PS, в том числе модулей фазовой автоподстройки частоты PLL, контроллера внешней памяти и мультиплексируемых периферийных устройств ввода/вывода MIO;
  • производит загрузку конфигурационной последовательности аппаратных ускорителей и периферийных устройств, реализуемых на базе программируемой логики PL;
  • предоставляет возможность осуществления процесса загрузки в безопасном (защищенном) режиме;
  • инициирует запуск исполняемого кода прикладного ПО.

Исходная информация об архитектуре и параметрах конфигурации аппаратной платформы проектируемой системы, необходимая для формирования пакета поддержки платы BSP и начального загрузчика FSBL, содержится в файле формата XML, который автоматически генерируется средствами разработки аппаратной платформы Xilinx Platform Studio или в интегрированной среде Vivado Integrated Design Environment. Этот файл импортируется в среду комплекса Xilinx Software Development Kit, соответствующие программные средства которого генерируют пакет поддержки платы BSP и начальный загрузчик FSBL для выбранной операционной системы или автономного программного обеспечения. После этого можно приступать к созданию основного ПО разрабатываемой встраиваемой системы.

 

Разработка прикладного ПО

Для выполнения этапа формирования прикладного программного обеспечения проектируемых встраиваемых систем, реализуемых на основе кристаллов расширяемых процессорных платформ семейства Zynq‑7000 AP SoC, применяется, в первую очередь, комплекс средств Xilinx Software Development Kit. Кроме того, на этом этапе можно в полной мере использовать всевозможные средства разработки и отладки ПО, которые предоставляются различными фирмами и образуют экосистему ARM.

В начале этого этапа формируется архитектура прикладного программного обеспечения в соответствии с выбранным вариантом конфигурации процессорной системы PS и применяемой операционной системой. При этом определяется состав используемых библиотек. В частности, для операционной системы Linux предоставляется библиотека libZynq.a (рис. 21), которая обеспечивает возможность конфигурирования программируемой логики PL кристалла, управления ресурсами формирования тактовых сигналов для процессорного блока PS, оптимизации и мониторинга производительности, а также позволяет выполнять отладку аппаратной и программной части. Кроме того, для аппаратных ускорителей, конфигурируемых на базе программируемой логики, как правило, создаются соответствующие библиотеки поддержки этих устройств.

Затем в среде Xilinx Software Development Kit создается новый проект программного приложения. В рамках этого проекта формируется исходный код приложения на языках C и C++. При этом для ускорения процесса разработки ПО и минимизации числа возможных ошибок рекомендуется использовать в качестве шаблонов примеры программных приложений, предоставляемые комплексом средств Xilinx Software Development Kit для поддерживаемых отладочных инструментальных модулей.

Далее исходный текст разрабатываемого программного приложения обрабатывается препроцессором и соответствующим компилятором. В процессе компиляции выполняется поиск возможных синтаксических ошибок в исходном коде, при обнаружении которых осуществляется возвращение в текстовый редактор с указанием соответствующей строки. После исправления ошибок и повторной, успешной, компиляции с помощью ассемблера и редактора связей осуществляется формирование исполняемого кода приложения. Завершает рассматриваемый этап процесс отладки разработанного программного обеспечения, который выполняется с помощью инструментов GNU Debugger (GDB) и Xilinx Microprocessor Debugger (XMD), входящих в состав комплекса Xilinx Software Development Kit. Кроме этих инструментов, могут применяться средства отладки третьих фирм, например DS‑5 Debugger/Profiler, представленные в составе среды разработки программного обеспечения Development Studio 5 (DS‑5) компании ARM.

После генерации системных программных средств нижнего уровня, отлаженного исполняемого кода прикладных программ и конфигурационной последовательности для аппаратных ускорителей и периферийных устройств, реализуемых на базе программируемой логики PL, целесообразно выполнить комплексное моделирование разработанной системы.

 

Комплексное моделирование и отладка встраиваемых микропроцессорных систем

Для выполнения этапа совместного моделирования аппаратной платформы и разработанного ПО, а также комплексной отладки проектируемой встраиваемой микропроцессорной системы рекомендуется, прежде всего, использовать интегрированные инструменты верификации САПР серии Xilinx ISE Design Suite или Xilinx Vivado Design Suite. Встроенные инструменты этих средств автоматизированного проектирования (ISE Simulator и Vivado Simulator соответственно) поддерживают возможность применения в процессе моделирования аппаратной реализации отдельных блоков разрабатываемых встраиваемых систем, осуществляемой на базе кристаллов семейства Zynq‑7000 AP SoC, которые расположены на применяемых отладочных платах [20, 21, 22]. Таким образом, можно совместить моделирование конфигурируемой аппаратной части проектируемых систем с одновременным исполнением кода программного обеспечения непосредственно в процессорном блоке кристалла расширяемой вычислительной платформы, который установлен на плате используемого инструментального модуля. Применение аппаратных средств в процессе комплексного моделирования позволяет существенно повысить скорость его выполнения.

Кроме средств верификации, предоставляемых фирмой Xilinx, для совместного моделирования аппаратной платформы и разработанного ПО можно применять инструменты других производителей, поддерживающие возможность описания устройств с использованием языков VHDL и Verilog и предоставляющие модель аппаратного блока кристаллов семейства Zynq‑7000 AP SoC. В частности, для выполнения рассматриваемого этапа можно применять программные средства компании Cadence Design Systems, Inc. В состав этих средств входит виртуальная платформа Zynq‑7000 AP SoC Virtual Platform, которая представляет собой полную функциональную модель процессорного блока PS программируемых систем на кристалле. Эта платформа позволяет загружать исполняемый двоичный код ПО, сгенерированный для аппаратных ресурсов процессорной системы PS кристаллов семейства Zynq‑7000 AP SoC, и моделировать его выполнение. Компания Cadence Design Systems предлагает эту виртуальную платформу с комплектом моделей, представляющих отдельные блоки встраиваемых микропроцессорных систем на уровне транзакций (Transaction-Level Models, TLM). Структура виртуальной платформы Zynq‑7000 AP SoC Virtual Platform изображена на рис. 22.

Структура виртуальной платформы Zynq 7000 AP SoC Virtual Platform

Рис. 22. Структура виртуальной платформы Zynq 7000 AP SoC Virtual Platform

Применение этой виртуальной платформы в процессе разработки и отладки программного обеспечения встраиваемых микропроцессорных систем, реализуемых на базе кристаллов семейства Zynq‑7000 AP SoC, показано на рис. 23.

Применение виртуальной платформы Zynq 7000 AP SoC Virtual Platform в процессе разработки и отладки ПО

Рис. 23. Применение виртуальной платформы Zynq 7000 AP SoC Virtual Platform в процессе разработки и отладки ПО

Процесс совместной отладки аппаратной части и прикладного программного обеспечения проектируемых встраиваемых микропроцессорных систем осуществляется с помощью средств ChipScope Pro Analyzer или Vivado Logic Analyzer с применением комплекса Xilinx Software Development Kit. В состав комплекса средств внутрикристальной отладки ChipScope Pro, кроме ядер встроенного логического анализатора ChipScope Integrated Logic Analyzer (ILA), интегрированного контроллера ChipScope Integrated Controller (ICON) и виртуальных входов/выходов ChipScope Virtual Input/Output (VIO), рассмотренных в [25, 26], включено ядро мониторинга AXI-интерфейса ChipScope AXI Monitor, которое позволяет осуществлять анализ транзакций, контролировать трафик и состояние сигналов интерфейсов взаимодействия аппаратных ускорителей и периферийных устройств, конфигурируемых на базе программируемой логики PL, с процессорной системой PS. Взаимодействие основных компонентов комплекса ChipScope Pro в процессе совместной отладки аппаратной части и прикладного ПО встраиваемых микропроцессорных систем, проектируемых на основе кристаллов расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC, представлено на рис. 24.

Взаимодействие основных компонентов средств ChipScope Pro в процессе комплексной отладки встраиваемых микропроцессорных систем

Рис. 24. Взаимодействие основных компонентов средств ChipScope Pro в процессе комплексной отладки встраиваемых микропроцессорных систем

Для выполнения процесса комплексной отладки аппаратной части и прикладного ПО необходим инструментальный модуль, на котором установлен соответствующий кристалл расширяемой вычислительной платформы семейства Zynq‑7000 AP SoC, и один из стандартных загрузочных кабелей, выпускаемых фирмой Xilinx и компанией Digilent, Inc. Взаимодействие программных отладочных средств с инструментальным модулем осуществляется через порты JTAG-интерфейса посредством стандартных загрузочных кабелей. В составе кристаллов расширяемых вычислительных платформ рассматриваемого семейства представлено два порта JTAG-интерфейса, один из которых связан с процессорным блоком PS, а другой — с программируемой логикой PL. При каскадном соединении этих портов для комплексной аппаратной отладки достаточно одного из следующих загрузочных кабелей: Xilinx Platform Cable USB II, Xilinx Parallel Cable IV (PC IV), Digilent JTAG HS1 Programming Cable и Digilent JTAG HS2 Programming Cable.

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

 

Генерация загрузочного образа встраиваемой микропроцессорной системы

Процесс генерации загрузочного образа разработанной встраиваемой микропроцессорной системы выполняется с помощью соответствующих программных средств, входящих в состав комплекса Xilinx Software Development Kit. В общем случае загрузочный образ может включать в себя следующие компоненты:

  • начальный загрузчик FSBL;
  • средства поддержки мультизагрузочного режима;
  • конфигурационную последовательность аппаратной части разработанной встраиваемой системы, реализуемой на базе ресурсов программируемой логики кристаллов расширяемых процессорных платформ;
  • загрузчик второго уровня Second Stage Boot Loader (SSBL);
  • ядро операционной системы и файловую систему;
  • исполняемый код программных приложений.

В загрузочном образе встраиваемых микропроцессорных систем, функционирующих без операционных систем, отсутствуют некоторые из перечисленных компонентов (загрузчик второго уровня SSBL, ядро ОС и файловая система). На рис. 25 представлен процесс генерации загрузочного образа разработанной встраиваемой микропроцессорной системы.

Генерация загрузочного образа разработанной встраиваемой микропроцессорной системы

Рис. 25. Генерация загрузочного образа разработанной встраиваемой микропроцессорной системы

Сгенерированный загрузочный образ сразу же может быть записан в элемент энергонезависимой памяти, который будет использоваться в качестве основного источника загрузки в штатном режиме функционирования проектируемой системы. Кристаллы расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC поддерживают следующие четыре варианта загрузочных устройств:

  • элементы Flash-памяти с интерфейсом Quad-SPI;
  • элементы NOR Flash ППЗУ;
  • элементы NAND Flash-памяти;
  • карты памяти формата SD Card.

Запись загрузочного образа осуществляется с помощью соответствующей программы, входящей в состав комплекса средств разработки программного обеспечения для встраиваемых микропроцессорных систем Xilinx Software Development Kit.

 

Заключительные рекомендации

Для минимизации затрат при разработке встраиваемых микропроцессорных систем, реализуемых на базе кристаллов XC7Z010, XC7Z020 и XC7Z030, можно рекомендовать свободно распространяемые редакции средств автоматизированного проектирования фирмы Xilinx ISE WebPACK и Vivado WebPACK. Эти редакции САПР позволяют выполнить все рассмотренные этапы процесса проектирования, за исключением внутрикристальной аппаратной отладки. Для получения соответствующей лицензии на использование этих программных инструментов достаточно выполнить процедуру бесплатной регистрации на web-странице фирмы Xilinx (xilinx.com). При необходимости проведения внутрикристальной отладки аппаратной платформы следует приобрести дополнительную лицензию на использование средств ChipScope Pro Analyzer или Vivado Logic Analyzer.

В случае проектирования встраиваемых микропроцессорных систем на основе других кристаллов расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC необходимо применять коммерческие редакции САПР серии Xilinx ISE Design Suite или Xilinx Vivado Design Suite. При этом для ускорения процесса разработки и получения более высоких показателей производительности создаваемых систем и плотности размещения их в кристалле рекомендуется использовать средства проектирования нового поколения — Xilinx Vivado Design Suite.

Статья опубликована в журнале «Компоненты и технологии» №3’2014

Литература
  1. Зотов В. Расширение семейства программируемых систем на кристалле Zynq‑7000 AP SoC // Компоненты и технологии. № 12. 2014. № 1.
  2. Zynq‑7000 All Programmable SoC Overview. Advance Product Specification. Xilinx, 2013.
  3. Zynq‑7000 All Programmable SoC (XC7Z010, XC7Z015, and XC7Z020): DC and AC Switching Characteristics. Xilinx, 2013.
  4. Zynq‑7000 All Programmable SoC (XC7Z030, XC7Z045, and XC7Z100): DC and AC Switching Characteristics. Xilinx, 2013.
  5. Zynq‑7000 All Programmable SoC Technical Reference Manual. Xilinx, 2013.
  6. Zynq‑7000 All Programmable SoC: Concepts, Tools, and Techniques (CTT). A Hands-On Guide to Effective Embedded System Design. Xilinx, 2013.
  7. Zynq‑7000 All Programmable SoC Software Developers Guide. Xilinx, 2013.
  8. Zynq‑7000 All Programmable SoC PCB Design and Pin Planning Guide. Xilinx, 2013.
  9. 7 Series FPGAs and Zynq‑7000 All Programmable SoC XADC Dual 12‑Bit 1 MSPS. Analog-to-Digital Converter User Guide. Xilinx, 2012.
  10. Зотов В. Особенности архитектуры нового поколения ПЛИС с архитектурой FPGA фирмы Xilinx // Компоненты и технологии. 2010. № 12.
  11. 7 Series FPGAs SelectIO Resources User Guide. Xilinx, 2012.
  12. 7 Series FPGAs Clocking Resources User Guide. Xilinx, 2013.
  13. 7 Series FPGAs Memory Resources User Guide. Xilinx, 2013.
  14. 7 Series FPGAs Configurable Logic Block User Guide. Xilinx, 2012.
  15. 7 Series FPGAs GTP Transceivers User Guide. Xilinx, 2013.
  16. 7 Series FPGAs GTX/GTР Transceivers User Guide. Xilinx, 2013.
  17. 7 Series FPGAs Integrated Block for PCIe User Guide. Xilinx, 2012.
  18. 7 Series DSP48E1 Slice User Guide. Xilinx, 2013.
  19. Зотов В. Инструментальный модуль компании Avnet для отладки проектов встраиваемых систем, разрабатываемых на базе нового семейства ПЛИС FPGA фирмы Xilinx Virtex 5 FXT // Компоненты и технологии. 2008. № 9.
  20. Зотов В. Аппаратные средства разработки и отладки встраиваемых микропроцессорных систем, проектируемых на основе расширяемых вычислительных платформ фирмы Xilinx семейства Zynq‑7000 AP SoC // Компоненты и технологии. 2013. № 1.
  21. Зотов В. ZedBoard — эффективный инструмент разработки и отладки встраиваемых микропроцессорных систем, проектируемых на основе расширяемых вычислительных платформ фирмы Xilinx семейства Zynq‑7000 AP SoC // Компоненты и технологии. 2013. № 6.
  22. Зотов В. MicroZed — семейство унифицированных модулей, предназначенных для отладки и реализации встраиваемых микропроцессорных систем, проектируемых на основе расширяемых вычислительных платформ фирмы Xilinx серии Zynq‑7000 AP SoC // Компоненты и технологии. 2013. № 11.
  23. Зотов В. Проектирование цифровых устройств на основе ПЛИС фирмы Xilinx в САПР WebPack ISE. М.: Горячая линия – Телеком, 2003.
  24. Зотов В. Проектирование встраиваемых микропроцессорных систем на основе ПЛИС фирмы Xilinx. М.: Горячая линия – Телеком, 2006.
  25. Зотов В. Средства внутрикристальной отладки цифровых устройств и встраиваемых микропроцессорных систем, разрабатываемых на базе ПЛИС с архитектурой FPGA фирмы Xilinx — ChipScope Pro // Компоненты и технологии. 2008. № 10.
  26. Зотов В. Формирование описаний компонентов для внутрикристальной отладки цифровых устройств и встраиваемых микропроцессорных систем на основе параметризированных модулей Xilinx CORE Generator Tool. Ч. 3 // Компоненты и технологии. 2008. № 11–12. 2009. № 2–3.
  27. Зотов В. Моделирование цифровых устройств, проектируемых на основе ПЛИС фирмы Xilinx, средствами ISIM в САПР ISE Design Suite // Компоненты и технологии. 2013. № 2–3,
  28. Зотов В. Embedded Development Kit — система проектирования встраиваемых микропроцессорных систем на основе ПЛИС серий FPGA фирмы Xilinx // Компоненты и технологии. 2004. № 4.
  29. Зотов В. ModelSim — система HDL-моделирования цифровых устройств // Компоненты и технологии. 2002. № 6.
  30. Зотов В. MicroBlaze — семейство 32‑разрядных микропроцессорных ядер, реализуемых на основе ПЛИС фирмы Xilinx // Компоненты и технологии. 2003. № 9.
  31. Зотов В. Система команд микропроцессорного ядра MicroBlaze // Компоненты и технологии. 2004. № 1–3.
  32. Зотов В. Организация памяти микропроцессорного ядра MicroBlaze // Компоненты и технологии. 2004. № 5.

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

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