Здравствуйте!
Используется отладочная плата с ПЛИС xc7vx415t-2ffg1927. Сгенерил корку pcie virtex7 1.6. Ise 14.6.
Параметры корки:
- pcie gen 2. 5Gb/s
- axi data 256 bit
- clk 125 mhz
- data word aligned
Доступ/чтение BAR осуществляется без проблем.
В ПЛИС организован DMA. Перекачка идет в тестовом режиме 1 пакета 128 байт. Затем после перекачки ПЛИС генрит прерывание MSI.
Логика работы следующая:
1) ПК пишет в BAR начальный адрес оперативной памяти куда попадут данные из ПЛИС, длину запрашиваемых данных в TLP пакетах. Дает команду "СТАРТ".
2) ПЛИС передает данные. На ядро идут команды s_axis_rq*.
3) После передачи ядру запрошенных данных ПЛИС дает команду прерывания на ядро.
Счетчик отправляется непосредственно из ПЛИС в ПК:
Получаю на выходе прерывание, а данные в памяти ПК не перезаписываются, то есть вместо ожидаемой "пилы" в памяти лежат нули записываемые туда при инициализации драйвером.
В модели корки показан режим работы IO, но используется интерфейс axis_cq/cc.
Проблема может быть в заголовке TLP s_axis_rq? Есть ли примеры работы с интерфейсом s_axis_rq*?
Сообщение отредактировал ArtoM - Apr 9 2014, 04:36