Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cyclone V HS Serial Interface
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
doom13
Приветствую.
Посоветуйте высокоскоростной последовательный интерфейс для связи (полный дуплекс) между FPGA Cyclone V GX. Максимальная пропускная способность 5 Гбит/с 10 Гбит/с. На одном из устройств будет ещё задействован 10G Ethernet MAC + XAUI. Предполагается соединение устройств по цепочке

TX0 - > RX1_TX1 -> RX2_TX2 -> ...... -> RXN_10GMAC_XAUI

Нахожу следующие IP-ядра у Altera:
- Rapid IO;
- Rapid IO II;
- SerialLite II;
- POS-PHY Level 4;
- "Голый" PHY.
Ни с одним из данных ядер не работал, хотелось бы услышать советы опытных.
Спасибо.

PS:
Получится ли использовать каждый трансивер на приём и передачу для такой конфигурации?
doom13
Ещё вопрос, уже по Rapid IO II. Как понимаю, мне не подходит. Для GX девайсов, согласно документации, может прокачать не более 3.125 Гбит/с, режимы работы 1х/2х/4х. Тогда возникает вопрос, откуда взялось такое ограничение? XAUI IP по тем же четырём линиям даёт 10 Гбит/с. Или 3.125 Гбит/с это на одну линию?
doom13
Появился вопрос по ядру SerialLite. В доке нахожу некие противоречия. Написано, что для Cyclone V тянет 5 Гбит/с. Далее пишут, что для этого необходимо выбирать Transfer Size 4, а он доступен только для Stratix IV.
Как понимаю, 5 Гбит/с 10 Гбит/с должно прокачать по двум четырём линиям. В свойствах ядра надо выбирать 4 линии, TSIZE 2 и пропускную способность линии 2.5 Гбит/с?
prig
Цитата(doom13 @ Jun 3 2015, 16:34) *
...В доке нахожу некие противоречия.
...В свойствах ядра надо выбирать 4 линии, TSIZE 2 и пропускную способность линии 2.5 Гбит/с?


- Скорее всего, Transfer Size 4 не поддерживается именно для SerialLite.
Но в любом случае, "физических" 5Гбит/с на двух лейнах для достижения скорости XAUI может быть недостаточно (см. далее).

- Всегда надо учитывать кодирование. Иногда приходится учитывать оверхеды.
Например, для 10Гбит/с на XAUI скорость передачи данных по дифф. паре - 3.125Гбит/с (кодирование 8/10).
Собственно 10Гбит/с XAUI включают все издержки, связанные с формированием фреймов Ethernet. И т.д., и т.п.

XAUI в полном комплекте требует изрядное кол-во ресурсов, но если конкретная задача и ПЛИС позволяют, то сгодится только он один.
Но скорее всего, больше подойдёт что-нибудь облегчённое. Но что именно Вам ближе, придётся разбираться самому.
doom13
Цитата(prig @ Jun 4 2015, 10:48) *
- Скорее всего, Transfer Size 4 не поддерживается именно для SerialLite.
Но в любом случае, "физических" 5Гбит/с на двух лейнах для достижения скорости XAUI может быть недостаточно (см. далее).

- Всегда надо учитывать кодирование. Иногда приходится учитывать оверхеды.
Например, для 10Гбит/с на XAUI скорость передачи данных по дифф. паре - 3.125Гбит/с (кодирование 8/10).
Собственно 10Гбит/с XAUI включают все издержки, связанные с формированием фреймов Ethernet. И т.д., и т.п.

XAUI в полном комплекте требует изрядное кол-во ресурсов, но если конкретная задача и ПЛИС позволяют, то сгодится только он один.
Но скорее всего, больше подойдёт что-нибудь облегчённое. Но что именно Вам ближе, придётся разбираться самому.

И XAUI и Rapid IO II и SerialLite II используют одни и теже трансиверы, т.е. пропускная способность должна быть примерно одинакова.
Вопрос в том, какое ядро лучше применить в моём случае?
goodsoul
Цитата(doom13 @ Jun 4 2015, 14:51) *
И XAUI и Rapid IO II и SerialLite II используют одни и теже трансиверы, т.е. пропускная способность должна быть примерно одинакова.
Вопрос в том, какое ядро лучше применить в моём случае?


Если особых требований нет - только перегнать данные по схеме "точка-точка" - берите самый легковесный вариант. Смотрите resource utilization в описании мегафункции.
Ну и стоимость решения. Если это для вас актуально.

UPDATE: посмотрел на стоимость решений. Serial Lite II входит IP BASE SUITE и достанется вам вместе с Subscription версией квартуса. RapidIO и пр. продаются отдельно с стоят весьма кучеряво.
doom13
Цитата(goodsoul @ Jun 4 2015, 15:27) *
Если особых требований нет - только перегнать данные по схеме "точка-точка" - берите самый легковесный вариант. Смотрите resource utilization в описании мегафункции.
Ну и стоимость решения. Если это для вас актуально.

UPDATE: посмотрел на стоимость решений. Serial Lite II входит IP BASE SUITE и достанется вам вместе с Subscription версией квартуса. RapidIO и пр. продаются отдельно с стоят весьма кучеряво.

Из требований только то, что это для Cyclone V GX.
Схема не совсем "точка-точка", а точка_1 -> точка_2 -> точка_3 -> ... -> точка_N. Поток данных накапливается с возрастанием номера устройства, последнее выдаёт весь поток в сеть 10G Ethernet. У всех описанных ядер есть Link-layer, тут смущает возможность нормальной синхронизации TX0 и RX1, TX1 и RX2 и т.д.
prig
Цитата(doom13 @ Jun 4 2015, 14:51) *
И XAUI и Rapid IO II и SerialLite II используют одни и теже трансиверы, т.е. пропускная способность должна быть примерно одинакова.
Вопрос в том, какое ядро лучше применить в моём случае?


Ясень пень, что трансиверы те же самые. Но "бесплатные" ядра как правило в чём-то урезаны. Для SerialLite это скорость до 3.125Гбит/с. Но максимальные 5 Гбит/с не столь уж интересны, если оглядываться на конкретные стандарты. Так что, вполне годное ядро.

Цитата(doom13 @ Jun 4 2015, 16:07) *
...Поток данных накапливается с возрастанием номера устройства, последнее выдаёт весь поток в сеть 10G Ethernet. У всех описанных ядер есть Link-layer, тут смущает возможность нормальной синхронизации TX0 и RX1, TX1 и RX2 и т.д.


Как можно посоветовать что-то для вашего случая, если он описан крайне скупо?
Что за данные у Вас бегают, какие требования к трафику, задержкам, ошибкам, синхронизации и т.д.?
Что такое в вашем понимании "нормальная синхронизация" "TX0 и RX1" и каким боком она относится к Link-layer?

С другой стороны, есть ли необходимость вываливать формализованную задачу в "эти ваши инеты"?
Фокус в том, что как только Вы формализуете задачу и изложите её в виде ТЗ, помощь Вам уже не понадобится.
doom13
Цитата(prig @ Jun 5 2015, 10:26) *
Как можно посоветовать что-то для вашего случая, если он описан крайне скупо?
Что за данные у Вас бегают, какие требования к трафику, задержкам, ошибкам, синхронизации и т.д.?
Что такое в вашем понимании "нормальная синхронизация" "TX0 и RX1" и каким боком она относится к Link-layer?

Данные передаются в одну сторону. От устройства №0 к устройству #1, далее к устройству №2 и т.д. Каждое устройство к принимаемому потоку добавляет ещё и свои данные. Т.о. поток данных возрастает и к последнему приходит поток данных порядка 10 Гбит/с.

Link-layer, как понимаю, отвечает за автоматическое установление связи между двумя устройствами соединёнными по схеме TX0 -> RX1, TX1 -> RX0. При установлении link-a гарантирован правильный приём/передача данных со сторопы user-interface. При приёме последовательных данных автоматом происходит их правильное выравнивание, преобразование в параллельный вид, декодирование.

Как писал выше, необходима схема соединения TX0 - > RX1_TX1 -> RX2_TX2 -> ...... -> RXN, где RX1_TX1 - это один и тот же трансивер (или одни и те же 4 трансивера для достижения полезной пропускной способности в 10 Гбит/с), приёмник которого завязан на устройство №0, а передатчик на устройство №2 (надеюсь тут понятно расписано). Вот тут и возникает вопрос - возможно ли такое соединение и не вылезут ли какие подводные камни? Т.е., наверное, необходима какая-то дополнительная надстройка (функция), которая будет отвечать за правильную передачу данных от TX0 к RX1, TX1 к RX2 и т.д. И возможно ли это, если один трансивер завязан на два разных трансивера?

Для SerialLite II нашёл, если правильно понял, что такое есть - настройка Self Synchronized Link Up, которая позваляет независимую работу приёмника и передатчика в одном трансивере. Но она доступна только для режима 1-line.

Теперь смотрю на ядра Custom PHY IP Core и Cyclone V Transceiver Native PHY IP Core.
Для Custom PHY IP Core есть Word alignment mode - Manual и Bit slipping. По описанию, вроде как оно и надо, но т.к. железо править будет сложно, то остаются сомнения.
Опять же вопрос подойдут ли данные ядра для моей схемы соединения?
doom13
Приступаем к разработке платы и тема снова актуальна. Может кто поможет развеять сомнения по данному вопросу?
bugdesigner
А какая физическая среда передачи планируется между устройствами? И какое расстояние? Мне просто интересно чем можно пробросить такие потоки. На ум приходят только LVDS кабели...
doom13
Цитата(bugdesigner @ Sep 4 2015, 14:50) *
А какая физическая среда передачи планируется между устройствами? И какое расстояние? Мне просто интересно чем можно пробросить такие потоки. На ум приходят только LVDS кабели...

В данном случае N модулей будут соединяться друг с другом через материнскую плату. XAUI работает примерно 4-5 см от FPGA до разъёма плюс 4-5 см по мезонину до трансивера.

Ядро XAUI занимает 4 трансивера и частично 5 канал (PLL + делитель), см. рисунок. Можно ли упаковать его в 4 канала (доку читаю, но что-то не нахожу ответа)?
Алексей_1990
Доброго времени суток! Прошу прощения, если не по адресу, но покапавшись в форуме не нашёл ничего приближенного. Подскажите, пожалуйста с помощью каких ip ядер я могу принять высокоскоростной последовательный асинхронный код? Да, и не могли бы расписать поподробнее.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.