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

    

гигабитный поток по LVDS c ПЛИС на ПЛИС на расстояние до 20 метров

Всем доброго времени суток.

 

Собственно, нужно наладить прием/передачу по LVDS между двумя платами с Cyclone V. Скорость до 1 Гбит/с, расстояние до 20 метров.

 

Мне видятся два варианта:

 

- использовать Dedicated Tranceiver. Будет одна витая пара. Тут проблема в том, что для меня это зверь неизвестный и неизвестно сколько там будет глюков и подводных камней при его отладке. В этой связи хотелось бы послушать опытных в его использовании людей.

 

- прокинуть две витые пары под данные и под клок. Использовать либо готовое решение сериализатора/десериализатора в виде мегафункций ALTLVDS_TX/RX, либо самому это сделать на обычной внутренней PLL (ALT_PLL) и сдвиговых регистрах.

 

Мне больше всего нравится последний вариант - сделать все самому - по причине его прозрачности для меня как для разработчика. И если уж в этом случае исправлять глюки, то в основном свои, а не альтеровских разрабов. Вопрос в том, насколько это вообще реально, нормально выделить и подстроить под данные клок PLLкой на приемной стороне без применения оптимизированных dedicated блоков на таких скоростях и расстояниях.

 

Буду благодарен за советы.

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


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

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

 

Если на обеих платах одинаковые источники синхронизации, то будут работать оба варианта.

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

Вот только в datasheet указаны скорости, менее 1 Гб/с.

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


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

 

Если на обеих платах одинаковые источники синхронизации, то будут работать оба варианта.

 

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

 

В то же время трансиверы выделяют клок из линии данных, который потом по идее доступен для использования в ПЛИС. Но это на бумаге опять же, в теории. Хочется узнать, что там на практике. Трансивер, судя по первому знакомству, - штука довольно громоздкая с кучей функций, кодирований и т.д., да еще и "черный ящик", во внутренности которого, если глюкнет, даже осциллографом не подоткнешься для отладки. Другое дело, если без этих сложностей не обойтись. Например, то же кодирование 8B/10B, которое опционально есть в трансивере, постоянку в линии убирает, что возможно уменьшит энергопотребление. Но я пока это смутно себе представляю.

 

Вот только в datasheet указаны скорости, менее 1 Гб/с.

Если вы datasheet на трансивер имеете ввиду, то да, тут тоже вопрос: там в настройках можно выставить минимальную скорость 800Мбит/с. Есть также пересет с настройками на 600 с копейками. Почему такая граница снизу на скорость, и чем она определяется, мне тоже непонятно.

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


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

В даташитах много маркетинга, особенно для дешевых кристаллов. Реальные параметры м/б заметно лучше. Имхо.

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

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


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

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

Да, забыл написать, синхронизацию плат планируется делать через этот самый интерфейс передачи данных. Т.е. есть одна плата, задающая клок, а другая (другие) цепляют клок от нее. Таким образом вариант с отдельной линией под клок тут идеально устраивает.
Пропихнуть 1Gb через 1 дифф пару пинов скорее всего не получится - на сколько помню для Cyclone V 640 Mb только LVDS тянет.

 

В то же время трансиверы выделяют клок из линии данных, который потом по идее доступен для использования в ПЛИС. Но это на бумаге опять же, в теории. Хочется узнать, что там на практике. Трансивер, судя по первому знакомству, - штука довольно громоздкая с кучей функций, кодирований и т.д., да еще и "черный ящик", во внутренности которого, если глюкнет, даже осциллографом не подоткнешься для отладки. Другое дело, если без этих сложностей не обойтись. Например, то же кодирование 8B/10B, которое опционально есть в трансивере, постоянку в линии убирает, что возможно уменьшит энергопотребление. Но я пока это смутно себе представляю.
Так запустите трансивер в симуляторе и поиграйтесь параметрами и режимами работы.

 

 

Если вы datasheet на трансивер имеете ввиду, то да, тут тоже вопрос: там в настройках можно выставить минимальную скорость 800Мбит/с. Есть также пересет с настройками на 600 с копейками. Почему такая граница снизу на скорость, и чем она определяется, мне тоже непонятно.
Скорее всего зависит от ограничения снизу в частотах генерации внутренних PLL или подстраиваемых линий задержек. А 600 Mb получаю скорее всего 2х оверсампингом и прореживанием данных на выходе трансивера.

 

IMHO - 1Gb на 20 метров - лучше тянуть оптикой - через те-же трансиверы. Стандартное решение.

 

Удачи! Rob.

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


Ссылка на сообщение
Поделиться на другие сайты
Собственно, нужно наладить прием/передачу по LVDS между двумя платами с Cyclone V. Скорость до 1 Гбит/с, расстояние до 20 метров

Я не спец по возможностям выводов ПЛИС, но всё же рискну предположить что есть некие "нагрузочные характеристики" (макс. ток, предельная емкость), которые могут не позволить выдать такую скорость на такое расстояние. Другое дело оптика. И да, пишут что LVDS на сык5 не дает гиг.

 

Если не секрет, почему не Ethernet?

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


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

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

Я не спец по возможностям выводов ПЛИС, но всё же рискну предположить что есть некие "нагрузочные характеристики" (макс. ток, предельная емкость), которые могут не позволить выдать такую скорость на такое расстояние.
Если есть хорошие кабеля с разъемами то можно и больше гнать - я передавал/принимал c Virtex5 на 10m по меди 4x 3.125 Gb.

 

Удачи! Rob

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


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

Кстати, если мало кабелей, почему витая пара, а не тонкий коаксиал, например?

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


Ссылка на сообщение
Поделиться на другие сайты
Пропихнуть 1Gb через 1 дифф пару пинов скорее всего не получится - на сколько помню для Cyclone V 640 Mb только LVDS тянет.

Да, нашел в описании на Cyclone такое. Спасибо за информацию.

 

Я не спец по возможностям выводов ПЛИС, но всё же рискну предположить что есть некие "нагрузочные характеристики" (макс. ток, предельная емкость), которые могут не позволить выдать такую скорость на такое расстояние. Другое дело оптика. И да, пишут что LVDS на сык5 не дает гиг.

 

Если не секрет, почему не Ethernet?

Хочется упростить физический интерфейс, от PHY/свичей избавиться. Во-первых, едят много. Во-вторых, большие потери и задержки накапливаются при соединени многих элементов друг за другом гирляндой. С потерями, строго говоря, не все ясно, возникают ли они из-за некачественной линии или непосредственно в свиче. Есть подозрение, что второе.

 

Собственно, я щас эту систему и переделываю с Ethernet на более простой физический интерфейс.

 

 

Кстати, если мало кабелей, почему витая пара, а не тонкий коаксиал, например?

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

 

На худой конец и 500 Мбит сгодится. 1000 - это уж задача максимум)

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

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


Ссылка на сообщение
Поделиться на другие сайты
Если есть хорошие кабеля с разъемами то можно и больше гнать - я передавал/принимал c Virtex5 на 10m по меди 4x 3.125 Gb.

Сердесами без использования рокетов? Круто! В V6 да на 5 метров приходилось приёмо-передатчики чуть ли не врукопашную подстраивать. Правда там было 6,25..

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


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

Если есть хорошие кабеля с разъемами то можно и больше гнать - я передавал/принимал c Virtex5 на 10m по меди 4x 3.125 Gb.

А хороший кабель - это какой?

 

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


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

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

Сердесами без использования рокетов? ...
Нее.. я не такой мазохист :) - это был обычный XAUI линк для 10G Ethernet на рокетах как и положено. Но на линке было 4 разъема.

 

А хороший кабель - это какой?
Смотрите CX4 copper cable.

 

Удачи! Rob.

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


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

 

Собственно, нужно наладить прием/передачу по LVDS между двумя платами с Cyclone V. Скорость до 1 Гбит/с, расстояние до 20 метров.

 

А если эквалайзер поставить на приемной плате, скажем DS16EV5110. А передавать через TMDS Redriver.

.post-2104-1532007678_thumb.jpg

 

Можно на суппорте TI поспрашивать как их редрайверы работают на кабель 20м.

 

 

 

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

Если есть хорошие кабеля с разъемами то можно и больше гнать - я передавал/принимал c Virtex5 на 10m по меди 4x 3.125 Gb.

 

Удачи! Rob

 

Хороший кабель + хороший драйвер и приемник. Вы же не LVDS c Virtex5 гнали. Что бы передавать на 20м, нужно развязать по DC, соответственно и 8/10b кодирование. И эквалайзер, у вас был на Virtex5, и приемфазисыЮ с деемпфазисами.

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


Ссылка на сообщение
Поделиться на другие сайты
Если есть хорошие кабеля с разъемами то можно и больше гнать - я передавал/принимал c Virtex5 на 10m по меди 4x 3.125 Gb.

Присоединяюсь к вопросу предыдущего комментария: какие хитрости и дополнительные навороты использовались для достижения подобного результата? И можно ли просто выдавая сигнал на дифпару получить гиг на 20 метров? Без предыскажений, без эквалайзеров, без самосинхронизирующих кодирований и т.п.? А то ведь XAUI много чего в себе наворачивает...

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти