Перейти к содержанию
    

Высокоскоростной вывод данных из ПЛИС

Единственное, что могу посоветовать из своего опыта, если вдруг есть такая возможность, отключить проверку контрольной суммы на карте и пробовать смотреть, что там идет и что не так формируется. Но такие фишки есть не у всех карт.

Изменено пользователем new123

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

WireShark-ом приём пакетов проверьте, если потеря есть, то и проблему в реализации передатчика ищите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, doom13 said:

WireShark-ом приём пакетов проверьте, если потеря есть, то и проблему в реализации передатчика ищите.

а wireshark скажет если есть потерянные пакеты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если удастся включить проброс пакетов с битой контрольной суммой, то wireshark битые пакеты подсвечивает черным.

ну а так в данные можно зашить какой то счетчик, смотреть что пришло, что нет. Может у вас каждый 256-ый пакет теряется. Косвенно что то можно углядеть.

Изменено пользователем new123

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какая-то статистика там есть, надо смотреть, не помню. Но по значениям своего счётчика посмотрите, если пропуски есть, то ошибка однозначно в передатчике.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, doom13 said:

Какая-то статистика там есть, надо смотреть, не помню. Но по значениям своего счётчика посмотрите, если пропуски есть, то ошибка однозначно в передатчике.

пропуски есть точно. Я зашил в пакеты счетчик, пишу данные в файл, а потом через скрипт прогоняю и смотрю сколько пропущено. при потоке в 40Мбит потери около 0.02%, 80Мбит - 0.1%, 140Мбит - 0.3%. Как я понял это очень много. Но закономерности по шагу между потерянными пакетами я не вижу. Кроме как в констрейнах RGMII в чем еще может быть проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кто данные в файл пишет, WireShark?

Если это ваша софтина, то возможно косяк в ней?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 минут назад, excly сказал:

 Кроме как в констрейнах RGMII в чем еще может быть проблема?

Полудуплекс? Столкновение пакетов в линии? Пропадание в свитчах "за самодельной картой"? Или работаете точка-точка в дуплексе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

17 minutes ago, excly said:

пропуски есть точно. Я зашил в пакеты счетчик, пишу данные в файл, а потом через скрипт прогоняю и смотрю сколько пропущено. при потоке в 40Мбит потери около 0.02%, 80Мбит - 0.1%, 140Мбит - 0.3%. Как я понял это очень много. Но закономерности по шагу между потерянными пакетами я не вижу. Кроме как в констрейнах RGMII в чем еще может быть проблема?

Ethernet не гарантирует  доставку пакетов - потеря может быть как по "электрической" причине (помехи)  так и про причине неготовности приемника - отсутствие свободного места в приемном буфере как в самой карте так и в TCP/IP стеке. 

 

Электрические проблемы видны по  дропу пакетов по ошибке Ethernet frame CRC

 

Ну а бороться с потерями в приемнике  можно путем оптимизации параметров стека в PC. Так же можно попробовать включить для MAC в FPGA и сетевой кары в PC режим packet lossless - что то типа xon|xoff протокола на MAC уровне. В этом режиме приемник тормозить передатчик на время если видит что не может принять пакет.  

 

Но для начала не плохо бы вам проверить всю приемную часть генерируя пакеты с другого компа. 

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Помимо борьбы с теряющимися пакетами, всё равно хоть что-то да будет теряться, если есть память, сделайте достаточно большое фифо с возможностью запросить потерявшийся пакет по номеру ещё раз.

Такой очень простенький велосипедик на тему RUDP, только без подтверждений, тупо запрос на ещё посылку пакета ещё раз, если он потерялся.

Ну а если достаточного количества памяти нет - придётся подтверждать доставку каждого пакета.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, RobFPGA сказал:

Но для начала не плохо бы вам проверить всю приемную часть генерируя пакеты с другого компа. 

Для начала в PHY есть режим цифровой лупбэк. Потом режим аналоговой лупбэк. Потом неплохо глаз посмотреть... Потом режим удаленной лупбэк. Проверьте, что свой софт не теряет пакеты... Ну а уж потом только с другого компа... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 minutes ago, iosifk said:

Для начала в PHY есть режим цифровой лупбэк. Потом режим аналоговой лупбэк. Потом неплохо глаз посмотреть... Потом режим удаленной лупбэк. Проверьте, что свой софт не теряет пакеты... Ну а уж потом только с другого компа... 

То есть самое простое (и вероятное) предлагаете оставить на потом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, excly said:

Кроме как в констрейнах RGMII в чем еще может быть проблема?

Если плату делали сами, то в разводке Ethernet части

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

26 minutes ago, aaarrr said:

То есть самое простое (и вероятное) предлагаете оставить на потом?

"Нормальные герои всегда идут в обход ..." :biggrin:  

Может для начала на "компас" глянуть?  netstat -s  или netsh interface ipv4 show ipstats или netsh interface ipv4 show udpstats 

Удачи! Rob.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...