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

 
 
> PCI Express на Spartan 6, Зависание "железного" блока
Airy_brn
сообщение Sep 20 2011, 10:31
Сообщение #1


Участник
*

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



Здравствуйте!
Реализую PCI Express на стандартном Endpoint ядре Spartan 6 (LX45T). При не очень большом потоке данных все замечательно - DMA передачи ходят в обоих направлениях. Однако при увеличении потока происходит очень странная ситуация - само ядро (Integrated Endpoint Block) начинает глючить: количество свободных буферов (trn_tbuf_av) не увеличивается, хотя пакеты из блока в машину уходят (этот вывод я сделала из того, что Flow Control Credit буфера возвращаются к значениям, которые были до передачи).
В Errata на Spartan 6 LX45T описана ошибка, которая очень может приводить к таким последствиям. А именно - "if the endpoint block for PCIe® receives multiple Packet Not Accepted DLLPs (NAKs) while also having small TLPs in the queue, the transmitter can lock up". Но это для ревизии 1, а у меня JTAG'ом опряделяется ревизия 3. В других Errata на Spartan 6 рассматриваются сразу и LX, и LXT семейства, и там вообще нет ничего про PCI Express и GTP трансиверы.
Может, кто сталкивался с этим? Это все-таки аппаратный глюк или пытаться дальше копать свой проект?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Airy_brn
сообщение Oct 25 2011, 08:31
Сообщение #2


Участник
*

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



...пришлось надолго отвлечься от задачи, но проблема никуда не делась...
dsmv, спасибо за пример, но выяснилось, что передача у меня организована таким же образом...
Смогла выяснить, что "зависание" происходит после следующей ситуации: я пишу некоторое количество пакетов в PCIe блок, количество свободных буферов и Flow Control TX Credit уменьшаются. Потом количество свободных буферов увеличивается на 2, хотя Flow Control TX Credit остается без изменений. После этого Flow Control TX Credit возвращаются к первоначальному значению, а trn_tbuf_av уже не изменяется.
Проблема эта скорее всего не железная, т.к. на кристалле LX100T ситуация точно такая же.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:39
Рейтинг@Mail.ru


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