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

Kintex 7 GTX/GTH - возможна ли синхронизация времени через CDR

Уважаемые специалисты ПЛИС! Прошу Вашего совета, подсказок

 

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

 

Моя надежда связана с GTX/GTH трансиверами, а точнее их CDR механизм. Так, например на 10 гигабитах, время бита будет составлять 100 пикосекунд. Правильно ли я понимаю, глядя на рисунок Figure 4-22 CDR Sampler Positions в ug476_7Series_Transceivers.pdf, что несмотря на то, что время символа 100 пс, то выравнивание момента старта бита там уже может вести счет на десятки и даже единицы пикосекунд? И соответственно data sample время будет высокоточно откорректировано в центр бита?

 

Имеет ли место быть ожидание, что CDR породит на приемной стороне точную копию передающего clock, и даже выставит биты очень точно, что я могу полагаться, даже несмотря на задержку в кабеле и какие то задержки внутри ПЛИС на tx и rx, что процессы стартуют всегда в одинаковую пикосекунду (ну примерно) + обозначенная задержка, которую я откалибрую

 

Может джиттер всё погубит? Но CDR же спасает? Желание чтобы не было расколбаса внутри времени бита, потому что это учесть уже нереально как мне кажется

 

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

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


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

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


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

6 minutes ago, Flood said:

Спасибо, статья обещает единицы пикосекунд, причем с устранением задержки по типу как в 1588/PTPv2. И как раз полагаются на CDR (значит не очень глупые мысли мне пришли)

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


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

12 minutes ago, 1891ВМ12Я said:

Спасибо, статья обещает единицы пикосекунд, причем с устранением задержки по типу как в 1588/PTPv2. И как раз полагаются на CDR (значит не очень глупые мысли мне пришли)

Ага, в ЦЕРН глубоко изучили эту тему. Если нужна очень точная синхронизация, стоит гуглить White Rabbit в целом.

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


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

подтверждаю про white rabbit в cern.

однако.

Проблема вылезла на другой уровень. Какова нужна точность и в какой конкретно местности (локальности).

Дело в том что атомные часы на газовой ячейке на первом этаже небоскреба и на 100м этаже внезапно дают за 80 лет вполне себе ощутимую и количественно определенную разницу. Общая теория относительности объясняет это расхождение с точностью до 3 знака после запятой. При рассмотрении 5-6-7 знака после запятой идет полная лажа и иы там не знаем ничерта.

Весь этот джиттер и вся эта аллановская девиация не дают ничего.

Итак, внимание вопрос насколько точными отсечками времени вы готовы ограничиться, которые не повлияют на решаемую вами задачу.

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


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

Первая проблема, которая вероятно возникнет - недетерменированная задержка от входа передатчика до выхода приёмника, с ней удалось разобраться благодаря статье от White Rabbit (прикрепил). И ещё было обсуждение вот здесь

Во-вторых, задержка тракта плывёт от температуры, вклад вносят и кабель и оптические модули и буферы ПЛИС и т.п., поэтому необходимо делать компенсацию этой задержки. Я не очень знаком с архитектурой White Rabbit, знаю что они как-то подстраивают фазу своих локальных часов - получается некая такая распределённая ФАПЧ. Мы же у себя реализовали подобную: http://www.mrf.fi (есть очень спорные моменты с этими девайсами, но весь комплекс синхронизуется от MRF, мы вынужденно встраиваемся в эту экосистему).

Потом, джиттер действительно будет немаленький, поэтому необходимо восстановленную тактовую чистить джиттер клинером.

giordano2011.pdf

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


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

Доброго времени суток!

Синхронизация устройств на Kintex 7 GTX/GTH возможна.

Выставляете битовую последовательность на приемной стороне при помощи RXSLIDE, контролируя RXCOMMADET, RXBYTEISALIGNED ... Подробно процедура описана в параграфе Manual Alignment в главе про ресивер (ug476).

Обратите внимание на высокие требования по стабильности и точности к генераторам опорной частоты на Ваших устройствах, если Вы используете SI570, то откалибруйте генератор на "приемнике" относительно "передатчика". 

Оптические трансиверы должны обладать встроенным CDR. Также необходимо обеспечить высокую температурную стабильность оборудования, в том числе оптического тракта.

Использование джиттер клинера позволит добиться джиттера в единицы пик. 

 

Реклама по теме:

Коллективом АО НИИЭФА (Санкт-Петербург) создана распределенная система синхронизации пикосекундной точности для установки УФЛ-2М (Саров). Созданная система синхронизации обеспечивает синхронную работу более 6000 каналов синхронизации. Структура многоканальной распределенной системы синхронизации основывается на применении универсальных модулей, описание модуля системы синхронизации во вложении:

Устройство системы синхронизации.pdf

 

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


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

@1891ВМ12Я Может показаться, что все идеи на поверхности - читай мануал, настраивай трансиверы - и получи синхронную работу устройств. Но, в действительности, GTH-ы и телекоммуникационное оптическое оборудование никогда не создавалось для синхронизации времени. В типичной задаче нужно лишь достоверно передать поток данных, а с каким фазовым набегом он будет получен - неважно.

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

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


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

On 8/30/2023 at 1:33 PM, IdiotBox said:

Выставляете битовую последовательность на приемной стороне при помощи RXSLIDE, контролируя RXCOMMADET, RXBYTEISALIGNED ... Подробно процедура описана в параграфе Manual Alignment в главе про ресивер (ug476).

 

Да, это важный момент, автомат синхронизации нужно будет написать свой. Но всё равно будет детерменированность с точностью до одного UI. Мы у себя сделали следующим образом: когда достигнута синхронизация с чётным количеством RXSLIDE, то считаем, что успех, если с нечётным - делаем сброс и повторяем всё заново.

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


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

17 minutes ago, kamil_yaminov said:

Да, это важный момент, автомат синхронизации нужно будет написать свой. Но всё равно будет детерменированность с точностью до одного UI. Мы у себя сделали следующим образом: когда достигнута синхронизация с чётным количеством RXSLIDE, то считаем, что успех, если с нечётным - делаем сброс и повторяем всё заново.

а задержку кабеля вы как то калибруете? например есть 10 устройство на оптике от 1 до 100 метров и все надо выровнять.

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


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

23 hours ago, pavlovconst said:

@1891ВМ12Я Может показаться, что все идеи на поверхности - читай мануал, настраивай трансиверы - и получи синхронную работу устройств. Но, в действительности, GTH-ы и телекоммуникационное оптическое оборудование никогда не создавалось для синхронизации времени. В типичной задаче нужно лишь достоверно передать поток данных, а с каким фазовым набегом он будет получен - неважно.

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

Да я уже это понял, причем White Rabbit не дал бы нужного результата численно, я почитал документы. Не хотел прерывать комментарии, может будут еще какие то интересные идеи

 

Дело в том что оптически я уже решил эту задачу с точностью 5 пс в аналоговой форме, просто при каждом включении система в следующей ревизии схемы уже стала давать рандомные стартовые фазы, и далее оно работает на 3-5 пс точности

 

И я вот что придумал, что сделаю цифровой канал для выравнивания клока через CDR, что тоже очень немаловажно для меня. А второй канал, помимо основного аналогового, также будет давать в оптику мой аналоговый сигнал. Просто в таком случае, оптический кабель не подвержен фазовым сдвигам как обычный коаксиал, даже фазостабильный

 

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

 

Верно ли мое предположение, что оптические кабели не подвержены фазовым изменениям при их изгибах и перемещениях, изменении формы?

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


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

10 часов назад, 1891ВМ12Я сказал:

Верно ли мое предположение, что оптические кабели не подвержены фазовым изменениям при их изгибах и перемещениях, изменении формы?

Верно. 

10 часов назад, des00 сказал:

а задержку кабеля вы как то калибруете? например есть 10 устройство на оптике от 1 до 100 метров и все надо выровнять.

1. Использовать измеритель интервалов времени. 

2. Промерить 1 раз с осциллографом соответствующего класса, внести значение в систему. 

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

 

10 часов назад, kamil_yaminov сказал:

Да, это важный момент, автомат синхронизации нужно будет написать свой. Но всё равно будет детерменированность с точностью до одного UI. Мы у себя сделали следующим образом: когда достигнута синхронизация с чётным количеством RXSLIDE, то считаем, что успех, если с нечётным - делаем сброс и повторяем всё заново.

Нам удалось построить абсолютно детерминированную распределенную систему синхронизации. 

В 30.08.2023 в 12:08, pavlovconst сказал:

@1891ВМ12Я Может показаться, что все идеи на поверхности - читай мануал, настраивай трансиверы - и получи синхронную работу устройств. Но, в действительности, GTH-ы и телекоммуникационное оптическое оборудование никогда не создавалось для синхронизации времени. В типичной задаче нужно лишь достоверно передать поток данных, а с каким фазовым набегом он будет получен - неважно.

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

Константин, крайне рад приветствовать! Константин тот человек, который заварил всю кашу с системой синхронизации в НИИЭФА) 

 

В 28.08.2023 в 14:31, kamil_yaminov сказал:

... реализовали подобную: http://www.mrf.fi (есть очень спорные моменты с этими девайсами, но весь комплекс синхронизуется от MRF, мы вынужденно встраиваемся в эту экосистему).

 Курчатник в своих новых мегапроектах ориентирован на финскую систему синхронизации. 

 

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


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

19 hours ago, des00 said:

а задержку кабеля вы как то калибруете? например есть 10 устройство на оптике от 1 до 100 метров и все надо выровнять.

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

Далее мастер передаёт измеренные значения ведомым, а те в свою очередь при помощи fifo выравниваются к заданному значению

9 hours ago, IdiotBox said:

 Курчатник в своих новых мегапроектах ориентирован на финскую систему синхронизации. 

 

Это про мегапроект СИЛА?

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


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

36 minutes ago, kamil_yaminov said:

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

а можете озвучить погрешность вашей системы?

36 minutes ago, kamil_yaminov said:

Далее мастер передаёт измеренные значения ведомым, а те в свою очередь при помощи fifo выравниваются к заданному значению

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

9 hours ago, IdiotBox said:

1. Использовать измеритель интервалов времени. 

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

9 hours ago, IdiotBox said:

2. Промерить 1 раз с осциллографом соответствующего класса, внести значение в систему.

Ну это совсем плохой вариант.

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


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

2 hours ago, des00 said:

а можете озвучить погрешность вашей системы?

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

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

Ну это совсем плохой вариант.

Нам достаточно примерно плюс-минус 50пс для установки, на которой сейчас работаем, для той которую обещают построить, физики требуют 10пс, но это скорее всего избыточное требование, как на самом деле никто не знает.

Да, мы выравниваем потоки по спец. символу при помощи fifo. Регулируя заполненность fifo меняем задержку. При этом ещё фазу read clock подстраиваем при помощи pll для более тонкой подстройки, и эту же тактовую с подстроенной фазой отдаём на джиттер клинер. Уже обсуждали этот момент про fifo и подстройку фазы с более опытным коллегой, возможно тут есть подводные камни, связанные с метастабильностью. На всякий случай поставил два fifo и сличаю их выхода для детектирования такого рода ошибок. Это решение - копия mrf, единственно, мы сделали на альтере, mrf - на зайлинксе.

По поводу измерителей: я так понял, что все делают по принципу белого кролика, с защелкиванием на немного отличающейся частоте и последующей фильтрацией.

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


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

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

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

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

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

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

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

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

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

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