реклама на сайте
подробности

 
 
> Порядок транзакций PCIe, Порядок CPLD после MRd
sp1
сообщение May 16 2016, 10:11
Сообщение #1





Группа: Участник
Сообщений: 8
Регистрация: 28-10-10
Пользователь №: 60 495



Всем, здравствуйте. Делаю систему на FPGA на основе xapp1052 для двусторонней передачи данных FPGA Spartan-6 (кит sp605) - оперативка. Передача данных из оперативки в FPGA осуществляется следующим образом: FPGA отправляет транзакцию MRd с соответствующими адресом, тегом и размером запрашиваемых данных, в ответ приходит транзакция CPLD с данными.

Столкнулся со следующей проблемой, нарушается порядок следования транзакций CPLD. Т.е. я отправляю транзакции MRd с адресами данных последовательно, и теги в транзакциях MRd идут последовательно 1, 2, 3, ... 1F, 0, 1 ... а в ответ периодически приходят CPLD с нарушенным порядком. Например, сначала CPLD с тегом 2, потом CPLD с тегом 4, потом CPLD с тегом 5, потом CPLD с тегом 3, потом CPLD с тегом 6. И данные, соответственно, лежащая по адресам, соответствующим тегам. В результате в принимаемом на стороне FPGA файле данные перемешиваются.

Пробовал выставлять всем транзакциям MRd одинаковый тег, данные все равно перемешиваются, хоть и CPLD идут с одинаковым тегом.

Читал спецификацию PCI-Express, но так и не понял, это такая особенность PCI-Express, что ему разрешено менять порядок транзакций CPLD во избежании Deadlock'ов или дело в чем-то другом? Причем такая фишка у меня только в компах под управлением 64-разрядной операционки (Linux). В 32-разрядных Linux всё ОК.

Кто-нибудь сталкивался с подобной проблемой? Что можете посоветовать?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01335 секунд с 7
ELECTRONIX ©2004-2016