|
FPGA для работы с 10G Ethernet |
|
|
|
 |
Ответов
|
Dec 16 2016, 07:27
|

Частый гость
 
Группа: Участник
Сообщений: 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. Или они означают что то иное?
Заранее спасибо всем тем кто потратит свое время и прокоментирует мое сообщение))
|
|
|
|
|
Dec 16 2016, 07:52
|

Частый гость
 
Группа: Участник
Сообщений: 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 - еще один клоковый вход. Вот не очень понимаю для чего он
|
|
|
|
|
Dec 16 2016, 17:19
|

Местный
  
Группа: Свой
Сообщений: 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 хоть и восстанавливает частоту входных данных, но ему всё равно нужен опорный сигнал(см. схему, которую уже здесь приводили)
|
|
|
|
|
Dec 19 2016, 07:14
|

Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
|
Dec 19 2016, 16:37
|

Местный
  
Группа: Свой
Сообщений: 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 должен быть уже заведён куда надо. Более того к платам, как правило, идёт референс дизайн, где пожно посмотреть все подключения внешних портов.
|
|
|
|
|
Dec 20 2016, 07:25
|

Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|