Как и обещал в предыдущей статье ( Что такое Зинк? Краткий обзор ), поговорим о передаче данных между процессорным модулем и программируемой логикой.
В предыдущей статье упоминалось четыре метода передачи данных; в этой статье будут обсуждаться два метода, которые нашли более широкое применение.
Подробности под катом.
Будьте осторожны, здесь много фотографий!
Содержание
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 — программируемая логика.
Структура проекта при использовании PIO
2.1 Аппаратное обеспечение
- Создаем проект для Zybo в Vivado, тип чипа xc7z010clg400-1.
- Создайте дизайн блока.
В Flow Navigator => Создать дизайн блока => имя «ProcessingSystem» => ОК.
- С помощью кнопки «+» на поле или комбинации клавиш Ctrl+I добавим ядро процессора.
- Подключим необходимые пины, нажав кнопку «Запустить блок автоматизации» => ОК.
- Импорт настроек процессорного модуля.
Для этого дважды щелкните Система обработки Zynq7 => Импортировать настройку XPS => Укажите путь к файлу => ОК => ОК.
- Мы создаем периферийное ядро, которое будет реализовывать доступ к регистрам в программируемой логике.
Инструменты => Создать и упаковать новый IP => Далее => Создать новое периферийное устройство AXI4 => Далее => Задать имя ядра, например «PIO_registers» и указать путь к каталогу для сохранения => Далее => В этом окне можно выбрать количество регистров (достаточно 4), тип интерфейса, в данном случае Lite => Далее => Добавить IP в хранилище => Готово.
- После этих действий созданное ядро появится в списке доступных для работы в IP-каталоге.
Вы можете увидеть это, если выберете Flow Navigator => IP Catalog.
- Добавим созданное ядро в рабочую область.
- Отредактируем созданное ядро, добавив работу с перемычками и светодиодами.
Для этого щелкните правой кнопкой мыши по блоку PIO_registers => Редактировать в IP Packager => ОК.
Откроется новое окно Vivado с созданным ядром.
- В файле PIO_registers_v1_0.vhd добавьте порты ввода и вывода и подключите их к внутреннему модулю:
iSwitches
-
Коротко Об Основах
19 Oct, 24 -
Google Анонсировала Google Cloud Sql
19 Oct, 24 -
Пароль Птица, Генератор Паролей
19 Oct, 24 -
Для Остальных Из Нас
19 Oct, 24 -
Готовая Команда Для Вашего Интернет-Стартапа
19 Oct, 24