Нужен совет/критика по решению вопроса.
Есть поток данных AXI4-Stream, данные передаются пакетами 64 кБ (2048 отсчётов по 32 байт каждый), сохраняются в DDR3 памяти (всего 128 пакетов - 128 х (2048 х 32)). Далее данные достаются из памяти и формируется новый поток AXI4-Stream (пакет 128 отсчётов по 32 байта и таких пакетов 2048 - 2048 х (128 х 32)), но тут последовательность передачи следующая:
пакет №0 - 32[0], 32[2048], 32[4096] , ...
пакет №1 - 32[32], 32[2048 + 32], 32[4096 + 32] , ...
пакет №2 - 32[64], 32[2048 + 64], 32[4096 + 64] , ...
пакет №3 - 32[96], 32[2048 + 96], 32[4096 + 96] , ...
...
пакет №2047 - 32[2016], 32[2048 + 2016], 32[4096 + 2016], ...
Код
------------------------- -------------------------
pack #0 | 2048 x 32 | | 32 | 32 | | 32 |
------------------------- -------------------------
pack #1 | 2048 x 32 | | 32 | 32 | | 32 |
------------------------- -------------------------
pack #2 | 2048 x 32 | | 32 | 32 | | 32 |
------------------------- -------------------------
pack #2 | 2048 x 32 | | 32 | 32 | | 32 |
------------------------- -------------------------
pack #4 | 2048 x 32 | | 32 | 32 | | 32 |
------------------------- -------------------------
| | | | | | |
------------------------- -------------------------
| | | | | | |
------------------------- -------------------------
pack #127 | 2048 x 32 | | 32 | 32 | | 32 |
------------------------- -------------------------
p p p
a a a
c c c
k k k
#0 #1 #2047
pack #0 | 2048 x 32 | | 32 | 32 | | 32 |
------------------------- -------------------------
pack #1 | 2048 x 32 | | 32 | 32 | | 32 |
------------------------- -------------------------
pack #2 | 2048 x 32 | | 32 | 32 | | 32 |
------------------------- -------------------------
pack #2 | 2048 x 32 | | 32 | 32 | | 32 |
------------------------- -------------------------
pack #4 | 2048 x 32 | | 32 | 32 | | 32 |
------------------------- -------------------------
| | | | | | |
------------------------- -------------------------
| | | | | | |
------------------------- -------------------------
pack #127 | 2048 x 32 | | 32 | 32 | | 32 |
------------------------- -------------------------
p p p
a a a
c c c
k k k
#0 #1 #2047
Пока думаю использовать для этих целей AXI DMA, но для режима DMA MM2S получается что каждый дескриптор описывает буфер размером 32 байта (это ещё и ширина шины), что и смущает.
Можно ли тут обойтись AXI DMA или лучше делать свой мастер на AXI4 шину?
Спасибо.