реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> AXI/AXI-stream. Зачем и как реализовать?, Необходимость использования AXI и вопросы реализации
Lionet
сообщение Feb 3 2015, 06:35
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 10-11-10
Пользователь №: 60 787



Концептуально-практический волрос: сейчас все IP-cores для потоковой обработки данных (DSP FIR, FFT и прочее) реализуются с
использованием шины AXI-stream - по крайней мере, в Xilinx Vivado DSP ядер с классической шиной "данные-и-стробы" уже нет.

(То, что другие типы ядер используют вообще "полноформатную" AXI4 - это отдельная проблема).

Собственно, вопросы:

- разве использование специфической шины не ведёт к дополнительным накладным расходам ресурсов ПЛИС?

- что делать, если надо реализовать какую-то bitwise-magic - вытащить статусный бит, инвертировать, "обрезать" разрядность и т.д.?
Ранее всё это делалось достаточно нативно, поскольку линии данных доступны непосредственно.
Получается, что на каждый "чих" теперь нужно реализовывать своё ядро с интерфейсами AXI и добавлять в интегратор (для Vivado)?

- собственно, как правильно реализовать поддержку AXI-stream? Толковых мануалов и примеров найти пока не удалось.

Аналогичные вопросы и по AXI (не stream). С готовыми ядрами всё красиво - собирается, настраивается, даже как-то "подтягиваются" драйвера в devicetree
(хотя уже не всегда и не для всего). А вот как что-то своё, написанное на том же Verilog и нормально работающее в ISE, сделать совместимым с нетривиальной шиной - проблема...
Go to the top of the page
 
+Quote Post
serjj
сообщение Feb 3 2015, 07:07
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Здравствуйте.
Цитата
собственно, как правильно реализовать поддержку AXI-stream? Толковых мануалов и примеров найти пока не удалось.

Вот есть документ от Xilinx. Стр. 47 например и далее расписано какие сигналы и как реализовывать.
Цитата
разве использование специфической шины не ведёт к дополнительным накладным расходам ресурсов ПЛИС?

Не все сигналы являются обязательными, в самом простом случае есть данные, клок, резет и TVALID (см. табличку в документе).
Цитата
что делать, если надо реализовать какую-то bitwise-magic - вытащить статусный бит, инвертировать, "обрезать" разрядность и т.д.?

В составе шины есть несколькоразрядная TUSER, которую можно использовать для любых дополнительных сигналов. Разрядность между модулями в цепочке согласуется параметрами.
Для меня наглядным было поглядеть как реализована шина в FFT корке от Xilinx, там видно как что работает и почему это удобно.
Цитата
Аналогичные вопросы и по AXI (не stream). С готовыми ядрами всё красиво - собирается, настраивается, даже как-то "подтягиваются" драйвера в devicetree
(хотя уже не всегда и не для всего). А вот как что-то своё, написанное на том же Verilog и нормально работающее в ISE, сделать совместимым с нетривиальной шиной - проблема...

Самое простое - AXI Lite, все очень просто реализуется, расписано там же в документе rolleyes.gif
Go to the top of the page
 
+Quote Post
Corvus
сообщение Feb 3 2015, 07:10
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 24-04-08
Из: Зеленоград
Пользователь №: 37 056



Ну вот так, концепция поменялась. Зато стандартизация, унификация, упрощение переносимости из проекта в проект и т.д. rolleyes.gif

На каждый чих может и не надо. Но для чего-либо серьёзного придётся.
С другой стороны, разобраться придётся лишь один раз. Вопрос, как обернуть свой модуль в AXI и AXI-stream уже неоднократно поднимался на этом форуме. Да и в сети понятных мануалов всё больше.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 06:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01344 секунд с 7
ELECTRONIX ©2004-2016