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

Индустриальный 10GB Ethernet Switch на ПЛИС

53 minutes ago, Flood said:

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

Для SGMII можно с помощью одного MMCM подключить 19 LVDS пар Rx к одному банку IO.

То есть, к двум банкам IO можно подключить 19 GbE PHYs.

См. XAPP523.

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


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

17 минут назад, blackfin сказал:

Для SGMII можно с помощью одной MMCM подключить 19 LVDS пар Rx к одному банку IO.

То есть, к двум банкам IO можно подключить 19 GbE PHYs.

См. XAPP523.

Спасибо! Правда, мой вопрос касался использования и тактирования встроенного PHY (MGT). Т.к. не было реальных проектов более чем на 4 порта, до сих пор точно не знаю, как получить общий клок между различными квадами. И, отдельно, между не смежными квадами, использующими разные внешние входы refclk.

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


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

On 1/24/2020 at 6:02 PM, Flood said:

Спасибо! Правда, мой вопрос касался использования и тактирования встроенного PHY (MGT). Т.к. не было реальных проектов более чем на 4 порта, до сих пор точно не знаю, как получить общий клок между различными квадами. И, отдельно, между не смежными квадами, использующими разные внешние входы refclk.

А зачем вам это надо? То есть просто, чтобы не возиться с CDC логикой или есть какие-то другие причины?

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


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

On 1/24/2020 at 8:02 PM, Flood said:

Т.к. не было реальных проектов более чем на 4 порта, до сих пор точно не знаю, как получить общий клок между различными квадами

а вы 4 на альтере поднимали? и как общий клок сделали? или просто корку 40g использовали?

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


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

3 часа назад, syoma сказал:

А зачем вам это надо? То есть просто, чтобы не возиться с CDC логикой или есть какие-то другие причины?

Главным образом - для понимания (корректности) схемы тактирования. В пределах одного квада более-менее понятно, в т.ч. потому что есть примеры. А вот для межквадовых ситуаций - не вполне понятно. И в особенности - для случаев с внешним фанаутом рефклока (когда портов так много, что внутренний не достает).

Ну а на практике - как правило, удобнее иметь общий тактовый домен.

 

3 часа назад, new123 сказал:

а вы 4 на альтере поднимали? и как общий клок сделали? или просто корку 40g использовали?

Увы, реально поднимал только на Xilinx. На альтере наверняка свои особенности.

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


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

6 minutes ago, Flood said:

И в особенности - для случаев с внешним фанаутом рефклока (когда портов так много, что внутренний не достает).

Вроде, это должна быть достаточно экзотическая ситуация. Во всех платах, с которыми мы работаем, для каждого QUADа доступен свой RefClk от внешнего программируемого генератора, позволяющего получить любую нужную частоту 125/156,25Мгц. Также частенько все это дело выводится через FMC и там тоже есть свои RefCLK линии со своими генераторами.  Поэтому у нас необходимость тактирования какого либо квада от соседнего возникала только в экзотическом случае, когда надо было получать разные скорости и протоколы в пределах одного квада и для этого как назло нужны были разные частоты опорников.

 

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


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

59 минут назад, syoma сказал:

Вроде, это должна быть достаточно экзотическая ситуация. Во всех платах, с которыми мы работаем, для каждого QUADа доступен свой RefClk от внешнего программируемого генератора, позволяющего получить любую нужную частоту 125/156,25Мгц.

При этом у вас в каждом кваде свой частотный домен? Или даже в каждом канале?

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


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

2 hours ago, Flood said:

При этом у вас в каждом кваде свой частотный домен? Или даже в каждом канале?

CDC делается в каждом GTH независимо от других:

Quote

The GTH transceiver RX datapath has two internal parallel clock domains used in the PCS: The PMA parallel clock domain (XCLK) and the RXUSRCLK domain. To receive data, the PMA parallel rate must be sufficiently close to the RXUSRCLK rate, and all phase differences between the two domains must be resolved.

 

The GTH transceiver includes an RX elastic buffer to resolve differences between the XCLK and RXUSRCLK domains.

См: UG576, page 268.

 

UPD:

Quote

These rules must be observed when sharing a reference clock to ensure that jitter margins for high-speed designs are met:
• The number of Quads above the sourcing Quad must not exceed two.
• The number of Quads below the sourcing Quad must not exceed two.
• The total number of Quads sourced by an external clock pin pair (MGTREFCLKN/MGTREFCLKP) must not exceed five Quads (or 20 transceivers).
The maximum number of transceivers that can be sourced by a single clock pin pair is 20. Designs with more than 20 transceivers require the use of multiple external clock pins to ensure that the rules for controlling jitter are followed. When multiple clock pins are used, an external buffer can be used to drive them from the same oscillator.

См: UG576, page 36.

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


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

47 minutes ago, Flood said:

При этом у вас в каждом кваде свой частотный домен? Или даже в каждом канале?

И так и так. И все это асинхронно к PCIe. Причем во многих QUADах частота-то одна и та же 125МГц, но MGTREFCLK запитан от разных тактовых генераторов или от разных каналов одного и того же генератора. Поэтому мы специально рассчитываем что эти клоки могут быть асинхронными, да и все. Хотя генератор на плате, может, их и синхронно генерит.

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


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

On 1/24/2020 at 7:21 PM, Flood said:

Вопрос чуть в сторону - при реализации 20-и портов что происходит с частотными доменами портов? Можно ли получить единый домен для всех портов уже на уровне PHY, или они будут группироваться по-квадово? Если можно для всех, то достаточно ли для этого синхронизированных внешних рефклоков?

Интересно как для 1Гбит (CPLL),  так и для случая 10Гбит (QPLL).

Напрашивается решение - каждый quad работает на своей частоте tx и rx, но вся логика соединения между портами работает на одной частоте. 

Если точнее - частота tx - одна на quad, частота rx - у каждого порта своя. Дело в том, что кодировка 64/66 которая используется в 10G не предполагает выравнивания скорости потока внутри GTH. Поэтому принятые данные от GTH поступают на частоте, которая восстановлена из входного сигнала. Работать с 20-ю частотами конечно невозможно, поэтому надо перейти на одну частоту.

 

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


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

6 hours ago, quest said:

Белый Кролик вам не подходит?

Если я правильно Вас понял, то это обыкновенная гигабитщина на Virtex-6.

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


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

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

18 minutes ago, syoma said:

Если я правильно Вас понял, то это обыкновенная гигабитщина на Virtex-6.

Может тогда посмотреть  на VPX варианты,  например типа ComEth4582a Ethernet matrix

Удачи! Rob. 

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


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

35 минут назад, dsmv сказал:

Если точнее - частота tx - одна на quad, частота rx - у каждого порта своя. Дело в том, что кодировка 64/66 которая используется в 10G не предполагает выравнивания скорости потока внутри GTH. 

 

В GTx есть Elastic Buffer, который позволяет работать с одной и той же частотой на TX и RX (для случая Ethernet, вроде, для эластика используется IFG). Вопрос не в этом.

 

Вот как делается общий TX clock для квада? Берется выход TX clock от одного GT и раздается на входы (как минимум, TX клока) всех каналов в кваде. В одном кваде единый источник этой частоты - в стандартном случае это результат деления частоты QPLL.

 

Вопрос - а можно ли так раздать и для каналов в соседних квадах?

Если можно, то почему (т.е. какие условия нужно выполнить, наверное, как минимум должен быть один и тот же источник GT refclk), и сколько квадов можно так затактировать, а если нельзя, то тоже - почему?

 

В документации я не нашел прямого ответа на этот вопрос. Обычно все тонкости с раздачей частоты заканчиваются обсуждениями внутри квада. А вот что между квадами - ссылок не нашел, ни на пример реализации, ни на запрет.

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


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

On 2/3/2020 at 8:00 PM, Flood said:

 

В альтере кстати, в ее ip core есть настройка, либо пользуешься выдаваемым коркой клоком для забирания данных, либо в корку можно подать свой клок. Так можно посадить все в один клоковый домен. В трансиверах все равно на выходе стоит компенсанционное FIFO, которое компенсирует не совпадение частот.

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...