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

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

Всем доброго времени суток. Есть отладочная плата с Cyclone V. Плата эта снимает данные с параллельной 8-битной шины. Данные идут потоком без остановки. Нужно эти данные выводить на PC. Сделал вывод по udp, но ввиду особенностей этого протокола происходит потеря пакетов, а это неприемлемо. Причем с увеличением скорости количество потерянных пакетов растет. Можно попробовать реализовать tcp, но пишут, что это существенно сложнее, чем udp и я не знаю сколько времени на это понадобится. Подскажите, пожалуйста, какие есть еще решения данной проблемы?

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


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

5 minutes ago, arhiv6 said:

Ещё можно попробовать использовать RUDP (Reliable UDP).

реализация намного сложнее чем UDP? Может есть какие-то готовые решения?

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


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

Я через  udp вывожу логи, тоже канал забиваю сильно. У вас счетчик ошибки контрольной суммы растет на свитче/компьютере? Я с самого начала связывал эти проблемы с логикой на плис. Ну не может udp так лагать сильно, знаю по опыту. Надо поискать причину, вплоть до наезда креслом на кабель =))
У меня практически окончательно ушли проблемы, когда я клоки все описал в sdc. 
Сам пишу логи на 100mhz в fifo. Потом на гигабитном езернете на 125mhz выпихиваю их на компьютер.
 

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

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


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

Какая скорость потока данных, скорость Ethernet, размер UDP пакетов?

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


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

а TCP сделать - пакеты с udp чуть отличаются различными счетчиками. Сама сложность, если PC попросит вас переслать какой нибудь frame еще раз.  Здесь нужно правильно логику реализовать

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


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

Делаем много обменов на UDP, скорости под 1000 гбит/с. соединение точка-точка либо через 1-2 свича. Пакеты теряются крайне редко.

Кажется дело не в UDP, а у вас что-то не так с реализацией.

 

ПС редко - это пара пакетов в день.

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


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

Лучше UDP ничего по скорости быть не может. Пишем через Гигабитный езернет для записи на винт 102.4 Мбайт в секунду без разрывов.

Писали до 120 МБайт. Нужен конечно винт соответствующий.

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


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

1 minute ago, Swup said:

Делаем много обменов на UDP, скорости под 1000 гбит/с. соединение точка-точка либо через 1-2 свича. Пакеты теряются крайне редко.

Кажется дело не в UDP, а у вас что-то не так с реализацией.

+1

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


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

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

38 minutes ago, excly said:

Всем доброго времени суток. Есть отладочная плата с Cyclone V. Плата эта снимает данные с параллельной 8-битной шины. Данные идут потоком без остановки. Нужно эти данные выводить на PC. Сделал вывод по udp, но ввиду особенностей этого протокола происходит потеря пакетов, а это неприемлемо. Причем с увеличением скорости количество потерянных пакетов растет. Можно попробовать реализовать tcp, но пишут, что это существенно сложнее, чем udp и я не знаю сколько времени на это понадобится. Подскажите, пожалуйста, какие есть еще решения данной проблемы?

Ну хотя бы чуть чуть конкретики :rtfm:  какой поток данных,   какой канал Ethernet, какая конфигурация сети, ... И неплохо бы  понять где у вас пакеты дропаются - в сети или на приеме в компе? 

У меня есть система с выводом лога через UDP  через 10G Ethernet  при соединении  напрямую  шлет ~700 MByte/s без потерь  (и это с приемом данных на python скрипт :shok: ) 

 

Удачи! Rob.

 

 

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


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

7 minutes ago, doom13 said:

Какая скорость потока данных, скорость Ethernet, размер UDP пакетов?

Размер пакета 1024Байта. Ethernet на плате гигабитный. Поток примерно 50Мегабит

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


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

Just now, excly said:

Размер пакета 1024Байта. Ethernet на плате гигабитный. Поток примерно 50Мегабит

Проблема не в UDP)

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


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

1 minute ago, RobFPGA said:

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

Ну хотя бы чуть чуть конкретики :rtfm:  какой поток данных,   какой канал Ethernet, какая конфигурация сети, ... И неплохо бы  понять где у вас пакеты дропаются - в сети или на приеме в компе? 

У меня есть система с выводом лога через UDP  через 10G Ethernet  при соединении  напрямую  шлет ~700 MByte/s без потерь  (и это с приемом данных на python скрипт :shok: ) 

 

Удачи! Rob.

 

 

плата напрямую подключена к компу, поток 50Мегабит, ethernet гигабитный. При увеличении скорости потока данных ошибка увеличивается. 

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


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

У вас ведь наверное TSE? а дальше RGMII до phy?

Вот кажетcя нужно посмотреть внимательно все ли пакеты заходят правильно в TSE. 

Если да, то вертеть констрейнты на RGMII.

Ну либо кабельное хозяйство, разъемы, сетевая карта...

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


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

Just now, Swup said:

У вас ведь наверное TSE? а дальше RGMII до phy?

Вот кажетcя нужно посмотреть внимательно все ли пакеты заходят правильно в TSE. 

Если да, то вертеть констрейнты на RGMII.

Ну либо кабельное хозяйство, разъемы, сетевая карта...

Без tse. Я сам все писал

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


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

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

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

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

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

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

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

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

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

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