Расширение EMIO с помощью AXI_GPIO

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

Поскольку в этом проекте требуется управлять несколькими светодиодами на стороне PL через EMIO на стороне PS, а созданное нами IP-ядро ZYNQ имеет максимум 64 вывода EMIO, что недостаточно для наших нужд, мы решим эту задачу, добавив два IP-ядра AXI_GPIO в существующий проект:

Нажмите "+", найдите "axi_gpio":

image-20250725141656180

image-20250725141736529

Дважды щелкните для настройки: нам нужно настроить 87 светодиодов, поэтому необходимо добавить два IP-ядра. Для первого IP-ядра выберите оба канала и установите ширину GPIO на максимальное значение 32. Для второго IP-ядра выберите только один канал и установите ширину GPIO на 23.

image-20250725141852037image-20250725141916428

image-20250725141916428

После завершения настройки нажмите "Run Connection Automation" для автоматической разводки:

image-20250724121039121

Во всплывающем окне установите все флажки:

image-20250724121126684

Назначьте ограничения для выводов GPIO в соответствии со схемой:

image-20250725142514995

image-20250725142556600

Наконец, экспортируйте аппаратный проект в файл .xsa, следуя предыдущим шагам.

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

Поскольку файл .xsa был обновлен, его необходимо обновить в проекте Vitis: выберите экспортированный файл .xsa, и после успешного обновления щелкните правой кнопкой мыши по "Mind-Z7020" и выберите Build.

image-20250725142828772

Аналогично, в Vitis нажмите File-->new-->Appiacation Project:

image-20250811174106532

Выберите пустой файл .c:

image-20250725143118466

После создания проекта приложения создайте новый файл .c: щелкните правой кнопкой мыши по src->New->File:

image-20250725143145846

 

Компиляция и отладка

После успешной компиляции проекта подключите JTAG отладочной платы к компьютеру с помощью кабеля USB Type-C.