реклама на сайте
подробности

 
 
> FPGA для работы с 10G Ethernet
gin
сообщение Dec 5 2016, 11:56
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 183
Регистрация: 17-12-10
Пользователь №: 61 682



Всем добрый день! Может кто-нить поднимал на ПЛИС 10G Ethernet? Какие ПЛИС использовали для этого, и какие отладочные платы и каких производителей можете порекомендовать?
Заранее спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
gin
сообщение Dec 16 2016, 07:27
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 183
Регистрация: 17-12-10
Пользователь №: 61 682



Продолжаю разбираться с 10G.

Так как буду использовать Альтеру, то пишу про нее. Как я понял, в Аррие и Стратиксе есть аппаратные блоки, предназначенные специально для работы с 10G Ethernet. Они включают в себя сериализатор/десериализатор, кодер/декодер 64/66b и скремблер. То есть на выход мне выдается уже готовый поток данных 64 бита, которые разбиты на группы по 8 байт + 8 управляющих сигналов. Для работы с этими аппаратными блоками предназначено IP 10GBASE-R PHY. На выходе которого и появляются эти данные.

Правильно ли я понимаю, что:
1. Это IP (ну то есть аппаратное ядро) восстанавливает клок и выдает данные по его фронту (156.25 МГц).
2. Выходные данные уже разбиты на байты. То есть байты Ethernet пакета строго идут по соответствующим линиям. (7..0, 16..9, и т.д.)

Теперь вопросы:
1. Если этот аппартаный блок восстанавливает частоту, то зачем нужно его тактировать внешним клоком с той же номинальной частотой?
2. Управляющие сигналы (8 бит). Показывают ли они, что принятые байты - это данные либо управляющие символы Ethernet, такие как - Idle, Start, Terminate, Error. Или они означают что то иное?

Заранее спасибо всем тем кто потратит свое время и прокоментирует мое сообщение))
Go to the top of the page
 
+Quote Post
AVR
сообщение Dec 16 2016, 07:44
Сообщение #3


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(gin @ Dec 16 2016, 10:27) *
1. Если этот аппартаный блок восстанавливает частоту, то зачем нужно его тактировать внешним клоком с той же номинальной частотой?

Прошу прощения, не понял о каком блоке идет речь? Исходя из моего скромного понимания, частота в линии может быть произвольной и даже меняться со временем (от температуры например), поэтому к ней надо подстраиваться (реклокинг). Основная системная частота должна оставаться относительно стабильной. Меня вот эта книжка по этой тематике порадовала: http://www.xilinx.com/publications/archive...ks/serialio.pdf


--------------------
Go to the top of the page
 
+Quote Post
gin
сообщение Dec 16 2016, 07:52
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 183
Регистрация: 17-12-10
Пользователь №: 61 682



Цитата(AVR @ Dec 16 2016, 10:44) *
Прошу прощения, не понял о каком блоке идет речь? Исходя из моего скромного понимания, частота в линии может быть произвольной и даже меняться со временем (от температуры например), поэтому к ней надо подстраиваться (реклокинг). Основная системная частота должна оставаться относительно стабильной. Меня вот эта книжка по этой тематике порадовала: http://www.xilinx.com/publications/archive...ks/serialio.pdf


У Альтеровского IP 10GBASE-R PHY есть два клока:
1. xgmii_rx_clk - судя по всему это клок, по фронту которого выдаются данные. Как я понимаю, он восстанавливается из входного 10G сигнала.
2. pll_ref_clk - еще один клоковый вход. Вот не очень понимаю для чего он
Go to the top of the page
 
+Quote Post
DuHast
сообщение Dec 16 2016, 17:19
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 314
Регистрация: 13-07-06
Из: Москва
Пользователь №: 18 797



Цитата(gin @ Dec 16 2016, 10:52) *
У Альтеровского IP 10GBASE-R PHY есть два клока:
1. xgmii_rx_clk - судя по всему это клок, по фронту которого выдаются данные. Как я понимаю, он восстанавливается из входного 10G сигнала.
2. pll_ref_clk - еще один клоковый вход. Вот не очень понимаю для чего он

Клок восстановленный из данных клок называется rx_recovered_clk, можно настроить мегафункцию, чтобы он выводился наружу, но Вам он не понадобится.
Из CDR данные по этому клоку поступают в ФИФО, откуда забираются клоком xgmii_rx_clk и преобразуются в XGMII интерфейс. Поэтому xgmii_rx_clk может быть один на много приемников.
Сам xgmii_rx_clk получается из pll_ref_clk в PLL, но главное назначение pll_ref_clk - это опорный клок для CDR. CDR хоть и восстанавливает частоту входных данных, но ему всё равно нужен опорный сигнал(см. схему, которую уже здесь приводили)
Go to the top of the page
 
+Quote Post
gin
сообщение Dec 19 2016, 07:14
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 183
Регистрация: 17-12-10
Пользователь №: 61 682



Цитата(DuHast @ Dec 16 2016, 20:19) *
Клок восстановленный из данных клок называется rx_recovered_clk, можно настроить мегафункцию, чтобы он выводился наружу, но Вам он не понадобится.
Из CDR данные по этому клоку поступают в ФИФО, откуда забираются клоком xgmii_rx_clk и преобразуются в XGMII интерфейс. Поэтому xgmii_rx_clk может быть один на много приемников.
Сам xgmii_rx_clk получается из pll_ref_clk в PLL, но главное назначение pll_ref_clk - это опорный клок для CDR. CDR хоть и восстанавливает частоту входных данных, но ему всё равно нужен опорный сигнал(см. схему, которую уже здесь приводили)


Спасибо!
Мне не до конца понятен вот какой момент. Например, у меня имеется несколько входных сигналов 10G Ethernet, скажем 3. Все эти сигналы идут с разных источников. Номинальная частота их 10.3125 ГГц (после декодирования 64/66b станет 10 ГГц). Но так как источники разные, то и частоты у них все-равно отличаются на величину некоторой погрешности. И после всех преобразований на выходе XGMII интерфейсов для каждого канала должен быть свой выходной клок xgmii_rx_clk. То есть должно быть физически 3 xgmii интерфейса для принимаемых данных. Верно?

И второй вопрос, правильно ли я понял, что опорный клок pll_ref_clk (322.265625 либо 644.53125 МГц) должен заводится извне. Его нельзя брать с внутреннего блока PLL? По крайней мере Quartus мне так сделать не дает, выдавая ошибку.

Заранее спасибо за ответ!

Сообщение отредактировал gin - Dec 19 2016, 07:19
Go to the top of the page
 
+Quote Post
DuHast
сообщение Dec 19 2016, 16:37
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 314
Регистрация: 13-07-06
Из: Москва
Пользователь №: 18 797



Цитата(gin @ Dec 19 2016, 10:14) *
Спасибо!
Мне не до конца понятен вот какой момент. Например, у меня имеется несколько входных сигналов 10G Ethernet, скажем 3. Все эти сигналы идут с разных источников. Номинальная частота их 10.3125 ГГц (после декодирования 64/66b станет 10 ГГц). Но так как источники разные, то и частоты у них все-равно отличаются на величину некоторой погрешности. И после всех преобразований на выходе XGMII интерфейсов для каждого канала должен быть свой выходной клок xgmii_rx_clk. То есть должно быть физически 3 xgmii интерфейса для принимаемых данных. Верно?

И второй вопрос, правильно ли я понял, что опорный клок pll_ref_clk (322.265625 либо 644.53125 МГц) должен заводится извне. Его нельзя брать с внутреннего блока PLL? По крайней мере Quartus мне так сделать не дает, выдавая ошибку.

Заранее спасибо за ответ!

1 Как я уже писал, из CDR данные по восстановленному из данных клоку( rx_recovered_clk) поступают в ФИФО, откуда забираются клоком xgmii_rx_clk , Это фифо может компенсировать разность между xgmii_rx_clk и rx_recovered_clk до 100PPM за счет добавления и исключения пауз между пакетами. Поэтому xgmii_rx_clk может быть один на несколько приемников.
2 От куда заводить pll_ref_clk зависит от кристалла. Со специального пина можно запитать все приемопередатчики на одной стороне ПЛИС. Можно с PLL, но с ограничениями. Читайте документацию на кристалл. Но если вы работаете с готовой платой, то там RefClk должен быть уже заведён куда надо. Более того к платам, как правило, идёт референс дизайн, где пожно посмотреть все подключения внешних портов.
Go to the top of the page
 
+Quote Post
gin
сообщение Dec 20 2016, 07:25
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 183
Регистрация: 17-12-10
Пользователь №: 61 682



Цитата(DuHast @ Dec 19 2016, 19:37) *
1 Как я уже писал, из CDR данные по восстановленному из данных клоку( rx_recovered_clk) поступают в ФИФО, откуда забираются клоком xgmii_rx_clk , Это фифо может компенсировать разность между xgmii_rx_clk и rx_recovered_clk до 100PPM за счет добавления и исключения пауз между пакетами. Поэтому xgmii_rx_clk может быть один на несколько приемников.
2 От куда заводить pll_ref_clk зависит от кристалла. Со специального пина можно запитать все приемопередатчики на одной стороне ПЛИС. Можно с PLL, но с ограничениями. Читайте документацию на кристалл. Но если вы работаете с готовой платой, то там RefClk должен быть уже заведён куда надо. Более того к платам, как правило, идёт референс дизайн, где пожно посмотреть все подключения внешних портов.


Спасибо!
1. Получается, что xgmii_rx_clk формируется из pll_ref_clk?
2. И если разность между xgmii_rx_clk и rx_recovered_clk меньше 100PPM, то FIFO будет успевать справляться с этой рассинхронизацией, и потерь данных не будет? А что произойдет, если разность будет более 100PPM? Будет происходить потеря данных?

Действительно, на плате установлен программируемый тактовый генератор (Si570) с низким джиттером, он и предназначен для тактирования 10G приемопередатчиков. Получается, его надо заводить напрямую на вход ref_clk, без промежуточной внутренней PLL?

Кристалл - Stratix V

Сообщение отредактировал gin - Dec 20 2016, 09:52
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- gin   FPGA для работы с 10G Ethernet   Dec 5 2016, 11:56
- - goodsoul   Цитата(gin @ Dec 5 2016, 14:56) Всем добр...   Dec 5 2016, 14:01
|- - gin   Цитата(goodsoul @ Dec 5 2016, 17:01) Для ...   Dec 5 2016, 14:12
|- - RobFPGA   Приветствую! Цитата(gin @ Dec 5 2016, 17...   Dec 5 2016, 14:39
|- - gin   Цитата(RobFPGA @ Dec 5 2016, 17:39) Приве...   Dec 5 2016, 14:48
|- - Maverick   Цитата(gin @ Dec 5 2016, 16:48) Спасибо...   Dec 5 2016, 15:17
|- - RobFPGA   Приветствую! Цитата(gin @ Dec 5 2016, 17...   Dec 5 2016, 15:19
|- - gin   Цитата(RobFPGA @ Dec 5 2016, 18:19) Приве...   Dec 5 2016, 15:33
|- - DuHast   Цитата(gin @ Dec 5 2016, 18:33) Вот тепер...   Dec 12 2016, 13:17
|- - gin   Цитата(DuHast @ Dec 12 2016, 16:17) Всё и...   Dec 14 2016, 15:16
- - novartis   Цитатастандарт на 10G Ethernet платный это вы про ...   Dec 14 2016, 16:32
|- - gin   Цитата(novartis @ Dec 14 2016, 19:32) это...   Dec 15 2016, 07:27
|- - AVR   Цитата(gin @ Dec 16 2016, 10:52) У Альтер...   Dec 16 2016, 08:24
||- - gin   Цитата(AVR @ Dec 16 2016, 11:24) Судя по ...   Dec 16 2016, 08:28
|- - DuHast   Цитата(gin @ Dec 20 2016, 10:25) Спасибо...   Dec 22 2016, 19:44
|- - gin   Цитата(DuHast @ Dec 22 2016, 22:44) 1 да ...   Dec 23 2016, 07:14
|- - DuHast   Цитата(gin @ Dec 23 2016, 10:14) Большое ...   Dec 24 2016, 11:03
|- - gin   Цитата(DuHast @ Dec 24 2016, 14:03) Ну эт...   Dec 27 2016, 07:09
- - shide_3   Здравствуйте. А не прокомментирует ли кто-нибудь, ...   Dec 16 2016, 07:41
- - novartis   1. Если этот аппартаный блок восстанавливает часто...   Dec 16 2016, 08:48
|- - gin   Цитата(novartis @ Dec 16 2016, 11:48) 1. ...   Dec 16 2016, 09:06
- - novartis   Это конечно логично, но вот при настройке в визард...   Dec 16 2016, 09:16
|- - gin   Цитата(novartis @ Dec 16 2016, 12:16) Это...   Dec 16 2016, 09:32
- - novartis   к pll_ref_clk особое отношение. нельзя просто так ...   Dec 16 2016, 09:37
|- - gin   Цитата(novartis @ Dec 16 2016, 12:37) к p...   Dec 16 2016, 09:42
- - novartis   У корки можно указать, сколько каналов будет. Напр...   Dec 16 2016, 09:47
|- - gin   Цитата(novartis @ Dec 16 2016, 12:47) У к...   Dec 16 2016, 09:53
- - novartis   xgmii_rx_clk у них у всех одинаковые, получены из...   Dec 16 2016, 09:59
|- - gin   Цитата(novartis @ Dec 16 2016, 12:59) xg...   Dec 16 2016, 11:23
- - gin   Скачал с AlteraWiki архив с проектом, где использу...   Dec 16 2016, 14:34
- - Koluchiy   После пролистывания темы: предлагаю автору начать ...   Dec 16 2016, 14:47
|- - gin   Цитата(Koluchiy @ Dec 16 2016, 17:47) Пос...   Dec 16 2016, 14:49
|- - Koluchiy   Цитата(gin @ Dec 16 2016, 18:49) Автор уж...   Dec 16 2016, 15:25
|- - gin   Цитата(Koluchiy @ Dec 16 2016, 18:25) Нич...   Dec 16 2016, 15:28
- - novartis   А что за плата, если не секрет?   Dec 16 2016, 15:21
|- - gin   Цитата(novartis @ Dec 16 2016, 18:21) А ч...   Dec 16 2016, 15:24
- - gin   Если кому интересно... В общем в середине января п...   Feb 14 2017, 15:25
|- - DuHast   Цитата(gin @ Feb 14 2017, 18:25) Если ком...   Feb 15 2017, 03:51
|- - gin   Цитата(DuHast @ Feb 15 2017, 06:51) Устан...   Feb 15 2017, 14:26
|- - bogaev_roman   Цитата(gin @ Feb 15 2017, 17:26) Кстати, ...   Feb 15 2017, 15:04
|- - gin   Цитата(bogaev_roman @ Feb 15 2017, 18:04)...   Feb 15 2017, 15:32
|- - bogaev_roman   Цитата(gin @ Feb 15 2017, 18:32) Проект т...   Feb 15 2017, 15:42
|- - gin   Цитата(bogaev_roman @ Feb 15 2017, 18:42)...   Feb 16 2017, 07:25
|- - bogaev_roman   Цитата(gin @ Feb 16 2017, 10:25) Но честн...   Feb 16 2017, 07:33
|- - gin   Цитата(bogaev_roman @ Feb 16 2017, 10:33)...   Feb 16 2017, 08:08
|- - bogaev_roman   Цитата(gin @ Feb 16 2017, 11:08) Собствен...   Feb 16 2017, 09:05
|- - gin   Цитата(bogaev_roman @ Feb 16 2017, 12:05)...   Feb 16 2017, 09:11
- - novartis   Про crc ethernet можно почитать здесь https://elec...   Feb 14 2017, 16:59
- - novartis   ЦитатаQuartus автоматически задает констрейт на xg...   Feb 15 2017, 15:54
|- - bogaev_roman   Цитата(novartis @ Feb 15 2017, 18:54) А ч...   Feb 15 2017, 16:12
- - novartis   Надо добавить в проект sdc файл: derive_clock_unce...   Feb 16 2017, 08:00
- - gin   Как и советовали подключил SDC файл к проекту Код...   Feb 16 2017, 11:10


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 14:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01522 секунд с 7
ELECTRONIX ©2004-2016