Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ethernet phy в ПЛИС.
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Mad Makc
Есть некая железка. На ней связка: ПЛИС (mii)-> PHY -> оптический трансивер 100мб/с.

И вот тут возникла мысль- а если выкинуть этот PHY, а его функционал поднять в ПЛИС? Почитал, выяснилось, что в общем -то сделать надо не много: кодирование 4b/5b и NRZi кодирование. Единственное, что на приеме будет проблема с восстановлением клока, но и это вроде как решаемо( как мне кажется).
В связи с этим вопросы:
1. Кто-нибудь заморачивался данной проблемой? если да- то как, работает? sm.gif
2. есть что-нибудь похожее в исходниках в интернетах, а то я не нашел?
спасибо.
Denisnovel
Зависит от ПЛИС. В Cyclone IV GX есть трансивер с восстановлением клока до 2,5 Гб/с. Можно организовать Gigabit Ethernet без PHY, а на прямую к SFP. Но нижнее ограничение 600 Мб/с, т.е. 100 не получится.
Mad Makc
Цитата(Denisnovel @ Feb 14 2012, 11:57) *
Зависит от ПЛИС. В Cyclone IV GX есть трансивер с восстановлением клока до 2,5 Гб/с. Можно организовать Gigabit Ethernet без PHY, а на прямую к SFP. Но нижнее ограничение 600 Мб/с, т.е. 100 не получится.

ПЛИС без "быстрых ног".
Думаю, что 125 МГц в lvds спартан-3 вытянет, а уж 6-ой тем более.
dvladim
Цитата(Mad Makc @ Feb 14 2012, 12:08) *
ПЛИС без "быстрых ног".
Думаю, что 125 МГц в lvds спартан-3 вытянет, а уж 6-ой тем более.

А клок чем восстанавливать будете?
vadimp61
Цитата(Mad Makc @ Feb 14 2012, 11:29) *
Есть некая железка. На ней связка: ПЛИС (mii)-> PHY -> оптический трансивер 100мб/с.

И вот тут возникла мысль- а если выкинуть этот PHY, а его функционал поднять в ПЛИС? Почитал, выяснилось, что в общем -то сделать надо не много: кодирование 4b/5b и NRZi кодирование. Единственное, что на приеме будет проблема с восстановлением клока, но и это вроде как решаемо( как мне кажется).
В связи с этим вопросы:
1. Кто-нибудь заморачивался данной проблемой? если да- то как, работает? sm.gif
2. есть что-нибудь похожее в исходниках в интернетах, а то я не нашел?
спасибо.


Я как то видел схему как Е1 в коде HDB3 через транс 10/100 Base-T через резистивные делители подавались на ALTERA, какую правда не помню.
Я был в шоке, но схема работала, правда на каждый вкл-выкл вентилятора по Е1 проскакивала ошибка на кабеле Е1 длиной 3м. ))) На кабеле 1м ошибок не было. Устройство делает очень известная Российская контора!
Mad Makc
Цитата(dvladim @ Feb 14 2012, 23:38) *
А клок чем восстанавливать будете?


планировал 4 фазы 125 МГц клока снять с DCM.Ну, и когда принимаем сигнатуру начала кадра- смотреть, на какой фазе это начало принимается "правильней". соответственно на клоке с полученной фазой и работать.
FPGAEASY
А зачем избавляться от PHY? Экономия места, или спортивный интерес?
Mad Makc
экономия на компонентах и обвязки + спортивный интерес. biggrin.gif. есть плата, где этих PHY 4 штуки стоят. И мне кажется что 3 из них лишние.
Прочем спортивный интерес касается только восстановления клока- никогда данной задачей не заморачивался.Остальное вроде как всё ясно.
wolfman
Цитата(Mad Makc @ Feb 21 2012, 05:49) *
экономия на компонентах и обвязки + спортивный интерес. biggrin.gif. есть плата, где этих PHY 4 штуки стоят. И мне кажется что 3 из них лишние.
Прочем спортивный интерес касается только восстановления клока- никогда данной задачей не заморачивался.Остальное вроде как всё ясно.

А что мешает поставить с четверенный PHY?
посмотрите на fpga4fun, там правда для 10 мегабит.
Leka
Цитата(Mad Makc @ Feb 14 2012, 10:29) *
Есть некая железка. На ней связка: ПЛИС (mii)-> PHY -> оптический трансивер 100мб/с.

И вот тут возникла мысль- а если выкинуть этот PHY, а его функционал поднять в ПЛИС? Почитал, выяснилось, что в общем -то сделать надо не много: кодирование 4b/5b и NRZi кодирование. Единственное, что на приеме будет проблема с восстановлением клока, но и это вроде как решаемо( как мне кажется).
В связи с этим вопросы:
1. Кто-нибудь заморачивался данной проблемой? если да- то как, работает? sm.gif
2. есть что-нибудь похожее в исходниках в интернетах, а то я не нашел?
спасибо.

Чем кончилась затея?
Пытаюсь прикрутить к ПЛИС(Циклон-4е) 100base-tx без PHY (только резистивная обвязка + разъем с трансформаторами).
Corner
Уже прикручено. Подробности личкой. И оптика и медь.
Leka
Предпочитаю открытое общение на форуме.

Опыта по сетям нет ни по железу, ни по программированию. Так что пришлось еще разбираться, как на Си написать отправку-прием между компами UDP-пакета...
Еще не выбрал окончательно, на какой частоте семплировать - х2=250МГц, или х4=500МГц.
Сейчас х2=250МГц, и 2 независимых канала приема (по числу фаз) - когда по одному каналу идут ошибки (из-за неудачной фазы), по другому ошибок нет. Разгребать думаю мелким софтовым процессором (тк скорость небольшая, максимум 10МБайт/сек) - проще единичные ошибки исправлять. Пока все принятое в ПК передается для анализа.
Почему-то кажется, что на х4=500МГц проблем меньше не будет. Но не уверен...

Главный критерий в этом проекте - простота и минимум ресурсов, не больше 1000 ЛЕ на все (отправка-получение UDP-пакетов на максимальной скорости).
Corner
Цитата(Leka @ Apr 3 2016, 20:58) *
Предпочитаю открытое общение на форуме.

Опыта по сетям нет ни по железу, ни по программированию. Так что пришлось еще разбираться, как на Си написать отправку-прием между компами UDP-пакета...
Еще не выбрал окончательно, на какой частоте семплировать - х2=250МГц, или х4=500МГц.
Сейчас х2=250МГц, и 2 независимых канала приема (по числу фаз) - когда по одному каналу идут ошибки (из-за неудачной фазы), по другому ошибок нет. Разгребать думаю мелким софтовым процессором (тк скорость небольшая, максимум 10МБайт/сек) - проще единичные ошибки исправлять. Пока все принятое в ПК передается для анализа.
Почему-то кажется, что на х4=500МГц проблем меньше не будет. Но не уверен...

Главный критерий в этом проекте - простота и минимум ресурсов, не больше 1000 ЛЕ на все (отправка-получение UDP-пакетов на максимальной скорости).


LVDS+DDR 250 МГц - 500 Мсэмплов. Циклон4, Спартан3Е. Везде работает, но часть библотек не кросс платформенная. Железо разное.
Синхронизация фазы не требуется - 4х кратного оверсэмплинга достаточно, чтобы не возникало проблем. Главное, чтобы оптика не имела неравномерно заваленных фронтов и джиттера. Тогда работать не будет ни при какой частоте сэмплирования.
Приблизительно 200 плиток приемник с передатчиком вместе. Основной объем это синхронизатор по коду. Еще 150 плиток ест дескрэмблер для медного варианта.
Размер для протокола зависит от хочушек в плане полноценности сетевого устройства. Помимо UDP, для нормальной работы, еще надо ARP и ICMP (DU и PING). Иначе, будете сводить с ума коммутатор. Парсер приемника, формирователь служебных пакетов и формирователь пакетов с данными занимают 900 плиток. Можно сэкономить 100 плиток, если забить на КС для IP заголовка.
ПС: Если нет опыта написания аппаратных стэков, лучше откажитесь от этой затеи.
Leka
Цитата(Corner @ Apr 3 2016, 21:42) *
Синхронизация фазы не требуется - 4х кратного оверсэмплинга достаточно, чтобы не возникало проблем.

Не совсем понял, под синхронизацией фазы понимал прежде всего подстройку частоты.
Если устройства (например, ПЛИС и комп) связываются по 100base-tx, частоты по Rx и Tx парам разные?
Если разные, то подстройка должна быть, например, неявно через буфер (в какой-то момент пропуск символа, или выдача 2х вместо одного).
Или одно из устройств подстраивает частоту?

Цитата
ПС: Если нет опыта написания аппаратных стэков, лучше откажитесь от этой затеи.

У меня проекты на ПЛИС - хобби, а не работа. Будет слишком сложно - брошу, или поменяю задачу.
Просто для DIY-проектов ищется скоростная замена UART-у, малоногая, и с возможностью прозрачного беспроводного соединения.
100base-tx "на резисторах" потребует 6 ног ПЛИС, микросхема PHY - заметно больше.
aaarrr
Цитата(Leka @ Apr 3 2016, 22:51) *
100base-tx "на резисторах" потребует 6 ног ПЛИС, микросхема PHY - заметно больше.

Семь sm.gif
Leka
И какая микросхема?
Corner
Ааа... немного теории. Если частоты разные и сдвиг по частоте постоянный, то фаза бегает по кругу с частотой равной разнице.
Если разница не более штатных 100 ппм, то на 5 бит фазовый перескок фронта не возможен чаще одного раза. Он легко детектируется. Вот парные ошибки уже потребуют тотальной синхронизации частот, но для этого разница должна стать на порядок больше.
А передатчик работает на своей частоте. Это не приводит к ошибкам, так как на другой стороне приемник тоже подстраивает фазу.
Частоту мой приемник не подстраивает. Просто есть маска валид-инвалид. Чисто для оптики приемник значительно проще. А вот для меди, где есть скрэмблирование, приемник втрое сложнее.
Не понял про 6 ног. PECL in, PECL out и SC. Обычно SC в уровнях LVCMOS. Так что 5 ног)))
Leka
Цитата(aaarrr @ Apr 3 2016, 23:02) *
Семь sm.gif

Сейчас посмотрел, меньше ног у 50МГц PHY, но смысла не вижу - MAC-уровень все-равно в ПЛИС надо реализовывать, а для DIY лучше вариант на резисторах.
Раньше смотрел SPI-варианты PHY+MAC, но там скорость маленькая по SPI.

Цитата(Corner @ Apr 3 2016, 23:59) *
Не понял про 6 ног. PECL in, PECL out и SC. Обычно SC в уровнях LVCMOS. Так что 5 ног)))

Сигнал 3х-уровневый, MLT-3 кодирование, для приема использую 2 пары LVDS входов, итого 4 ноги.
Есть еще вариант с диодами, там 1 пара LVDS входов потребуется.
В недифференциальном режиме не пробовал, про PECL даже не задумывался (надо будет посмотреть...) Что есть SC?
Для передачи 2 ноги LVTTL.
Corner
Цитата(Leka @ Apr 4 2016, 00:20) *
Сейчас посмотрел, меньше ног у 50МГц PHY, но смысла не вижу - MAC-уровень все-равно в ПЛИС надо реализовывать, а для DIY лучше вариант на резисторах.
Раньше смотрел SPI-варианты PHY+MAC, но там скорость маленькая по SPI.
Сигнал 3х-уровневый, MLT-3 кодирование, для приема использую 2 пары LVDS входов, итого 4 ноги.
Есть еще вариант с диодами, там 1 пара LVDS входов потребуется.
В недифференциальном режиме не пробовал, про PECL даже не задумывался (надо будет посмотреть...) Что есть SC?
Для передачи 2 ноги LVTTL.

Слезайте с тяжелых наркотиков))) В оптике нет MLT-3. Два PECL туда-сюда и SC - детектор несущей.
MLT-3 в меди. Вместе со скрэмблером и еще кучей "счастья".
iosifk
Цитата(Leka @ Apr 3 2016, 22:51) *
100base-tx "на резисторах" потребует 6 ног ПЛИС, микросхема PHY - заметно больше.

А как будете делать усиление сигнала на приеме? АРУ на резисторах или полметра все расстояние? И что будет с электростатикой?
Corner
Цитата(iosifk @ Apr 4 2016, 00:38) *
А как будете делать усиление сигнала на приеме? АРУ на резисторах или полметра все расстояние? И что будет с электростатикой?

Мне надо было полметра. А для серьезных целей нужен PHY с АЦП или сдвоенным LVDS с подгонкой порогов по амплитуде.
Leka
Именно на меди, 100base-tx, не стал открывать новую тему "ethernet phy в ПЛИС".
Расстояние маленькое - до компа или Wi-Fi роутера.
Комп видит idle-поток, и пишет "100Мбит/сек".
Corner
Цитата(Leka @ Apr 4 2016, 00:59) *
Именно на меди, 100base-tx, не стал открывать новую тему "ethernet phy в ПЛИС".
Расстояние маленькое - до компа или Wi-Fi роутера.
Комп видит idle-поток, и пишет "100Мбит/сек".

ТС писал про оптику. Не суть....
А ПК видит не айдл поток. Он сначала увидел флп импульсы в которых написано 100 М. Иначе бы сильно удивился, увидев сразу скрэмбленный айдл. Мой ПК, во всяком случае, был в шоке.
И ошибки вы увидите только на данных. Пока их нет, ПК счастлив, получая М последовательность скрэмблера.
Leka
Цитата(Corner @ Apr 4 2016, 01:20) *
А ПК видит не айдл поток. Он сначала увидел флп импульсы в которых написано 100 М. Иначе бы сильно удивился, увидев сразу скрэмбленный айдл. Мой ПК, во всяком случае, был в шоке.

В компе в свойствах сетевой карты прописал 100Мбит/сек, и подаю сразу idle-поток без FLP-импульсов, комп принимает.

Когда на компе посылаю UDP-пакет, ПЛИС получает только широковещательный ARP-пакет (разбор на стороне ПК пока делаю). Так что мне надо будет еще с протоколами верхнего уровня разобраться...
В ПЛИС пока реализована только логика различения idle-потока (в тч с ошибками) от потока данных, и сохранение в блочной памяти только данных, с последующей пересылкой в комп.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.