Зынк. Передача Данных Между Процессорным Модулем И Программируемой Логикой

Как и обещал в предыдущей статье ( Что такое Зинк? Краткий обзор ), поговорим о передаче данных между процессорным модулем и программируемой логикой.

В предыдущей статье упоминалось четыре метода передачи данных; в этой статье будут обсуждаться два метода, которые нашли более широкое применение.

Подробности под катом.

Будьте осторожны, здесь много фотографий!



Содержание

1 Общая информация 2 Передача данных в режиме PIO 2.1 Аппаратное обеспечение 2.2 Программная часть 2.3 Результаты 3 Передача данных в режиме DMA 3.1 Аппаратное обеспечение 3.2 Программная часть 3.3 Результаты 4. Вывод 5 использованных источников

1 Общая информация

В целом передача данных между процессорным модулем и программируемой логикой возможна в двух режимах:
  • ПИО , используется порт GP.
  • прямой доступ к памяти , используется порт HP.


2 Передача данных в режиме PIO

В режиме PIO процессорный модуль рассматривает программируемую логику как набор регистров.

Для записи или чтения определенного объема данных требуется постоянное участие процессорного модуля.

В режиме PIO инициатором всех транзакций является процессорный модуль.

Подключение программируемой логики предполагает использование порта GP, где Master — процессорный модуль, Slave — программируемая логика.



Зынк.
</p><p>
 Передача данных между процессорным модулем и программируемой логикой

Структура проекта при использовании PIO

2.1 Аппаратное обеспечение

  1. Создаем проект для Zybo в Vivado, тип чипа xc7z010clg400-1.
  2. Создайте дизайн блока.

    В Flow Navigator => Создать дизайн блока => имя «ProcessingSystem» => ОК.

  3. С помощью кнопки «+» на поле или комбинации клавиш Ctrl+I добавим ядро процессора.



    Зынк.
</p><p>
 Передача данных между процессорным модулем и программируемой логикой

  4. Подключим необходимые пины, нажав кнопку «Запустить блок автоматизации» => ОК.

  5. Импорт настроек процессорного модуля.

    Для этого дважды щелкните Система обработки Zynq7 => Импортировать настройку XPS => Укажите путь к файлу => ОК => ОК.

  6. Мы создаем периферийное ядро, которое будет реализовывать доступ к регистрам в программируемой логике.

    Инструменты => Создать и упаковать новый IP => Далее => Создать новое периферийное устройство AXI4 => Далее => Задать имя ядра, например «PIO_registers» и указать путь к каталогу для сохранения => Далее => В этом окне можно выбрать количество регистров (достаточно 4), тип интерфейса, в данном случае Lite => Далее => Добавить IP в хранилище => Готово.



    Зынк.
</p><p>
 Передача данных между процессорным модулем и программируемой логикой

  7. После этих действий созданное ядро появится в списке доступных для работы в IP-каталоге.

    Вы можете увидеть это, если выберете Flow Navigator => IP Catalog.

    Зынк.
</p><p>
 Передача данных между процессорным модулем и программируемой логикой

  8. Добавим созданное ядро в рабочую область.

    Ctrl + I => PIO_registers.

    Зынк.
</p><p>
 Передача данных между процессорным модулем и программируемой логикой

  9. Отредактируем созданное ядро, добавив работу с перемычками и светодиодами.

    Для этого щелкните правой кнопкой мыши по блоку PIO_registers => Редактировать в IP Packager => ОК.

    Откроется новое окно Vivado с созданным ядром.

  10. В файле PIO_registers_v1_0.vhd добавьте порты ввода и вывода и подключите их к внутреннему модулю:
       

    iSwitches

Теги: #Программирование микроконтроллеров #Процессоры #производительность #передача данных #FPGA #vhdl #vhdl #vhdl #vhdl #vivado #zynq-7000 #vitis #ps to pl
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.