doom13 0 October 19, 2015 Posted October 19, 2015 · Report post 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. Quote Share this post Link to post Share on other sites More sharing options...
RobFPGA 99 October 19, 2015 Posted October 19, 2015 · Report post Приветствую! Такой параметр нахожу, он у меня почему-то 1, попробую задать 8. Такие параметры поиском могу найти только в папках с файлами для PCIe моста (xml - файл задаёт параметры для gui ядра) и они там 8. Не трогайте пока PCIe bridge - настройте DMA и axi_interconect-ы Успехов! Rob. Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 October 19, 2015 Posted October 19, 2015 · Report post Для 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. ??? Quote Share this post Link to post Share on other sites More sharing options...
RobFPGA 99 October 19, 2015 Posted October 19, 2015 · Report post Приветствую! Увы это издержки "удобств" когда за Вас работает неизвестный индийский Раджа. В форме кофигурирования interconecta таких параметров нет - но можно раскрыть блок interconecta ПОСЛЕ diagram validation найти там axi_crossbar и в нем уже - поставив ручной режим - изменить нужные параметры. Ну или сразу нарисовать правильный xbar из примитивов axi_crossbar, axi_dwidth_converter, axi_clock_converter, ... не надеясь на телепатические способности Раджи. Успехов! Rob. Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 October 19, 2015 Posted October 19, 2015 · Report post Сделал всё, как Вы советовали. Должно было увеличить скорость передачи, но почему-то осталось по-прежнему. Рисунок первый, то как работало ранее, использую burst 256. По рисунку видно, что период двух burst-ов примерно 1400 тактов. Рисунок второй, то как работает сейчас (с параметром constant DM_ADDR_PIPE_DEPTH : integer := 8; и crossbar-om c Read/Write Acceptance 8) Тут два burst-a передаются за 800 тактов. На осцил вывожу сигнал прерывания по обработке дескриптора, его период в обоих случаях одинаковый??? По данным ILA производительность возрасла, на деле осталась прежней, как так??? Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 October 19, 2015 Posted October 19, 2015 · Report post Уточню вопрос: достаточно ли последних двух осциллограмм, чтобы сказать, что производительность DMA (пропускная способность шины) во втором случае больше? Проверил ещё раз правильность работы всей системы (переключение дескрипторов, остановку DMA при использовании всех дескрипторов, восстановление передачи при обновлении дескрипторов), не могу понять, как время передачи пакета (65536х8 байт) в обоих случаях может быть одинаковым. Quote Share this post Link to post Share on other sites More sharing options...
RobFPGA 99 October 19, 2015 Posted October 19, 2015 · Report post Приветствую! А у Вас часом не включен Interrupt Delay Time Out. ? PG021.pdf LogiCORE IP AXI DMA v7.1 page 17 В этом случае прерывание происходит не сразу а с задержкой заданной таймером - вот и получаете "неизменное" время передачи ;) Успехов! Rob. Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 October 19, 2015 Posted October 19, 2015 · Report post Проверю конечно, но разрешал прерывание по завершению обработки буфера или ошибке. Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 October 20, 2015 Posted October 20, 2015 · Report post Извиняюсь, ввёл в заблуждение. Рисунки из поста выше для разных условий работы системы, первый, похоже, когда система работала в Gen1. Счас всё перепроверил, получается присвоение параметру DM_ADDR_PIPE_DEPTH значения 8; и параметрам crossbar-а Read/Write Acceptance значения 8 не увеличило пропускную способность системы (о чём и свидетельствовал постоянный период прерывания). Первый рисунок - система с дефолтными параметрами, второй - система с параметрами настроенными "ручками". Тут видно, что за одно время передаётся одинаковое количество данных (число burst-ов). Quote Share this post Link to post Share on other sites More sharing options...
RobFPGA 99 October 20, 2015 Posted October 20, 2015 · Report post Приветствую! По картинкам видно что тормозит именно DMА такое впечатление что на входе у него не хватает данных. Задержек со стороны PCIe тут не видно. Успехов! Rob. Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 October 20, 2015 Posted October 20, 2015 · Report post По картинкам видно что тормозит именно DMА такое впечатление что на входе у него не хватает данных. Задержек со стороны PCIe тут не видно. Да, спасибо, вот я ... . Можете смеяться, генератор трафика работает на 156.25 MHz (моделирует приём 10G Ethernet, далее фифо с переходом на 250 MHz, DMA забирает данные из FIFO), для него 9.3 Gbit/s почти потолок. Когда была проблема с работой ядра в Gen1 я его проверял, чтоб там ничего не тормозило, а тут что-то позабыл. Quote Share this post Link to post Share on other sites More sharing options...
RobFPGA 99 October 20, 2015 Posted October 20, 2015 · Report post Приветствую! "Ну, что же Вы, Иван Иваныч..." Удачи! Rob Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 October 20, 2015 Posted October 20, 2015 · Report post Запустил генератор трафика на 250 MHz, с Вашими советами показало 13.56 Gbit/s. Спасибо, помогли. Если оставить AXI Interconnect в режиме auto и параметр DM_ADDR_PIPE_DEPTH для DMA со стандартным значением 1, получаю примерно тех же 9.3 Gbit/s. Руками набросать свой interconnect - это ещё нормально, но вот вручную править файлы, которые нагенерил IP Integrator, чтоб оно заработало нормально, - "ваще опа". Quote Share this post Link to post Share on other sites More sharing options...
Dmitrij68 0 October 29, 2015 Posted October 29, 2015 · Report post Приветствую! Увы это издержки "удобств" когда за Вас работает неизвестный индийский Раджа. В форме кофигурирования interconecta таких параметров нет - но можно раскрыть блок interconecta ПОСЛЕ diagram validation найти там axi_crossbar и в нем уже - поставив ручной режим - изменить нужные параметры. Ну или сразу нарисовать правильный xbar из примитивов axi_crossbar, axi_dwidth_converter, axi_clock_converter, ... не надеясь на телепатические способности Раджи. Успехов! Rob. Почему у меня отсутствует кнопка ОК? Могу отредактировать но не могу применить? И куда Вы добавляете set_property? В xdc или в свойства корки. В свойства корки есть только удалить, а добавить нет. Версия 2015.1 и 2015.3. Quote Share this post Link to post Share on other sites More sharing options...
Dmitrij68 0 October 29, 2015 Posted October 29, 2015 · Report post Приветствую! Увы это издержки "удобств" когда за Вас работает неизвестный индийский Раджа. В форме кофигурирования interconecta таких параметров нет - но можно раскрыть блок interconecta ПОСЛЕ diagram validation найти там axi_crossbar и в нем уже - поставив ручной режим - изменить нужные параметры. Ну или сразу нарисовать правильный xbar из примитивов axi_crossbar, axi_dwidth_converter, axi_clock_converter, ... не надеясь на телепатические способности Раджи. Успехов! Rob. Почему у меня отсутствует кнопка ОК? Могу отредактировать но не могу применить? И куда Вы добавляете set_property? В xdc или в свойства корки. В свойства корки есть только удалить, а добавить нет. Версия 2015.1 и 2015.3. Quote Share this post Link to post Share on other sites More sharing options...