Перейти к содержанию
    

MasterPlayer

Новичок
  • Постов

    3
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. В том то и дело, что пакеты будут фантастичной длины(дело в том что в ПЛИС не найдется столько ресурсов. Если быть более точным - пакеты до 4 МБайт. Но для этих целей у нас есть virtual FIFO. Разумеется, где то мы проиграем по скорости, но тут есть особенность - при тестировании на отладочной плате я установил, что скорость AXI DMA в режиме SG при параллельном чтении/записи равна порядка 420 МБайт/с Считается, что скорость не должна опуститься ниже 1 ГБит/сек суммарно. Не думаю, что может возникнуть проблема со скоростями. Основная проблема существовала по сути с самим AXIS Interconnect, так как, повторюсь - он не выдавал сигнал разрешения. Сейчас он делает это, но конфигурация неверная(я получаю не совсем то, что мне требуется). Если интересно, я мог бы отписаться по результату что с того вышло.
  2. Документацию-то глянули, проект собрали и для одного канала и для нескольких - то есть документацию по ней я изучил. Проблема кроется не в этом. А в том, что могу ли я именно грузить пакеты параллельно с нескольких каналов(это касается работы AXI DMA в режиме SG. Суть в том, что AXI DMA работает на основе AXI4-Stream, и там подразумевается наличие таких сигналов, как TDest, TId, которые вроде как не должны изменяться до тех пор пока не закончится пакет. Тут возникает проблема, что пакеты могут быть достаточно большого размера, и ждать пока загрузится большой такой пакет нельзя. То есть фактически да - мы получаем возможность грузить данные с нескольких каналов, но сам процесс загрузки подразумевает момент, что данные все равно будут поступать попакетно - то есть не закончив прием одного пакета, второй мы просто не можем загрузить. Вот и рассматривается вопрос - а реально ли? Ведь там, в AXI DMA хоть и создается каждый раз свой BufferDescriptorRing, но работают ли они в параллельном режиме? И да - вход все равно остается один, и подразумевается опять же что должен стоять блок типа AXI4-Interconnect (или еще проще AXI4 switch), с заданной схемой N:1, но тут опять я уперся в то, что должна стоять система арбитража, все попытки хоть как нибудь загрузить данные с двух каналов одновременно заканчиваются неудачно. Либо источники данных не получают сигналов TReady от Switch/Interconnect, либо они получают сигналы, и грузят данные в одну и ту же область памяти параллельно, тем самым лишая какого-либо управления и возможности дальнейшей обработки этих самых пакетов. В итоге я попал в тупиковую ситуацию, и могу неправильно принять решение о том, что организовать такую систему только основываясь на IP-блоках в принципе невозможно. Так что предложения почитать документацию/рассмотреть тестовый пример не решат моей проблемы.
  3. Реально ли организовать многоканальный AXI DMA с параллельной загрузкой данных в память? Или многоканальность не поддерживает параллельную загрузку(нельзя параллельно грузить два потока в память с разных источников) Или все же только попеременный режим работы(пока не загрузится пакет - AXI DMA недоступно). Поделитесь своими соображениями по данному вопросу?
×
×
  • Создать...