Документацию-то глянули, проект собрали и для одного канала и для нескольких - то есть документацию по ней я изучил. Проблема кроется не в этом.
А в том, что могу ли я именно грузить пакеты параллельно с нескольких каналов(это касается работы AXI DMA в режиме SG.
Суть в том, что AXI DMA работает на основе AXI4-Stream, и там подразумевается наличие таких сигналов, как TDest, TId, которые вроде как не должны изменяться до тех пор пока не закончится пакет. Тут возникает проблема, что пакеты могут быть достаточно большого размера, и ждать пока загрузится большой такой пакет нельзя. То есть фактически да - мы получаем возможность грузить данные с нескольких каналов, но сам процесс загрузки подразумевает момент, что данные все равно будут поступать попакетно - то есть не закончив прием одного пакета, второй мы просто не можем загрузить.
Вот и рассматривается вопрос - а реально ли? Ведь там, в AXI DMA хоть и создается каждый раз свой BufferDescriptorRing, но работают ли они в параллельном режиме?
И да - вход все равно остается один, и подразумевается опять же что должен стоять блок типа AXI4-Interconnect (или еще проще AXI4 switch), с заданной схемой N:1, но тут опять я уперся в то, что должна стоять система арбитража, все попытки хоть как нибудь загрузить данные с двух каналов одновременно заканчиваются неудачно. Либо источники данных не получают сигналов TReady от Switch/Interconnect, либо они получают сигналы, и грузят данные в одну и ту же область памяти параллельно, тем самым лишая какого-либо управления и возможности дальнейшей обработки этих самых пакетов.
В итоге я попал в тупиковую ситуацию, и могу неправильно принять решение о том, что организовать такую систему только основываясь на IP-блоках в принципе невозможно.
Так что предложения почитать документацию/рассмотреть тестовый пример не решат моей проблемы.