Jump to content

    

PCI-E RefClk: должен ли быть "зависимым"?

Вопрос не в том, можно ли так по правилам (читай - стандартам), а в том - можно ли от них и насколько отходить.

 

Итак: дифференциальный RefClk частотой 100МГц надо заводить на каждый PCI-E  target, основная цель, я так понимаю - чтобы у мультигигабитных трансиверов был исходный клок с одним и тем же дрейфом.

 

Вопрос: а можно ли не заводить, а генерить локально?

в сети разные мнения, от Note that the pcie bus ref clock needs to be common between all devices communicating on the pcie bus. До https://www.xilinx.com/support/answers/18329.html с техникой Asynchronous Clocking

 

Также есть такая вот картинка:

990122321_Screenshotfrom2019-10-0315-24-44.thumb.png.eacda00cb7edc31afefac6dd0bce6fbd.png

которая вроде бы говорит, что такое вроде как приемлемо, но хотелось бы ответа практиков.

 

Зачем это всё?

Есть девборда с Xilinx US/US+ c FMC но без PCI-E слота, сейчас появилась необходимость работать с PCI-E самая простая и материально незатратная идея реализовать это: изготовить райзер из FMC в PCI-E (через тот же USB3.0 кабель, которй используется китайцами повсеместно для выноса с материнки PCI-E 1х ).

Но вот незадача - на FMC разведены мультигигабитные трансиверы, но задающий клок для них распаян локально на плате (номинал может программироваться во внешней фапч), резать дорожки, куда-то там подпаиваться - такой кейс совсем исключён. Поэтому для принятия решения о райзере хотелось бы заручиться уверенностью что заработает хотя бы в лабораторных условиях (в продакшене это использоваться не будет). (лабораторных условиях == температура 25С, что должно снизить разбос задающих частот на разных концах MGT)/

 

 

 

PCIe-Clock-Source-Selection.pdf

Share this post


Link to post
Share on other sites

Если вопрос в том, брать клок со слота PCIE или с генератора на плате, у меня работает и так и так.

Edited by new123

Share this post


Link to post
Share on other sites
19 minutes ago, new123 said:

Если вопрос в том, брать клок со слота PCIE или с генератора на плате

вопрос в том, что есть возможность взять с материнки клок, но нет возможности именно его подать на FPGA

Share this post


Link to post
Share on other sites

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

PCie устройства  могут работать на независимых клоках  главное чтобы различие опорных частот на  разных концах были меньше чем заложено в стандарте. Поэтому при такой схеме более жесткие (и соответственно дороже) требования к опорникам. Многие PCIe optics extender например так и работают.

Удачи! Rob.

 

Share this post


Link to post
Share on other sites
16 minutes ago, RobFPGA said:

PCie устройства  могут работать на независимых клоках  главное чтобы различие опорных частот на  разных концах были меньше чем заложено в стандарте

спасибо за комментарий!

вот как раз уповаю на "тепличные" условия  :buba:

Share this post


Link to post
Share on other sites

В лабораторных условиях работать должно, хотя могут быть отдельные ограничения при использовании Spread Spectrum. Причем спред сейчас на материнках обычно не отключаемый.

Однако, странно что нет ни одного MGT клока с FMC. 

Share this post


Link to post
Share on other sites

PCIe стандарт предусматривает работу от асинхронных опорных клоков - его физический уровень на это рассчитан (elastic буфера, SKIP ordered set'ы), есть требование, чтобы точность клоков укладывалась в 300 ppm.

Share this post


Link to post
Share on other sites

Я пробовал давно от независимых клоков - не работало, но, думаю, тут многое будет зависеть от материнской платы. Как-то давно уже обсуждали это https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=73928&page=4

Свичи от PLX между собой  работать без общего клока могут. В PCIe optics extender используется развязка. Т.е. с материнкой общий клок есть, а между двумя оптическими концами - нет.

 

Share this post


Link to post
Share on other sites
17 hours ago, Flood said:

В лабораторных условиях работать должно, хотя могут быть отдельные ограничения при использовании Spread Spectrum

об этом как раз упоминают в Xilinx Answer Record - что Spread Spectrum неоьходимо отключить и вроде как биос предоставляет такую возможность

10 hours ago, dxp said:

требование, чтобы точность клоков укладывалась в 300 ppm.

но ведь это достаточно легкое требование для современных кварцевых генераторов/резонаторов, нет?

(еще и при 25С)

17 hours ago, Flood said:

Однако, странно что нет ни одного MGT клока с FMC. 

возможно вы правы - девкитов несколько, поэтому хотелось бы чтобы решение было универсальным и не зависящим от наличия возможности правильно "запитать" RefClk

3 hours ago, gosu-art said:

Я пробовал давно от независимых клоков - не работало, но, думаю, тут многое будет зависеть от материнской платы

это как раз не страшно.. (в отличии от зависимости от девкита)

можно подобрать материнскую плату на которой заработает

Share this post


Link to post
Share on other sites

Spread Spectrum если и можно отключить, то далеко не везде.

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

Share this post


Link to post
Share on other sites
В 04.10.2019 в 20:20, Doka сказал:

но ведь это достаточно легкое требование для современных кварцевых генераторов/резонаторов, нет?

Да, это вполне ординарно. Но это я про требования стандарта написал, а вот то, насколько это требование соблюдается производителями, это вопрос. Т.е. по спеке должно работать, но на практике - не факт.  Зависит от конкретной реализации железа.

Share this post


Link to post
Share on other sites
On 10/4/2019 at 5:27 PM, Flood said:

далее с выходного порта PLX (вроде бы уже без спреда) сигнал через оптику передавался на другую плату, с локальным клоком.

На правах моего дилетантского предположения, для оптики не используется CDR? Быть может там уже и не требуется так жестко следовать целевой частоте, хотя буферы не бесконечны и большую разницу не потянут.

Share this post


Link to post
Share on other sites

Есть стандарты для крейтов, например VPX, где в стандарте вообще прямо указано, что для PCIe каждая плата должна использовать локальный RefClk и все платы - будь то ПЛИСные, хоть процессорные, хоть свичи, этому следуют.

Так что будет работать, но spread spectrum должен быть отключен на всех железках и надо смотреть на осцилляторы. Например, мы используем для локального клокинга Si5338, где прямо указано PCIe Gen1/2/3/4 compliant. Че в нем специфического - ХЗ, но работает как-то и даже не в тепличных условиях, а вполне боевых и даже не на US, а на старых 7-ых Виртексах.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now