Обновить

Шпаргалка по AXI: Краткое описание интерфейса

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели8.5K
Всего голосов 14: ↑14 и ↓0+21
Комментарии13

Комментарии 13

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

Ну для обзора пойдет. Я бы добавил больше информации про handshake. Это основа AXI. Там есть очень важные и не очевидные правила.

Спасибо, почитаю на досуге.

ты на каком-то железе или в симуляции смотришь ?

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

Ну в рамках этой статьи я чисто теорию изучал, сейчас пробую написать код на systemverilog, как закончу запускать буду в симулятуре questasim.

По хорошему возьми какое-нибудь ip ядро, и попытаться в него достучаться по axi. Например какойнибуть gpio или память.

Так как готовое ядро точно соответствует стандарту axi, и если что-то пойдет не так то точно знаешь кто не прав)

Спасибо за совет, поробую.

Я бы посмотрел на результат, просимулировал бы.
Сейчас тоже начал в свободное время изучать протокол AXI4 lite

ну готовых решений достаточно на github, я время от времени поглядываю на некоторые

Если не хочется кодить, в Vivado можно сгенерить AXI-ядро (например I2C). Затем по щелчку правой кнопкой выбрать Open Example Design и оно создаст пример с генератором AXI транзакций.

Если же самопальное ядро уже готово, можно проверить, корректно ли оно взаимодействует с AXI с помощью protocol-checker IP в составе AXI-interconnect. Оно может сотни варнингов выдавать по нарушениям AXI, очень подробно. Их и в железе можно посмотреть, через ILA.


Если охота ещё углубиться, можно поиграться с AXI Verification IP.

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

Не заблокированные, а блокирующие, наверное -- т.е. захватывающие шины в монопольное владение на всё время выполнения операции.

Кроме того, secure лучше переводить как безопасный, а не защищённый. Защита -- это protection, она реализуется, например, средствами устройства защиты памяти (MPU, memory protection unit) на микроконтроллерах M- и R-профилей архитектуры ARM и используется операционной системой, чтобы защитить себя от прикладного кода, а прикладные задачи -- друг от друга. А secure -- это другое, к обычной защите памяти отношения не имеющее (есть некое "безопасное ПО", работающее независимо и над операционной системой, последняя точно так же не имеет доступа к безопасной памяти, как и прикладные программы; в общем, ещё один механизм защиты для борьбы с уязвимости в операционных системах).

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации