doom13 0 19 октября, 2015 Опубликовано 19 октября, 2015 · Жалоба axi_dma.vhd ... -- DataMover outstanding address request fifo depth constant DM_ADDR_PIPE_DEPTH : integer := 4; ... Такой параметр нахожу, он у меня почему-то 1, попробую задать 8. ... вроде бы соответствующие параметры c_s_axi_num_read/c_s_axi_num_write расположенны слишком глубоко ... Такие параметры поиском могу найти только в папках с файлами для PCIe моста (xml - файл задаёт параметры для gui ядра) и они там 8. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 30 19 октября, 2015 Опубликовано 19 октября, 2015 · Жалоба Приветствую! Такой параметр нахожу, он у меня почему-то 1, попробую задать 8. Такие параметры поиском могу найти только в папках с файлами для PCIe моста (xml - файл задаёт параметры для gui ядра) и они там 8. Не трогайте пока PCIe bridge - настройте DMA и axi_interconect-ы Успехов! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 19 октября, 2015 Опубликовано 19 октября, 2015 · Жалоба Для AXI Interconnect эти параметры надо править: parameter [C_NUM_SLAVE_SLOTS*32-1:0] C_S_AXI_WRITE_ACCEPTANCE = 32'H00000002, // Maximum number of active write transactions that each SI // slot can accept. (Valid only for SAMD) // Format: C_NUM_SLAVE_SLOTS{Bit32}; // Range: 1-32. parameter [C_NUM_SLAVE_SLOTS*32-1:0] C_S_AXI_READ_ACCEPTANCE = 32'H00000002, // Maximum number of active read transactions that each SI // slot can accept. (Valid only for SAMD) // Format: C_NUM_SLAVE_SLOTS{Bit32}; // Range: 1-32. ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 30 19 октября, 2015 Опубликовано 19 октября, 2015 · Жалоба Приветствую! Увы это издержки "удобств" когда за Вас работает неизвестный индийский Раджа. В форме кофигурирования interconecta таких параметров нет - но можно раскрыть блок interconecta ПОСЛЕ diagram validation найти там axi_crossbar и в нем уже - поставив ручной режим - изменить нужные параметры. Ну или сразу нарисовать правильный xbar из примитивов axi_crossbar, axi_dwidth_converter, axi_clock_converter, ... не надеясь на телепатические способности Раджи. Успехов! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 19 октября, 2015 Опубликовано 19 октября, 2015 · Жалоба Сделал всё, как Вы советовали. Должно было увеличить скорость передачи, но почему-то осталось по-прежнему. Рисунок первый, то как работало ранее, использую burst 256. По рисунку видно, что период двух burst-ов примерно 1400 тактов. Рисунок второй, то как работает сейчас (с параметром constant DM_ADDR_PIPE_DEPTH : integer := 8; и crossbar-om c Read/Write Acceptance 8) Тут два burst-a передаются за 800 тактов. На осцил вывожу сигнал прерывания по обработке дескриптора, его период в обоих случаях одинаковый??? По данным ILA производительность возрасла, на деле осталась прежней, как так??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 19 октября, 2015 Опубликовано 19 октября, 2015 · Жалоба Уточню вопрос: достаточно ли последних двух осциллограмм, чтобы сказать, что производительность DMA (пропускная способность шины) во втором случае больше? Проверил ещё раз правильность работы всей системы (переключение дескрипторов, остановку DMA при использовании всех дескрипторов, восстановление передачи при обновлении дескрипторов), не могу понять, как время передачи пакета (65536х8 байт) в обоих случаях может быть одинаковым. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 30 19 октября, 2015 Опубликовано 19 октября, 2015 · Жалоба Приветствую! А у Вас часом не включен Interrupt Delay Time Out. ? PG021.pdf LogiCORE IP AXI DMA v7.1 page 17 В этом случае прерывание происходит не сразу а с задержкой заданной таймером - вот и получаете "неизменное" время передачи ;) Успехов! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 19 октября, 2015 Опубликовано 19 октября, 2015 · Жалоба Проверю конечно, но разрешал прерывание по завершению обработки буфера или ошибке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 20 октября, 2015 Опубликовано 20 октября, 2015 · Жалоба Извиняюсь, ввёл в заблуждение. Рисунки из поста выше для разных условий работы системы, первый, похоже, когда система работала в Gen1. Счас всё перепроверил, получается присвоение параметру DM_ADDR_PIPE_DEPTH значения 8; и параметрам crossbar-а Read/Write Acceptance значения 8 не увеличило пропускную способность системы (о чём и свидетельствовал постоянный период прерывания). Первый рисунок - система с дефолтными параметрами, второй - система с параметрами настроенными "ручками". Тут видно, что за одно время передаётся одинаковое количество данных (число burst-ов). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 30 20 октября, 2015 Опубликовано 20 октября, 2015 · Жалоба Приветствую! По картинкам видно что тормозит именно DMА такое впечатление что на входе у него не хватает данных. Задержек со стороны PCIe тут не видно. Успехов! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 20 октября, 2015 Опубликовано 20 октября, 2015 · Жалоба По картинкам видно что тормозит именно DMА такое впечатление что на входе у него не хватает данных. Задержек со стороны PCIe тут не видно. Да, спасибо, вот я ... . Можете смеяться, генератор трафика работает на 156.25 MHz (моделирует приём 10G Ethernet, далее фифо с переходом на 250 MHz, DMA забирает данные из FIFO), для него 9.3 Gbit/s почти потолок. Когда была проблема с работой ядра в Gen1 я его проверял, чтоб там ничего не тормозило, а тут что-то позабыл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 30 20 октября, 2015 Опубликовано 20 октября, 2015 · Жалоба Приветствую! "Ну, что же Вы, Иван Иваныч..." Удачи! Rob Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 20 октября, 2015 Опубликовано 20 октября, 2015 · Жалоба Запустил генератор трафика на 250 MHz, с Вашими советами показало 13.56 Gbit/s. Спасибо, помогли. Если оставить AXI Interconnect в режиме auto и параметр DM_ADDR_PIPE_DEPTH для DMA со стандартным значением 1, получаю примерно тех же 9.3 Gbit/s. Руками набросать свой interconnect - это ещё нормально, но вот вручную править файлы, которые нагенерил IP Integrator, чтоб оно заработало нормально, - "ваще опа". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dmitrij68 0 29 октября, 2015 Опубликовано 29 октября, 2015 · Жалоба Приветствую! Увы это издержки "удобств" когда за Вас работает неизвестный индийский Раджа. В форме кофигурирования interconecta таких параметров нет - но можно раскрыть блок interconecta ПОСЛЕ diagram validation найти там axi_crossbar и в нем уже - поставив ручной режим - изменить нужные параметры. Ну или сразу нарисовать правильный xbar из примитивов axi_crossbar, axi_dwidth_converter, axi_clock_converter, ... не надеясь на телепатические способности Раджи. Успехов! Rob. Почему у меня отсутствует кнопка ОК? Могу отредактировать но не могу применить? И куда Вы добавляете set_property? В xdc или в свойства корки. В свойства корки есть только удалить, а добавить нет. Версия 2015.1 и 2015.3. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dmitrij68 0 29 октября, 2015 Опубликовано 29 октября, 2015 · Жалоба Приветствую! Увы это издержки "удобств" когда за Вас работает неизвестный индийский Раджа. В форме кофигурирования interconecta таких параметров нет - но можно раскрыть блок interconecta ПОСЛЕ diagram validation найти там axi_crossbar и в нем уже - поставив ручной режим - изменить нужные параметры. Ну или сразу нарисовать правильный xbar из примитивов axi_crossbar, axi_dwidth_converter, axi_clock_converter, ... не надеясь на телепатические способности Раджи. Успехов! Rob. Почему у меня отсутствует кнопка ОК? Могу отредактировать но не могу применить? И куда Вы добавляете set_property? В xdc или в свойства корки. В свойства корки есть только удалить, а добавить нет. Версия 2015.1 и 2015.3. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться