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

Выбор семейства FPGA (Altera/Intel) для устройства захвата данных на PCIe

Здравствуйте. Хочу получить добрые советы на непростой вопрос.

Необходимо выбрать семейство FPGA из трёх вариантов Cyclone4GX, Cyclone5GX, Cyclone10 для создания относительно недорогого устройства захвата данных в PC через PCIe.

Самый простой вариант задачи состоит в захвате потока данных порядка 100 MByte/sec в обычный PC через интерфейс PCIe x1. Данные поступают в FPGA в последовательном виде с двух линий 2.5GHz/CML. Задача FPGA буферизовать данные во внешней памяти (DDR2/DDR3) и сливать в PCIe по DMA по мере готовности шины к обмену. FPGA должно выступать по возможности мастером на шине, само складывать в память PC и извещать софт PC прерываниями по мере готовности очередных блоков данных.

Давно уже имеется проверенное рабочее устройство на PCIe мосте общего назначения PEX8311 (PLX), однако мост сняли с производства. Альтернатив этому мосту похоже нет. Городить мост PCIe-PCI совсем не хочется. Всё-таки хочется вперёд двигаться и уходить по возможности от параллельных интерфейсов.

Пока с интерфейсом PCIe в Alterовских FPGA не работал, поэтому и спрашиваю по сути с чего начать. PEX8311 полностью скрывал от меня все уровни протоколов PCIe. Хотелось бы выбрать такое семейство, чтобы максимум возложить на аппаратуру и не лезть глубоко в понимание особенностей работы PCIe. С другой стороны, если общение на низком уровне (я так понял все пользуются какими-то TLP пакетами) не требует месяцев изучения документации, то этот путь тоже приемлем. Пока не понимаю, какой минимальный объём протокола PCIe надо реализовать и что можно взять готовое, чтобы не платить потом за какие-нибудь идентификаторы PCI или ещё что. Например, PLX позволяла пользоваться специальным выделенным идентификатором vendor/device бесплатно и драйвер там был тоже бесплатный (им и пользуемся).

Пока семейство Cyclone5GX выглядит самым реалистичным по стоимости чипов, поддержке DDR3 (немного урезанной правда). Аппаратный PCIe содержит:

• Physical interface/media access control (PHY/MAC) layer
• Data link layer
• Transaction layer

Не очень понимаю где здесь ядро, отвечающее за конфигурацию в системе. Или это уже надо самому дописывать (или готовое платное IP брать) ?

Семейство Cyclone4GX привлекает ценой чипа. К сожалению нет DDR3. DDR2, как я понял там только физический уровень аппаратный (контроллер в IP), MPFE похоже нет. Аппаратная поддержка PCIe похоже проще там (могу ошибаться). В документации на Cyclone4GX написано, что есть PIPE интерфейс. Что потом с ним делать не очень понятно. Это и есть "Physical interface/media access control (PHY/MAC) layer"? С другой стороны в документации написано про наличие каких-то буферов, retry-буферов и т.п. Это всё к PIPE относится или ещё что-то? Пока не понимаю. Не потребует ли это потом денег за использование идентификатора vendor/device и/или за PCIe IP на каждое продаваемое устройство.

Семейство Cyclone10GX конечно использовать немного перспективнее. В документации нашёл "This is a complete PCIe solution that includes the Transaction, Data Link, and PHY/MAC layers. The Hard IP solution contains dedicated hard logic, which connects to the transceiver PHY interface." То есть тут всё то же, что и в Cyclone5GX, но можно использовать Gen2 (5 GHz), как в Cyclone5GT. Цена вот только кусается. Хотелось бы не особо превышать порог 100 USD...

Может подскажите какой обзорный материал по PCIe почитать, чтобы хоть немного прояснить ситуацию ?

Может кто-нибудь до меня поднимал похожую тему?

Прошу прощения за множество вопросов. Буду благодарен за любую информацию.

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


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

14 minutes ago, vlso said:

Необходимо выбрать семейство FPGA из трёх вариантов Cyclone4GX, Cyclone5GX, Cyclone10

приветствую!.. а какие предпосылки смотреть именно альтеру?

15 minutes ago, vlso said:

с интерфейсом PCIe в Alterовских FPGA не работал

учитывая вот это - не очень понятно..

 

..ну и критерии как-то размазаны по тексту, попробую обобщить:

- цена пофиг, лишь бы не выше $100

- не платить за лицензию на PCI-E

- максимально упростить работу с PCI-E (верхний уровень)

 

так?

 

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


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

Подымал PCIE на SV, по идее на Cyclone V практически так же, там hard ip, подключаете корку, она бесплатна, линки все подымет, можете BAR поднять и тд. Комплектом идет DMA блок, работать с ним можно, но он немного недопилен в некоторых местах.

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


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

ИМХО из перечисленного - Cyclone V GX/GT.

Есть бесплатная корка, не требующая самостоятельной работы с TLP.

Описание - в ug_c5_pcie_avmm.pdf

29 minutes ago, vlso said:

FPGA должно выступать по возможности мастером на шине

мастером - в смысле быть Root Port? Зачем? Делайте Endpoint. Само будет делать то, что Вам заблагорассудится:

29 minutes ago, vlso said:

само складывать в память PC и извещать софт PC прерываниями по мере готовности очередных блоков данных

Только добавьте в проект блок DMA - большие пересылки только через него, иначе - только по 4 байта.

Есть еще корка с уже встроенным в него DMA, но не знаю - что-то у меня хотя практически и работала, но тайминги не сходились никак, если использовал встроенные в FPGA блоки памяти больше 4 кБ (чип был GT и PCIe Gen2 X4, может - поэтому).

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

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


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

 

14 minutes ago, Doka said:

приветствую!.. а какие предпосылки смотреть именно альтеру?

учитывая вот это - не очень понятно..

 

..ну и критерии как-то размазаны по тексту, попробую обобщить:

- цена пофиг, лишь бы не выше $100

- не платить за лицензию на PCI-E

- максимально упростить работу с PCI-E (верхний уровень)

 

так?

 

Кроме Altera больше не с кем не работал. Опыт на Altera с 1997 года. :)

PCI/PCIe использовали через мосты. Сначала PCI через AMCC, потом PCIe через PLX

Да, критерии довольно чётко описали. Спасибо

19 minutes ago, new123 said:

Подымал PCIE на SV, по идее на Cyclone V практически так же, там hard ip, подключаете корку, она бесплатна, линки все подымет, можете BAR поднять и тд. Комплектом идет DMA блок, работать с ним можно, но он немного недопилен в некоторых местах.

А "SV" это что такое ?

Уже интересно.

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


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

Можете взять плату от Терасика cycloneV GT dev board  на 5cgtfd9ef35, готовый пример запускается сразу. Потом, когда будете делать плату в серию - возьмете от нее файлы платы и сделаете по образцу, только внимательно все слои посмотрите (что касается разводки шин данных PCIe, обратите внимание на слои GND под развязывающими конденсаторами).

9 minutes ago, vlso said:

"SV" это что

уже сильно дороже $100 - Stratix V

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


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

36 minutes ago, vlso said:

Самый простой вариант задачи состоит в захвате потока данных порядка 100 MByte/sec в обычный PC через интерфейс PCIe x1.

На мой взгляд, для таких скоростей внешняя DDR3 не нужна. Нужно просто сделать два буфера в режиме ping-pong на 1024 байта внутри FPGA и сразу передавать поток через PCIe x2 (x4).

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


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

18 minutes ago, Yuri124 said:

ИМХО из перечисленного - Cyclone V GX/GT.

Есть бесплатная корка, не требующая самостоятельной работы с TLP.

Описание - в ug_c5_pcie_avmm.pdf

мастером - в смысле быть Root Port? Зачем? Делайте Endpoint. Само будет делать то, что Вам заблагорассудится:

Только добавьте в проект блок DMA - большие пересылки только через него, иначе - только по 4 байта.

Есть еще корка с уже встроенным в него DMA, но не знаю - что-то у меня хотя практически и работала, но тайминги не сходились никак, если использовал встроенные в FPGA блоки памяти больше 4 кБ. (чип был GT).

Спасибо за информацию. PDF посмотрю.

Я может не совсем точно выразился. Конечно endpoint, только FPGA должно быть инициатором транзакций. Софт PC по моей концепции должен работать только со своей памятью и не лезть в какие-либо регистры. Просто нормальные программеры на уровне драйверов PC большая редкость. :)

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


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

Если не собираетесь делать свою плату - можете взять терасиковский кит на Arria V - он дешевле кита на Cyclone V, хотя сам чип намного дороже и быстрее (проверено - та корка, что со встроенной DMA не сходилась по таймингам на Cyclone V, на Arria V собралась с большим запасом по времянке, но Вам это может и не столь важно на Gen1 X1).

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


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

12 minutes ago, Yuri124 said:

уже сильно дороже $100 - Stratix V

Понял теперь. Да, stratix для наших применений всегда был немного недоступен. Помню в каком-то году ещё семейства arria/arria2 начинали к разумным ценам приближаться, но потом Altera закрыла ценовую политику и цены подняли.

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


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

5 minutes ago, vlso said:

только FPGA должно быть инициатором транзакций. Софт PC по моей концепции должен работать только со своей памятью и не лезть в какие-либо регистры

посмотрите мой пост выше  - насчет кита.

Но как-то FPGA должна знать, откуда/куда ей забирать данные (где расположен тот кусок памяти в компе, куда ей можно писать и откуда забирать) - драйвер в любом случае должен это организовать. 

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


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

19 minutes ago, Yuri124 said:

Можете взять плату от Терасика cycloneV GT dev board  на 5cgtfd9ef35, готовый пример запускается сразу. Потом, когда будете делать плату в серию - возьмете от нее файлы платы и сделаете по образцу, только внимательно все слои посмотрите (что касается разводки шин данных PCIe, обратите внимание на слои GND под развязывающими конденсаторами).

Вот это тоже интересно. Kit тоже ищем адекватный.

Вырезы в слое GND под контактными площадками? Пока не применял (выше 2.5 GHz не было применений), но теоретически вопрос изучал.

21 minutes ago, blackfin said:

На мой взгляд, для таких скоростей внешняя DDR3 не нужна. Нужно просто сделать два буфера в режиме ping-pong на 1024 байта внутри FPGA и сразу передавать поток через PCIe x2 (x4).

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

20 minutes ago, Yuri124 said:

Если не собираетесь делать свою плату - можете взять терасиковский кит на Arria V - он дешевле кита на Cyclone V, хотя сам чип намного дороже и быстрее (проверено - та корка, что со встроенной DMA не сходилась по таймингам на Cyclone V, на Arria V собралась с большим запасом по времянке, но Вам это может и не столь важно на Gen1 X1).

Ну, плату свою всё равно делать будем. Но kit планируем купить. Хотелось бы конечно именно на том семействе, которое потом в нашей плате будет. В любом случае спасибо за информацию. Будем думать.

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


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

7 minutes ago, vlso said:

Вырезы в слое GND под контактными площадками?

Они самые. Еще вспомнил - переходные отверстия в шинах этих сигналов (а также опорного клока 100 МГц) тоже с особенностями - имеют антипады.

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


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

15 minutes ago, vlso said:

Пока нет возможности остановить входящий поток данных, а шина PCIe может быть занята.

должно потянуть, там же вы решили DMA юзать. Вам дадут 128 дескприторов, по мере получения потока данных, сквозняком сложите их в эти дескрипторы dma, если пропускной способности будет не хватать, подымете размер дескриптора. У меня сквозняком не просто 100мбит идет, 2 x 10g (правда вся pcie корка работает на 250Mhz, в вашем случае будет 125 макс). Но это Stratix V, потянет ли такое по времянке CV, по идее должен, сотка для него мелочи.

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

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


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

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

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

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

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

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

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

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

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

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