Jump to content

    

Recommended Posts

Добрый день, коллеги! Возникла задача точно выровнять по фазе внешние тактовые сигналы, на плис приходят 2 lvds сигнала, источник сигнала может двигать фазу через 0.3 ps. Вот думаю сделать на плис фазовый детектор на лог. вентилях, вывести разность на выход, далее аналоговый фильтр и на вход XADC. Ну или эту разность на вход триггера и сработает или нет. Какую реально точность выравнивания фазы можно получить? Может кто уже делал или app note встречал?

Share this post


Link to post
Share on other sites
22 minutes ago, dmitry-tomsk said:

Добрый день, коллеги! Возникла задача точно выровнять по фазе внешние тактовые сигналы, на плис приходят 2 lvds сигнала, источник сигнала может двигать фазу через 0.3 ps. Вот думаю сделать на плис фазовый детектор на лог. вентилях, вывести разность на выход, далее аналоговый фильтр и на вход XADC. Ну или эту разность на вход триггера и сработает или нет. Какую реально точность выравнивания фазы можно получить? Может кто уже делал или app note встречал?

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

Реально делали подстройку фазы с шагом 3.125 нс. На Артиксе7, там у него есть скоростная ячейка (SLR, вроде бы). Брали примитив от Хилых и работали с ним.

Если взять что-то пожирнее, ultrascale+, например, наверное можно и 2-1.5 нс попробовать получить. Но единицы (да даже десятки) пс - звучит фантастичности.

Share this post


Link to post
Share on other sites
3 minutes ago, nice_vladi said:

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

Реально делали подстройку фазы с шагом 3.125 нс. На Артиксе7, там у него есть скоростная ячейка (SLR, вроде бы). Брали примитив от Хилых и работали с ним.

Если взять что-то пожирнее, ultrascale+, например, наверное можно и 2-1.5 нс попробовать получить. Но единицы (да даже десятки) пс - звучит фантастичности.

С двумя idelay на диф входе можно и на артиксе 200 ps сделать, но это много для моей задачи

Share this post


Link to post
Share on other sites

На мой достаточно дилетантский взгляд фазовое детектирование можно увеличивать практически до бесконечности. Вопрос в данных, сколько они длятся. Если длинна каждого бита наносекунда и менее, тогда можно и не пробовать (разве что как-то подстраивать гигабитные трансиверы). Если данные висят до десятков нан, тогда можно определить фазирование запросто до 400-200 ps и немного заморочившись до 1-0.5 ps. Тут ещё важный момент, какой допустимый оффсет для получения результата.

Share this post


Link to post
Share on other sites
7 minutes ago, Nick_K said:

На мой достаточно дилетантский взгляд фазовое детектирование можно увеличивать практически до бесконечности. Вопрос в данных, сколько они длятся. Если длинна каждого бита наносекунда и менее, тогда можно и не пробовать (разве что как-то подстраивать гигабитные трансиверы). Если данные висят до десятков нан, тогда можно определить фазирование запросто до 400-200 ps и немного заморочившись до 1-0.5 ps. Тут ещё важный момент, какой допустимый оффсет для получения результата.

Частота 100 Мгц. Здесь частота одинаковая точно (от одного источника), то есть оффсет и нужно убрать (схема компенсации задержки в кабеле).

Share this post


Link to post
Share on other sites
2 hours ago, dmitry-tomsk said:

Какую реально точность выравнивания фазы можно получить? Может кто уже делал или app note встречал?

Есть xapp523, но она для Kintex'ов и в ds182 пишут, что в Kintex'ах IDELAY/ODELAY chain resolution = 39 to 78 [ps].

Для Artix UltraScale+ в ds931 пишут, что IDELAY/ODELAY chain resolution = 2.1 to 12 [ps].

Так что и на Artix UltraScale+ ошибку меньше 2 ps на IDELAY/ODELAY chain не сделать.

Share this post


Link to post
Share on other sites

Если вы боретесь за единицы ps, то вам надо учитывать задержку между lvds+ и lvds- контактами. Файл с задержками корпуса (в пикосекундах) можно получить в Vivado для своей плис без проекта, файл экспортируется в csv формат.  

Share this post


Link to post
Share on other sites
13 часов назад, dmitry-tomsk сказал:

на плис приходят 2 lvds сигнала

12 часов назад, dmitry-tomsk сказал:

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

Т.е. один сигнал идёт по разной длины кабелям, которые подключены к одной и той же ПЛИС — может имеется ввиду измерить фазу? А то ведь получается абсурд.

Share this post


Link to post
Share on other sites
1 hour ago, Plain said:

Т.е. один сигнал идёт по разной длины кабелям, которые подключены к одной и той же ПЛИС — может имеется ввиду измерить фазу? А то ведь получается абсурд.

Сделать разность фаз равной нулю. В случае с фазовым детектором подгоняют частоту и смещение фазы (терминология). У меня 16 плат тактируются звездой через одинаковые кабели, а одна - этот сигнал выдаёт, то есть на 15 всё хорошо, а на главной фаза не та. Обраткой по тому же кабелю решил завести сигнал с общего буфера и подогнать его фазу (ставить генератор на общей плате не удобно для пользователей).

13 hours ago, blackfin said:

Есть xapp523, но она для Kintex'ов и в ds182 пишут, что в Kintex'ах IDELAY/ODELAY chain resolution = 39 to 78 [ps].

Для Artix UltraScale+ в ds931 пишут, что IDELAY/ODELAY chain resolution = 2.1 to 12 [ps].

Так что и на Artix UltraScale+ ошибку меньше 2 ps на IDELAY/ODELAY chain не сделать.

Можно настроить idelay в диф ячейке (там две idelay) чтобы разность была в один tap и ловить там переход, а можно просто двигать фазу подгоняемого сигнала и ловить фрон триггером. Вот и интересно, какая точность будет. Либо классика - фазовый детектор, фильтр, ацп. Думаю 10-20 ps меня бы устроило, это генератор частоты позволяет двигать фазу через 0.3 ps

Share this post


Link to post
Share on other sites
35 минут назад, dmitry-tomsk сказал:

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

Зачем? Если одинаковых кабелей 17 шт., то фаза у всех 16-ти принятых сигналов одна.

Share this post


Link to post
Share on other sites
15 minutes ago, Plain said:

Зачем? Если одинаковых кабелей 17 шт., то фаза у всех 16-ти принятых сигналов одна.

не одна, источник на главной плате тактирует ацп без задержек, а на 15 с одинаковой задержкой кабель - буфер - кабель (20 ps max).

Share this post


Link to post
Share on other sites
20 минут назад, dmitry-tomsk сказал:

не одна, источник на главной плате тактирует ацп без задержек, а на 15 с одинаковой задержкой кабель - буфер - кабель

Что мешает тактовать все 16 шт. АЦП на всех платах одинаково, т.е. от внешнего сигнала?

Share this post


Link to post
Share on other sites
16 часов назад, dmitry-tomsk сказал:

Какую реально точность выравнивания фазы можно получить? Может кто уже делал или app note встречал?

Вот описание того как детектируют положение фронта. Но там речь про сотни ps а не доли ps.... Боюсь плис и доли ps вещи не совместимые.

https://www.xilinx.com/support/documentation/white_papers/wp249.pdf

Share this post


Link to post
Share on other sites

Я в свое время писал модуль калибровки на центр валидного окна данных. https://electronix.ru/forum/applications/core/interface/file/attachment.php?id=127214

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this