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

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> FPGA для работы с 10G Ethernet
gin
сообщение Dec 16 2016, 14:49
Сообщение #31


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

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



Цитата(Koluchiy @ Dec 16 2016, 17:47) *
После пролистывания темы: предлагаю автору начать с 1G на обычном SFP. Многое станет понятно, потом и на 10G можно переходить.


Автор уже оплатил счет на плату 10G с модулями SFP+ )))
Go to the top of the page
 
+Quote Post
novartis
сообщение Dec 16 2016, 15:21
Сообщение #32


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



А что за плата, если не секрет?
Go to the top of the page
 
+Quote Post
gin
сообщение Dec 16 2016, 15:24
Сообщение #33


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

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



Цитата(novartis @ Dec 16 2016, 18:21) *
А что за плата, если не секрет?


Не секрет
TR5-F40W
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Dec 16 2016, 15:25
Сообщение #34


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Цитата(gin @ Dec 16 2016, 18:49) *
Автор уже оплатил счет на плату 10G с модулями SFP+ )))

Ничего не мешает вместо SFP+ воткнуть обычный SFP, далее - смотри п.1.
Go to the top of the page
 
+Quote Post
gin
сообщение Dec 16 2016, 15:28
Сообщение #35


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

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



Цитата(Koluchiy @ Dec 16 2016, 18:25) *
Ничего не мешает вместо SFP+ воткнуть обычный SFP, далее - смотри п.1.


Спасибо, может быть как вариант. Хотя, пока вот прям принципиально неразрешимых проблем с 10G не вижу. PHY модуль же аппаратно реализован, главное его корректно подключить
Go to the top of the page
 
+Quote Post
DuHast
сообщение Dec 16 2016, 17:19
Сообщение #36


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #37


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

Группа: Участник
Сообщений: 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
Сообщение #38


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #39


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

Группа: Участник
Сообщений: 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
DuHast
сообщение Dec 22 2016, 19:44
Сообщение #40


Местный
***

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



Цитата(gin @ Dec 20 2016, 10:25) *
Спасибо!
1. Получается, что xgmii_rx_clk формируется из pll_ref_clk?
2. И если разность между xgmii_rx_clk и rx_recovered_clk меньше 100PPM, то FIFO будет успевать справляться с этой рассинхронизацией, и потерь данных не будет? А что произойдет, если разность будет более 100PPM? Будет происходить потеря данных?

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

Кристалл - Stratix V

1 да
2 да.если разность больные 1000ppm то при брольшом трафика может произойти ошибка ФИФО( Rx Fifo error) её возникновение можно отслеживать.

Вообще в пятом стратиксе можно запитывать ref_clk от pll, но корку 10gBasedR можно тактировать только внешним клоком т.к. Внутри её самой ref_clk подаётся на pll для получения gmii_rx_clk.
Go to the top of the page
 
+Quote Post
gin
сообщение Dec 23 2016, 07:14
Сообщение #41


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

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



Цитата(DuHast @ Dec 22 2016, 22:44) *
1 да
2 да.если разность больные 1000ppm то при брольшом трафика может произойти ошибка ФИФО( Rx Fifo error) её возникновение можно отслеживать.

Вообще в пятом стратиксе можно запитывать ref_clk от pll, но корку 10gBasedR можно тактировать только внешним клоком т.к. Внутри её самой ref_clk подаётся на pll для получения gmii_rx_clk.


Большое спасибо!

единственное, разность частот 100 или 1000 ppm?
Go to the top of the page
 
+Quote Post
DuHast
сообщение Dec 24 2016, 11:03
Сообщение #42


Местный
***

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



Цитата(gin @ Dec 23 2016, 10:14) *
Большое спасибо!

единственное, разность частот 100 или 1000 ppm?


Ну это уже самому можно посмотреть.
http://www.altera.com/literature/ug/xcvr_user_guide.pdf
Go to the top of the page
 
+Quote Post
gin
сообщение Dec 27 2016, 07:09
Сообщение #43


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

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



Цитата(DuHast @ Dec 24 2016, 14:03) *
Ну это уже самому можно посмотреть.
http://www.altera.com/literature/ug/xcvr_user_guide.pdf


Спасибо! На самом деле иногда полезно почаще заглядывать в даташиты))
В любом случае, стабильность частоты будут зависеть от стабильности генератора на плате. Плата уже едет, так что пока жду ее, буду готовить тестовый проект.
Go to the top of the page
 
+Quote Post
gin
сообщение Feb 14 2017, 15:25
Сообщение #44


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

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



Если кому интересно... В общем в середине января приехала, купленная плата. Запустил на ней тестовый проект: прием 10G трафика и сразу же его выдача обратно без какой либо промежуточной обработки. Делал это для проверки правильности настройки тактового генератора. Настроил правильно, проект заработал - принимает и выдает обратно данные без ошибок и потерь.

Теперь делаю боевой проект, в общем то принципиальных трудностей нет, но есть некоторые вопросы:
1. Как правильно задать констрейт на xgmii_rx_clk? В принципе, так как этот клок формируется автоматически модулем 10GBASE-R, то констрейт должен генериться автоматически. Но хотелось бы описать его самому.
2. Пока не очень принципиально, но все же. Каким методом лучше рассчитывать CRC-32. Так как шина данных параллельная (64 бита), то табличный способ тут явно не пойдет. Но и не уверен,что получится напрямую на проходе сделать. В общем, может есть какие то описания, как считать CRC для Ethernet?

Заранее спасибо!

Сообщение отредактировал gin - Feb 14 2017, 15:26
Go to the top of the page
 
+Quote Post
novartis
сообщение Feb 14 2017, 16:59
Сообщение #45


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



Про crc ethernet можно почитать здесь https://electronix.ru/forum/index.php?showt...c=32896&hl=
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th June 2025 - 15:15
Рейтинг@Mail.ru


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