Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PCIe зпрос на чтение.
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Methane
Какая-то лажа. Посылаю запрос на чтение из ОЗУ компютера. Данные приходят, но потом снова приходят, снова приходят и так до бесконечности. На один запрос оно начинает валиться и валиться и валиться. Одно и тоже.
Andrew Su
Цитата(Methane @ Oct 7 2010, 11:33) *
Какая-то лажа. Посылаю запрос на чтение из ОЗУ компютера. Данные приходят, но потом снова приходят, снова приходят и так до бесконечности. На один запрос оно начинает валиться и валиться и валиться. Одно и тоже.

Добрый день.
Уточните пожалуйста, а чем Вы посылаете запрос? Может Ваш автомат продолжает повторную генерацию TLP запроса чтения? Оно - это completion?
Methane
Цитата(Andrew Su @ Oct 7 2010, 13:48) *
Добрый день.
Уточните пожалуйста, а чем Вы посылаете запрос? Может Ваш автомат продолжает повторную генерацию TLP запроса чтения? Оно - это completion?

Я посылаю реад реквест (не локед). Потом начинают валиться компетишион. Я уже неделю смотрю на это в сигнал тапе. Нет ничего ни на входе корки, и машина состояний TX стоит. Четко происходит посылка одного memory read request, и в ответ начинают валиться компетишены. Компетишены все правильные, с одного и того же адресса, если запрос длинный, то компетишен прихоид за несколько раз, но постоянно повторяется.
Methane
Только что заметил, что после того как послал запрос на чтение, на выходе аппаратной корки появляются импульсы на выходе tx_stream_ready. Значит таки аппаратный PCIe на плисине дуреет. sad.gif
serebr
Цитата(Methane @ Oct 7 2010, 18:21) *
Я посылаю реад реквест (не локед). Потом начинают валиться компетишион. Я уже неделю смотрю на это в сигнал тапе. Нет ничего ни на входе корки, и машина состояний TX стоит. Четко происходит посылка одного memory read request, и в ответ начинают валиться компетишены. Компетишены все правильные, с одного и того же адресса, если запрос длинный, то компетишен прихоид за несколько раз, но постоянно повторяется.

"Компетишенов" в PCIe нет. "Комплешены" - есть. wink.gif
Methane
Цитата(serebr @ Oct 7 2010, 15:27) *
"Компетишенов" в PCIe нет. "Комплешены" - есть. wink.gif

Чем бы оно ни было. Они лезут и лезут. И я понятия не имею в чем может быть проблема.
Methane
Кажись я разобрался.
Andrew Su
Цитата(Methane @ Oct 7 2010, 17:19) *
Кажись я разобрался.

Не поделитесь?
Methane
Цитата(Andrew Su @ Oct 7 2010, 17:34) *
Не поделитесь?

Датафрейм не нужно было поднимать, если данные передавать не собираешся. От этого у TX модуля рвало крышу, и он сыпал запросами в PС, и в зависимости от размера запрашиваемых данных, могло клинить всю систему. А у меня на шине уже висел таймер, два ПДП канала, регистры, всем этим мультиплексор с приоритетами рулил... В итогде из за канала на чтение стал пропускать строго половину посылок канал на запись, причем канал на чтение работал вроде как нормально итд. wacko.gif wacko.gif wacko.gif

Сейчас по крайней мере оно останавливается, и все остальное прилично себя ведет.
dmitry-tomsk
Когда шёл непрерывный поток completion винда, случайно, не зависала? А то у меня проблема с virtex-5 когда поток непрерывный. У altera, интересно, такой глюк есть? А какая скорость чтения получилась?
Methane
Цитата(dmitry-tomsk @ Oct 8 2010, 12:21) *
Когда шёл непрерывный поток completion винда, случайно, не зависала? А то у меня проблема с virtex-5 когда поток непрерывный. У altera, интересно, такой глюк есть? А какая скорость чтения получилась?

Если идет большой поток и система виснет, надо кредиты смотреть. Может там где-то места нет. А по скорости, в общем соответствует заявленной для PCIe. На запись вообще проблем нет, а на чтение, надо разные TAGи использовать чтобы всю производительность получить. У меня такой задачи нет. Меня устроят несколько каналов ПДП со сравнительно низкой скоростью.
dmitry-tomsk
Цитата(Methane @ Oct 8 2010, 13:33) *
Если идет большой поток и система виснет, надо кредиты смотреть. Может там где-то места нет. А по скорости, в общем соответствует заявленной для PCIe. На запись вообще проблем нет, а на чтение, надо разные TAGи использовать чтобы всю производительность получить. У меня такой задачи нет. Меня устроят несколько каналов ПДП со сравнительно низкой скоростью.

В том-то и дело, что и кредиты в норме и теги разные, а виснет. Такое впечатление, что внутри аппаратного блока нет арбитра и системные запросы не обрабатываются, если входной буфер блока занят. А сколько скорость в МБайт/сек?
Methane
Цитата(dmitry-tomsk @ Oct 8 2010, 12:44) *
В том-то и дело, что и кредиты в норме и теги разные, а виснет. Такое впечатление, что внутри аппаратного блока нет арбитра и системные запросы не обрабатываются, если входной буфер блока занят. А сколько скорость в МБайт/сек?

ХЕЗ. На запись, у меня стабильно идет 500 мегабайт в секунду. (125мегагерц/2 и * 8 байт). На чтение, 125/6 * 8 байт работает, фифо на 0x8c0 максимум было свободно. Сейчас я экспериментирую со стабильностью и скоростью. Это 4х ген1.
Methane
666.(6) мегабайт в секунду на чтение. 8 каналов. Может кому пригодится. Заполнение FIFO, ~0х150
Может и быстрее можно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.