LINUX.ORG.RU

передать много байтов из FPGA в компьютер с Linux


1

1

Есть одноплатный компьютер - будь то какой-нибудь одноплатник на ARM либо x86, с интерфейсом USB 2.0 и Gigabit Ethernet. Есть ПЛИС, которая генерирует/берет данные в районе 36 Мбайт/с (~300 Мбит/с).

Вопрос: как перекачать данные из ПЛИС в такой ПК? Готовые решения интересуют.

Есть ли у кого на примете какая-нибудь дешевая платка с каким-нибудь USB Cypress FX2, который может чуть ли не до 50 Мбайт/с брать с параллельной шины и гнать по USB. Либо какая-нибудь готовая дешевая платка с FPGA->GbEthernet.

Хочется чего-то такого, чтобы просто воткнуть и получать данные... Без разработки, с минимально возможными временными затратами, т.к. это лишь временно и просто для макета...

Мы гоняем по сети, это удобно и отвечает стандарту GigEVision (передача RAW видео).

imb ★★
()
Ответ на: комментарий от imb

Я так понимаю это НЕсжатое видео, просто формат пакетов стандартизован - так?

Такой поток Вы генерируете своим оборудованием или сторонним купленным? Мне из своей ПЛИС со своей прошивкой надо как-то данные в комп загнать, причем PCI-E недоступен.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от ebantrop

Там этот CY68013A не только для прошивки конфигов в ПЛИСину, но и для передачи данных от ПЛИС к ПК? Сколько Мбайт/с удавалось выжать?

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от ebantrop

Вот эта вроде еще проще и дешевле: http://www.opalkelly.com/products/xem6001/ ведь все равно буду другую более мощную плату с ПЛИС через эту подключать.

Важный момент: где Вы свою купили, откуда заказали?

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Там этот CY68013A не только для прошивки конфигов в ПЛИСину, но и для передачи данных от ПЛИС к ПК?

Там к прошивке сайпресса доступа нет. Они дают библиотеки для хоста и ПЛИСа. Типа тут пишешь — там выплюнуло, и наоборот — вызываешь read, а со стороны железяки чтение инициируется. Все остальные детали FPGA-Cypress-USB-PC-Soft сделаны опальщиками, и сделано довольно неплохо ИМХО.

Сколько Мбайт/с удавалось выжать?

http://assets00.opalkelly.com/library/FrontPanel-UM.pdf см. стр. 16. Все данные для USB 2.0 довольно точные.

ebantrop
()
Ответ на: комментарий от I-Love-Microsoft

Вот эта вроде еще проще и дешевле: http://www.opalkelly.com/products/xem6001/ ведь все равно буду другую более мощную плату с ПЛИС через эту подключать.

Там ног меньше. Нам не подошло.

Важный момент: где Вы свою купили, откуда заказали?

Прям у них с сайта.

ebantrop
()
Ответ на: комментарий от ebantrop

Там ног меньше. Нам не подошло.

Ну ясно, я то по LVDS прокачать смогу, достаточно одной диф. пары.

I-Love-Microsoft ★★★★★
() автор топика

FPGA жирная? Места на контроллер ethernet хватит? Ethernet PHY есть? Если так, то на opencores полно готовых контроллеров.

Вообще, лучший вариант был бы PCI, проще уже некуда.

anonymous
()
Ответ на: комментарий от prischeyadro

Первый только до 8 Мбайт/с. Но что самое интересное, как с OpalKelly что с этими на базе FTDI, не ясно одно: оно с Linux/arm работает?

Вот для OpalKelly это вообще нигде не упомянуто и я буду писать на их форум чтобы выяснить. Однако есть описание проекта OpenOK, который через libusb работает на любой ARM-платке.

У плат на FTDI http://www.ftdichip.com/Drivers/D2XX.htm и вроде как есть бинарная сборка для Raspberry Pi (arm) без исходников и тоже через libusb, возможно на моей плате с armv7 заработает... Увы, «USB to parallel FIFO transfer data rate up to 10Mbyte/sec.»

Похоже, остается только OpalKelly.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от anonymous

FPGA жирная? Места на контроллер ethernet хватит? Ethernet PHY есть? Если так, то на opencores полно готовых контроллеров.

Увы, нету, и чтобы стало - нужна внешняя платка, доставабельная дешевая...

Вообще, лучший вариант был бы PCI, проще уже некуда.

Согласен, однако на моей платке с arm таковой отсутствует, хотя бывают arm-ы с miniPCI-E, много таких видел...

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Они поддерживают Linux, это вижу, но что насчет Linux/arm? Есть бинари?

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

ebantrop
()
Ответ на: комментарий от ebantrop

Нашел, помимо OpenOK есть:

FYI, we have beta versions of the official FrontPanel API available upon request for Linux/ARM. It passes all our testing on the Raspberry Pi and Pandaboard computers. Just email support!

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

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

imb ★★
()

Неужто данные непрерывным потоком льются? Небось, нужно просто забуферизовать, а потом обработать? Ну так для этого можно промежуточную RAM использовать: плиской загоняешь в нее данные, а потом потихоньку микроконтроллером их выдергиваешь и по USB передаешь на компьютер (или сразу одноплатником через GPIO вытягиваешь данные).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от I-Love-Microsoft

Нашел, помимо OpenOK есть

Если работает так же, то прикольно.

Я конечно может с другими не работал так долго как с опальными, но впечатления от них самые приятные. Делать самому совсем немного надо что бы железку к компьютеру присобачить. Удачи вам.

ebantrop
()
Ответ на: комментарий от Eddy_Em

Только не говори мне, что одноплатник в состоянии их обработать

Почему нет? Я на TI Davinci DM368 сжимал 5 мегапиксельный поток со скоростью 10 FPS.

imb ★★
()

Плюсую opalkelly с гигабитом. vhdl для гигабита думаю запросто можно найти на опенкорес. С юзб2.0 не связывайся. 36Мб получишь, но это потолок, без запаса. so от opalkelly очень даже годная.

nanoolinux ★★★★
()
Ответ на: комментарий от Eddy_Em

аноним имеет ввиду софтверный битбангинг. Он дейтсвительно медленнный, особенно, если под каким-нибудь линуксом. А USB-HS - это обычно отдельный переферийный контроллер.

Kosyak ★★★★
()
Ответ на: комментарий от Kosyak

Ну так используй в качестве посредника МК, а данные далее — по USB.

Ну, а вообще смысла в этом трепе нет, т.к. ТСу надо гнать данные непрерывно и в реальном времени обрабатывать.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от I-Love-Microsoft

http://www.xilinx.com/products/boards-and-kits/EK-S6-SP605-G.htm

На такой штуке получилось по pcie получить 160 Мбайт/с с самописным драйвером. Для езернета там чип специальный. vhdl код нему можно найти в xilinx ide. Правда юзб там нету, rbt файл по jtag можно залить в еепром.

nanoolinux ★★★★
()
Ответ на: комментарий от mv

Главное про цену не забывать и про время, которое я буду вошкаться в попытках передать данные, а это деньги тоже (для фермы), вся сложность в основной задаче а тут бы хотелось срезать угол...

В общем Opal Kelly xem6001 идеально и дешево, работать просто, буду эту штуку брать. Спасибо за наводку :)

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

В общем Opal Kelly xem6001

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

ebantrop
()
Ответ на: комментарий от nanoolinux

Это плата-монстр, впрочем как и все xilinx'овые дев киты. Хотя надо сказать что они очень хороши в смысле поддержки со стороны софта.

На такой штуке получилось по pcie получить 160 Мбайт/с

А у 6го спартана есть pcie core из коробки (как в седьмой серии) или самому надо что-то выдумывать?

ebantrop
()
Ответ на: комментарий от I-Love-Microsoft

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

ebantrop
()
Ответ на: комментарий от mv

Сожрать пакет данных и пробросить его в процессор — вентилей надо чуть более чем ничего. Чего там реально может нехватать так это внешнего RAMа.

ebantrop
()
Ответ на: комментарий от I-Love-Microsoft

у мну будет внешняя емкая альтера, но сам я xilinx предпочитаю

Что за Альтера? Там трансиверы-то есть? Пуляй прямо из Альтеры через 1GbE.

mv ★★★★★
()
Ответ на: комментарий от ebantrop

Сожрать пакет данных и пробросить его в процессор — вентилей надо чуть более чем ничего.

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

mv ★★★★★
()
Ответ на: комментарий от mv

Если система не SoC, то без трансиверов...

При чем тут SoC и какое оно отношение имеет к трансиверам?

...на голых вентилях ты нифига 300 мбит по одному из стандартных протоколов бросать не сможешь.

300 MHz надо смотреть конкретный чип, хотя я думаю вполне реально без дедикейтед мульти-гигабитных трансиверов. SelectIO имя ему у Xilinx'a.

ebantrop
()
Ответ на: комментарий от ebantrop

При чем тут SoC и какое оно отношение имеет к трансиверам?

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

300 MHz надо смотреть конкретный чип, хотя я думаю вполне реально без дедикейтед мульти-гигабитных трансиверов. SelectIO имя ему у Xilinx'a.

Сколько там дифференциальные пары тянут? Полгигабита надо бы.

И вообще, у ТС есть USB и 1GbE. Если на его плате с Альтерой есть 1GbE, то что тут думать?

mv ★★★★★
()
Ответ на: комментарий от mv

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

Обычная самопальная а-ля процессорная параллельная шина 16 бит данных + клок, готовность и R/W на 100 МГц дадут 1,6 гигабита/с :) Ну или не самопальная, а то что там у процессора есть.

Или я что то не понимаю?

Сколько там дифференциальные пары тянут? Полгигабита надо бы.

Это смотреть надо switching characteristics конкретного ПЛИСа. У всех по разному. Сегодняшнего поколения думаю потянут, но плату делать надо оченно вдумчиво и аккуратно.

И вообще, у ТС есть USB и 1GbE.

Я так понял что нет. Не будь он ТС, если бы было.

ebantrop
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.