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

синхронизировать тактовые частоты двух ПЛИС

Необходимо решить задачу синхронизации двух ПЛИС Spartan 6. Мне надо чтобы были синхронными импульсы 100 Гц, а уже расхождение в течение 10 мс в рамках допустимой погрешности будет при любом раскладе. Необходимо чтобы синхронность в пределах 1-2 мкс сохранялась в течение 5 минут. Казалось бы, требования простые, придумывая и тестируя различные методы на Verilog в симуляторе (имитируя расхождение частот в плюс и минус) мне удавалось решить задачу. А вот реальные испытания с осциллографом и двумя каналами (по триггеру смотрел расхождение) показали что решение никуда не годится...

 

У каждой ПЛИС свой внешний генератор на 50 МГц (KXO-V97, но не суть, там 50 ppm). Между собой они соединены по диф.-паре LVDS_33, помех нет.

 

Важный момент: после синхронизации ПЛИС должны быть разъединены, поэтому надо чтобы 5 минут потом сохранялось равенство тактовых частот, только вот установить еще надо их равными.

 

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

 

Вопрос: как пользоваться DCM для синхронизации двух тактовых частот? Как называется процесс или режим работы DCM? Есть ли статьи или туториалы?

 

Чтобы если одна базовая ПЛИС ушла по частота от 50 МГц на 752 Гц например, то чтобы вторая тоже имела такое же смещение (50000752 Гц).

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


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

Важный момент: после синхронизации ПЛИС должны быть разъединены, поэтому надо чтобы 5 минут потом сохранялось равенство тактовых частот, только вот установить еще надо их равными.

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

Тактовые частоты после разрыва синхронизации расходяться сразу же . И это при том что я так и не понял как это вы собрались синхронизировать тактовые генераторы KXO-V97 посредством DCM .

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


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

Необходимо решить задачу синхронизации двух ПЛИС Spartan 6.

 

"Плезиохронные потоки"...

Вооюще такая задача решена в системах цифровой телефонии и передачи данных. Потоки Е3 и выше...

 

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


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

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

Тактовые частоты после разрыва синхронизации расходяться сразу же . И это при том что я так и не понял как это вы собрались синхронизировать тактовые генераторы KXO-V97 посредством DCM .
Я так понимаю что от Вас ответа уже получить я не смогу, ведь очевидно что же что второстепенная ПЛИС будет тактироваться при помощи DCM, который в свою очередь тактируется генератором.

 

Перефразирую вопрос: DCM позволяет выдавать тактовую, которая подавалась ему на вход? Если нет, то как вообще решить эту простую на первый взгляд задачу?

 

DCM в Spartan 6 может работать в режиме NCO (Numerically Controlled Oscillator)?

 

Могу всё путать, вот и обращаюсь за помощью... Задача: синхронизировать.

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


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

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

..с часами так и будет, счётчик слейв синхронизируется с мастером, пока связаны друг-другом.

 

Я так понимаю что от Вас ответа уже получить я не смогу, ведь очевидно что же что второстепенная ПЛИС будет тактироваться при помощи DCM, который в свою очередь тактируется генератором.

 

не понял.

 

Перефразирую вопрос: DCM позволяет выдавать тактовую, которая подавалась ему на вход? Если нет, то как вообще решить эту простую на первый взгляд задачу?

 

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

 

DCM в Spartan 6 может работать в режиме NCO (Numerically Controlled Oscillator)?

 

такого раньше не слышал.

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


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

NCO здесь вообще не к месту, потому что это обычный генератор работающий от генератора тактовой частоты.

 

Даже если вы возьмете хорошие генераторы ну положим со стабильностью 1ppm и частотой 50МГц то возможна ситуация когда мастер работает на частоте 49 999 950 Гц, а слейв на частоте 50 000 050 Гц. Опорники вы не синхронизируете никак.

 

Максимум что можете синхронизировать часы, которые считают ваши 100Гц. Реальную частоту, фазу и их уход легко посчитать из используемых вами генераторов.

 

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

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


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

Даже если вы возьмете хорошие генераторы ну положим со стабильностью 1ppm и частотой 50МГц то возможна ситуация когда мастер работает на частоте 49 999 950 Гц, а слейв на частоте 50 000 050 Гц. Опорники вы не синхронизируете никак.
Я в курсе что опорники никак. Мне надо нивелировать эффект ухода частота хотя бы на 5 минут работы схемы с отключенной синхронизацией. Пока кабель подключен - мой алгоритм уже позволяет держать синхронность, просто уход пока что большой, слишком быстро уползает.

 

Максимум что можете синхронизировать часы, которые считают ваши 100Гц. Реальную частоту, фазу и их уход легко посчитать из используемых вами генераторов.
Как посчитать это в ПЛИС? Я считаю только на сколько Гц отличается один от другого.

 

ЗЫ. Судя по описанию вы используете в качестве опорных генераторов гуны. Если работчую точку вы задавали им делителем напряжения, то весь шум питания будет моделировать ваши опоры.
Нет, у меня не ГУН, у меня просто KXO-V97 - он тупо выдает 50 МГц и никак не управляется - выдает как умеет...

 

Просто хочу понять - Spartan 6 в принципе позволяет сделать чтобы 50 001 463 Гц на одном генераторе, чтобы заставить чтобы второй DCM выдавал те же 50 001 463 Гц? Я так уже понял по ответа что нельзя =(

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


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

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

 

Как посчитать это в ПЛИС? Я считаю только на сколько Гц отличается один от другого.

Вы не сможете нивелировать уход частоты, но вы можете синхронизировать часы на время.

 

..сделайте счётчик микросекунд.

 

по результату работы счётчика микросекунд (как досчитает до 1000) - считайте миллисекунды.

 

По сигналу синхронизации от мастера - сбрасывайте в ноль счётчик микросекунд слейва.

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


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

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

 

Как посчитать это в ПЛИС? Я считаю только на сколько Гц отличается один от другого.

хмм, частоты вы знаете. ставите 2 частоты фронт в фронт и считаете насколько они разойдутся за время 5 минут. Можно даже не считать, а тупо промоделировать.

 

Просто хочу понять - Spartan 6 в принципе позволяет сделать чтобы 50 001 463 Гц на одном генераторе, чтобы заставить чтобы второй DCM выдавал те же 50 001 463 Гц? Я так уже понял по ответа что нельзя =(

если бы к вас был доступ ко входу петлевого фильтра PLL, тогда можно было бы занулить ошибку на его входе и тогда все бы определялось стабильностью встроенного гуна в DCM. Правда ЕМНИП в 6 ом спаратне DCM идут еще без гунов. на основе DPLL.

 

Как вариант можно на слейве сделать так : поставить гун, собрать ФАПЧ и рулить петлевым фильтром. Но гун тогда нужен с хорошей стабильностью(высокой ценой)

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


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

Спасибо за ответы! В общем ясно, мой текущий способ - единственный...

 

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

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


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

Кстати, совсем забыл про то, что вам не обязательно синхронизировать тактовые частоты. Судя по первому посту, вам нужно синхронизовать генераторы частоты 100Гц. Дык тут все просто, возможны варианты :

1. Измерить расстройку тактовых генераторов в слейве и в генераторе частоты 100Гц, сделать поправку.

2. Запетлевать генератор частоты в 100Гц в слейве, от генератора частоты 100Гц в мастере и потом занулить вход петлевого фильтра.

 

Если будет нужна синхронизация еще и по фазе, то и тут возможны разные варианты %)

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


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

Кстати, совсем забыл про то, что вам не обязательно синхронизировать тактовые частоты. Судя по первому посту, вам нужно синхронизовать генераторы частоты 100Гц. Дык тут все просто, возможны варианты :

1. Измерить расстройку тактовых генераторов в слейве и в генераторе частоты 100Гц, сделать поправку.

2. Запетлевать генератор частоты в 100Гц в слейве, от генератора частоты 100Гц в мастере и потом занулить вход петлевого фильтра.

 

Если будет нужна синхронизация еще и по фазе, то и тут возможны разные варианты %)

Петлевой фильтр это как (я в курсе что это, но конкретно для XC6SLX9 это как)? Это внутри ПЛИС делается на своей логике? Или это делается каким-то блоком внутри Spartan 6 (у меня slx9)?

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


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

Петлевой фильтр это как (я в курсе что это, но конкретно для XC6SLX9 это как)? Это внутри ПЛИС делается на своей логике? Или это делается каким-то блоком внутри Spartan 6 (у меня slx9)?

внутри плис, на своей логике естественно. Как раз тут и потребуется вам NCO генератор.

 

На этом генераторе вы собираете в слейве генератор на 100Гц это подстраиваемый генератор. Из принятой тактовой мастера генерируете 100Гц. Это будет опорный генератор. Затем все тривально, фазовый детектор, интегратор ошибки, петевой фильтр. Ну и настроить это дело %)

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


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

Получается, что Вам требуются генераторы со стабильностью частоты в течение 5 минут не хуже 0.02ppm, это достаточно серьёзные аппараты, никак не KXO-V97. Думаю, что ваш цифровой алгоритм не работает именно из-за естественного разбегания недостаточно стабильных кварцев.

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


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

правда эти 100Гц будут с небольшим джиттером. который будет определяться отношением 100Гц к тактовой частоте, на которой реализован NCO и коэффициентом пересчета.

 

Получается, что Вам требуются генераторы со стабильностью частоты в течение 5 минут не хуже 0.02ppm, это достаточно серьёзные аппараты, никак не KXO-V97. Думаю, что ваш цифровой алгоритм не работает именно из-за естественного разбегания недостаточно стабильных кварцев.

ИМХО в порядке ошиблись. Требуемая стабильность частоты 100Гц = 2мкс/10мс = 200ppm.

 

Из принятой тактовой мастера генерируете 100Гц. Это будет опорный генератор.

а пропустив через интерфейс 100Гц с мастера и используя их как опорный генератор, еще и по фазе генераторы выровняете :)

 

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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