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

 
 
> AXI DMA параллельная загрузка, Работа с IP AXI DMA в ZYNQ
MasterPlayer
сообщение Oct 13 2016, 09:48
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 1-07-16
Пользователь №: 92 391



Реально ли организовать многоканальный AXI DMA с параллельной загрузкой данных в память?
Или многоканальность не поддерживает параллельную загрузку(нельзя параллельно грузить два потока в память с разных источников)
Или все же только попеременный режим работы(пока не загрузится пакет - AXI DMA недоступно).
Поделитесь своими соображениями по данному вопросу?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RobFPGA
сообщение Oct 13 2016, 11:23
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Цитата(MasterPlayer @ Oct 13 2016, 12:48) *
Реально ли организовать многоканальный AXI DMA с параллельной загрузкой данных в память?
Или многоканальность не поддерживает параллельную загрузку(нельзя параллельно грузить два потока в память с разных источников)
Или все же только попеременный режим работы(пока не загрузится пакет - AXI DMA недоступно).
Поделитесь своими соображениями по данному вопросу?

Все реально в нашем виртуальном мире! Но реальнее для начала глянуть доку на данную корку!
Прикрепленное изображение


Удачи! Rob.
Go to the top of the page
 
+Quote Post
MasterPlayer
сообщение Oct 15 2016, 16:50
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 1-07-16
Пользователь №: 92 391



Цитата(RobFPGA @ Oct 13 2016, 14:23) *
Приветствую!
Все реально в нашем виртуальном мире! Но реальнее для начала глянуть доку на данную корку!


Документацию-то глянули, проект собрали и для одного канала и для нескольких - то есть документацию по ней я изучил. Проблема кроется не в этом.

А в том, что могу ли я именно грузить пакеты параллельно с нескольких каналов(это касается работы AXI DMA в режиме SG.
Суть в том, что AXI DMA работает на основе AXI4-Stream, и там подразумевается наличие таких сигналов, как TDest, TId, которые вроде как не должны изменяться до тех пор пока не закончится пакет. Тут возникает проблема, что пакеты могут быть достаточно большого размера, и ждать пока загрузится большой такой пакет нельзя. То есть фактически да - мы получаем возможность грузить данные с нескольких каналов, но сам процесс загрузки подразумевает момент, что данные все равно будут поступать попакетно - то есть не закончив прием одного пакета, второй мы просто не можем загрузить.

Вот и рассматривается вопрос - а реально ли? Ведь там, в AXI DMA хоть и создается каждый раз свой BufferDescriptorRing, но работают ли они в параллельном режиме?

И да - вход все равно остается один, и подразумевается опять же что должен стоять блок типа AXI4-Interconnect (или еще проще AXI4 switch), с заданной схемой N:1, но тут опять я уперся в то, что должна стоять система арбитража, все попытки хоть как нибудь загрузить данные с двух каналов одновременно заканчиваются неудачно. Либо источники данных не получают сигналов TReady от Switch/Interconnect, либо они получают сигналы, и грузят данные в одну и ту же область памяти параллельно, тем самым лишая какого-либо управления и возможности дальнейшей обработки этих самых пакетов.

В итоге я попал в тупиковую ситуацию, и могу неправильно принять решение о том, что организовать такую систему только основываясь на IP-блоках в принципе невозможно.
Так что предложения почитать документацию/рассмотреть тестовый пример не решат моей проблемы.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 11:17
Рейтинг@Mail.ru


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