реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> синхронизировать тактовые частоты двух ПЛИС, два Xilinx Spartan 6
AVR
сообщение Mar 2 2013, 22:12
Сообщение #1


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



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

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

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

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

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

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


--------------------
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Mar 3 2013, 06:23
Сообщение #2


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



QUOTE (AVR @ Mar 3 2013, 02:12) *
Важный момент: после синхронизации ПЛИС должны быть разъединены, поэтому надо чтобы 5 минут потом сохранялось равенство тактовых частот, только вот установить еще надо их равными.

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


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
iosifk
сообщение Mar 3 2013, 07:26
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(AVR @ Mar 3 2013, 02:12) *
Необходимо решить задачу синхронизации двух ПЛИС Spartan 6.


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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
AVR
сообщение Mar 3 2013, 07:57
Сообщение #4


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Lmx2315 @ Mar 3 2013, 10:23) *
..это не возможно, вы можете синхронизировать только "часы" которые за какое-то ограниченное время потом разбегутся на какую-то ограниченную величину.
Пусть разбегаются. Мне нужно, чтобы пока они соединены - они были синхронны. После разъединения, допустимо чтобы они разбежались на пару микросекунд в течение пяти минут.
Цитата(Lmx2315 @ Mar 3 2013, 10:23) *
Тактовые частоты после разрыва синхронизации расходяться сразу же . И это при том что я так и не понял как это вы собрались синхронизировать тактовые генераторы KXO-V97 посредством DCM .
Я так понимаю что от Вас ответа уже получить я не смогу, ведь очевидно что же что второстепенная ПЛИС будет тактироваться при помощи DCM, который в свою очередь тактируется генератором.

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

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

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


--------------------
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Mar 3 2013, 08:15
Сообщение #5


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



QUOTE (AVR @ Mar 3 2013, 11:57) *
Пусть разбегаются. Мне нужно, чтобы пока они соединены - они были синхронны. После разъединения, допустимо чтобы они разбежались на пару микросекунд в течение пяти минут.

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

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


не понял.

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


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

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


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


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 3 2013, 08:35
Сообщение #6


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



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

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

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

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


--------------------
Go to the top of the page
 
+Quote Post
AVR
сообщение Mar 3 2013, 08:59
Сообщение #7


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



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

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

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

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


--------------------
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Mar 3 2013, 09:14
Сообщение #8


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



QUOTE (AVR @ Mar 3 2013, 12:59) *
Я в курсе что опорники никак. Мне надо нивелировать эффект ухода частота хотя бы на 5 минут работы схемы с отключенной синхронизацией. Пока кабель подключен - мой алгоритм уже позволяет держать синхронность, просто уход пока что большой, слишком быстро уползает.

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

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

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

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

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


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 3 2013, 09:16
Сообщение #9


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(AVR @ Mar 3 2013, 02:59) *
Я в курсе что опорники никак. Мне надо нивелировать эффект ухода частота хотя бы на 5 минут работы схемы с отключенной синхронизацией. Пока кабель подключен - мой алгоритм уже позволяет держать синхронность, просто уход пока что большой, слишком быстро уползает.

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

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

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

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

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


--------------------
Go to the top of the page
 
+Quote Post
AVR
сообщение Mar 3 2013, 09:29
Сообщение #10


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



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

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


--------------------
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 3 2013, 11:02
Сообщение #11


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



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

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


--------------------
Go to the top of the page
 
+Quote Post
AVR
сообщение Mar 3 2013, 11:08
Сообщение #12


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(des00 @ Mar 3 2013, 15:02) *
Кстати, совсем забыл про то, что вам не обязательно синхронизировать тактовые частоты. Судя по первому посту, вам нужно синхронизовать генераторы частоты 100Гц. Дык тут все просто, возможны варианты :
1. Измерить расстройку тактовых генераторов в слейве и в генераторе частоты 100Гц, сделать поправку.
2. Запетлевать генератор частоты в 100Гц в слейве, от генератора частоты 100Гц в мастере и потом занулить вход петлевого фильтра.

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

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


--------------------
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 3 2013, 11:13
Сообщение #13


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(AVR @ Mar 3 2013, 05:08) *
Петлевой фильтр это как (я в курсе что это, но конкретно для XC6SLX9 это как)? Это внутри ПЛИС делается на своей логике? Или это делается каким-то блоком внутри Spartan 6 (у меня slx9)?

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

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


--------------------
Go to the top of the page
 
+Quote Post
Timmy
сообщение Mar 3 2013, 11:15
Сообщение #14


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Получается, что Вам требуются генераторы со стабильностью частоты в течение 5 минут не хуже 0.02ppm, это достаточно серьёзные аппараты, никак не KXO-V97. Думаю, что ваш цифровой алгоритм не работает именно из-за естественного разбегания недостаточно стабильных кварцев.
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 3 2013, 11:46
Сообщение #15


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



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

Цитата(Timmy @ Mar 3 2013, 05:15) *
Получается, что Вам требуются генераторы со стабильностью частоты в течение 5 минут не хуже 0.02ppm, это достаточно серьёзные аппараты, никак не KXO-V97. Думаю, что ваш цифровой алгоритм не работает именно из-за естественного разбегания недостаточно стабильных кварцев.

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

Цитата(des00 @ Mar 3 2013, 05:13) *
Из принятой тактовой мастера генерируете 100Гц. Это будет опорный генератор.

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


--------------------
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 20:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.03677 секунд с 7
ELECTRONIX ©2004-2016