|
|
  |
Bus Master DMA для PCIe |
|
|
|
Oct 19 2015, 08:53
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(RobFPGA @ Oct 19 2015, 10:45)  Код axi_dma.vhd ... -- DataMover outstanding address request fifo depth constant DM_ADDR_PIPE_DEPTH : integer := 4; ... Такой параметр нахожу, он у меня почему-то 1, попробую задать 8. Цитата(RobFPGA @ Oct 18 2015, 23:21)  ... вроде бы соответствующие параметры c_s_axi_num_read/c_s_axi_num_write расположенны слишком глубоко ... Такие параметры поиском могу найти только в папках с файлами для PCIe моста (xml - файл задаёт параметры для gui ядра) и они там 8.
|
|
|
|
|
Oct 19 2015, 09:01
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(doom13 @ Oct 19 2015, 11:53)  Такой параметр нахожу, он у меня почему-то 1, попробую задать 8.
Такие параметры поиском могу найти только в папках с файлами для PCIe моста (xml - файл задаёт параметры для gui ядра) и они там 8. Не трогайте пока PCIe bridge - настройте DMA и axi_interconect-ы Успехов! Rob.
|
|
|
|
|
Oct 19 2015, 10:10
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Для 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. ???
|
|
|
|
|
Oct 19 2015, 11:07
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Увы это издержки "удобств" когда за Вас работает неизвестный индийский Раджа. В форме кофигурирования interconecta таких параметров нет - но можно раскрыть блок interconecta ПОСЛЕ diagram validation найти там axi_crossbar и в нем уже - поставив ручной режим - изменить нужные параметры. Ну или сразу нарисовать правильный xbar из примитивов axi_crossbar, axi_dwidth_converter, axi_clock_converter, ... не надеясь на телепатические способности Раджи. Успехов! Rob.
|
|
|
|
|
Oct 19 2015, 13:42
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Сделал всё, как Вы советовали. Должно было увеличить скорость передачи, но почему-то осталось по-прежнему. Рисунок первый, то как работало ранее, использую burst 256. По рисунку видно, что период двух burst-ов примерно 1400 тактов. Рисунок второй, то как работает сейчас (с параметром constant DM_ADDR_PIPE_DEPTH : integer := 8; и crossbar-om c Read/Write Acceptance 8) Тут два burst-a передаются за 800 тактов. На осцил вывожу сигнал прерывания по обработке дескриптора, его период в обоих случаях одинаковый??? По данным ILA производительность возрасла, на деле осталась прежней, как так???
Эскизы прикрепленных изображений
|
|
|
|
|
Oct 20 2015, 12:37
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(RobFPGA @ Oct 20 2015, 12:34)  По картинкам видно что тормозит именно DMА такое впечатление что на входе у него не хватает данных. Задержек со стороны PCIe тут не видно. Да, спасибо, вот я ... . Можете смеяться, генератор трафика работает на 156.25 MHz (моделирует приём 10G Ethernet, далее фифо с переходом на 250 MHz, DMA забирает данные из FIFO), для него 9.3 Gbit/s почти потолок. Когда была проблема с работой ядра в Gen1 я его проверял, чтоб там ничего не тормозило, а тут что-то позабыл.
|
|
|
|
|
Oct 20 2015, 14:40
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(RobFPGA @ Oct 20 2015, 15:42)  Запустил генератор трафика на 250 MHz, с Вашими советами показало 13.56 Gbit/s. Спасибо, помогли. Если оставить AXI Interconnect в режиме auto и параметр DM_ADDR_PIPE_DEPTH для DMA со стандартным значением 1, получаю примерно тех же 9.3 Gbit/s. Руками набросать свой interconnect - это ещё нормально, но вот вручную править файлы, которые нагенерил IP Integrator, чтоб оно заработало нормально, - "ваще опа".
|
|
|
|
|
Oct 29 2015, 08:03
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 10-01-06
Пользователь №: 13 025

|
Цитата(RobFPGA @ Oct 19 2015, 14:07)  Приветствую! Увы это издержки "удобств" когда за Вас работает неизвестный индийский Раджа. В форме кофигурирования interconecta таких параметров нет - но можно раскрыть блок interconecta ПОСЛЕ diagram validation найти там axi_crossbar и в нем уже - поставив ручной режим - изменить нужные параметры. Ну или сразу нарисовать правильный xbar из примитивов axi_crossbar, axi_dwidth_converter, axi_clock_converter, ... не надеясь на телепатические способности Раджи. Успехов! Rob.
Почему у меня отсутствует кнопка ОК? Могу отредактировать но не могу применить? И куда Вы добавляете set_property? В xdc или в свойства корки. В свойства корки есть только удалить, а добавить нет. Версия 2015.1 и 2015.3.
|
|
|
|
|
Oct 29 2015, 08:03
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 10-01-06
Пользователь №: 13 025

|
Цитата(RobFPGA @ Oct 19 2015, 14:07)  Приветствую! Увы это издержки "удобств" когда за Вас работает неизвестный индийский Раджа. В форме кофигурирования interconecta таких параметров нет - но можно раскрыть блок interconecta ПОСЛЕ diagram validation найти там axi_crossbar и в нем уже - поставив ручной режим - изменить нужные параметры. Ну или сразу нарисовать правильный xbar из примитивов axi_crossbar, axi_dwidth_converter, axi_clock_converter, ... не надеясь на телепатические способности Раджи. Успехов! Rob.
Почему у меня отсутствует кнопка ОК? Могу отредактировать но не могу применить? И куда Вы добавляете set_property? В xdc или в свойства корки. В свойства корки есть только удалить, а добавить нет. Версия 2015.1 и 2015.3.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|