Skip to content

Часть 1. Разработка процессорной системы на базе софт-процессора MicroBlaze в среде Xilinx Vivado IDE/HLx

Аннотация

В этой статье описаны основные этапы разработки процессорной системы на базе софт-процессора MicroBlaze [1, 2] в среде Xilinx Vivado [3]. Будут рассмотрены только основные моменты и шаги, которые позволят Вам быстро собрать процессорную систему из ресурсов ПЛИС/FPGA, а также получить общее представление о ходе её построения и подключения периферии.

Введение

Разработка систем на FPGA давно перестала ограничиваться простым написанием кода на языках описания аппаратуры (HDL); и по мере возрастания количества логических ресурсов и сложности проектов, подходы к проектированию систем на FPGA многократно пересматривались. Одним из витков развития стало внедрение в проекты софт-процессоров – по сути обычных микропроцессоров, но собранных на ресурсах FPGA. Такой подход даёт разработчикам гибкость системы и ещё больше объединяет области сотрудничества HW (hardware – аппаратных) и SW (software – программных) инженеров. К сожалению, несмотря на относительную несложность разработки софт-процессорных систем, многие пытаясь «поднять» эту тему, сталкиваются с трудностями освоения, потому что не знают где найти нужную информацию, а если и находят, то не знают с чего начать.

Цель статьи – дать общее представление об этапах сборки процессорной системы на базе софт-процессора Microblaze, используя среду Xilinx Vivado.

К сожалению, в рамках одной статьи сложно описать все многообразие процесса построения софт-процессорных систем на FPGA и детально изложить все сопровождающие его «тонкие» моменты, но с чего-то начать необходимо. В последующих статьях мы рассмотрим подключение Ethernet, различных контроллеров памяти, внешних интерфейсов, разберём работу компонентов, связывающих MicroBlaze с периферией и многое другое. Но это будет чуточку позже, а для начала…

Примечание: надо сказать, что при создании софт-процессорной системы, точнее для её отладки Вам всё же придётся иметь какую-нибудь макетную плату с FPGA Xilinx 7-го семейства [4] или же уметь пользоваться QEMU эмулятором. Простое моделирование через симулятор XSIM здесь не есть решение проблемы. Моделирование запустится, но сколько понадобится времени чтобы посмотреть, что светодиод моргает – я сказать не могу; возможно – дни и недели машинного времени. Поэтому крайне рекомендую обзавестись недорогой макетной платой. экспериментировал на Arty Board от компании Digilent [5], именно на ней и будет проходить текущее и дальнейшее «обучение». Рекомендую читателям обзавестись ею, поскольку кристалл, установленный на ней, поддерживается бесплатной (Web) версией Vivado, но при этом с платой поставляется полноценная лицензия. В России плата обошлась мне в 153 доллара, заказывал через компанию Регион Вирта [6], поскольку они могут работать с физическими лицами. В интернет магазинах (включая AliExpress) в то время плата стоила гораздо дороже. Возможно, сейчас ситуация изменилась – проверьте.

HW/SW части процессорной системы

Разработка любой процессорной системы, построенной на ресурсах FPGA, состоит из двух фундаментальных частей: сборки аппаратной платформы HW – hardware, и разработки исполняемой программы SW – software. HW-часть разрабатывается в среде Xilinx Vivado в модуле IP Integrator [7] (Vivado IPI) и представляет собой создание собственно экземпляра (или нескольких – для многопроцессорной системы) ядра MicroBlaze, соединение его c необходимой периферией и распределение адресного пространства. Разработка кода для MicroBlaze выполняется в Xilinx SDK [8] на ассемблере или C/C++. Процесс сборки HW-части в Vivado IPI во многом похож, на аналогичный в предшествующих средах Xilinx – ISE и PlanAhead (где для этого использовалась утилита XPS – Xilinx Platform Studio), но имеет ряд отличий от него. Сохранились общие принципы, различия же встречаются, по большей части, в представлении системы. В одной из последующих статей мы разберём процесс разработки в XPS. Со стороны же программной (SW-части) никаких отличий нет: для работы с программной частью также используется Xilinx SDK. Разработка аппаратной платформы начинается с запуска Vivado и создания проекта.

Создание нового проекта

Воспользуемся одним из способов открытия стартового окна Vivado, используя TCL Shell (Пуск – Xilinx Design Tools – Vivado 201x.x – Vivado 201x.x Tcl Shell (см. рис. 1)).