Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Синхронизация PLL альтеры
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
alexPec
Добрый день. В связи с использованием внешнего генератора вместо внутреннего ПЛЛ возникла проблема. Раньше было так:
Внешний генератор на 16 МГц тактировал ПЛЛ, из нее получал 5,1 МГц и все необходимое. Сейчас из-за сильного фазового шума ПЛЛ использую внешний тактовый на 5,1 МГц. Блин, а надо внутреннюю часть синхронизировать с этими 5,1МГц, причем через плл, там другие частоты используются, кратные и некратные. А на плл нельзя подать меньше 10М. Как быть? Неужели нет способа синхронизироваться от низкой частоты???
vadimuzzz
а кристалл-то какой? в 3-м циклоне от 5МГц и выше
alexPec
Цитата(vadimuzzz @ Jan 31 2011, 10:20) *
а кристалл-то какой? в 3-м циклоне от 5МГц и выше


Третий. Че-то визард говорит что не может, низкая исх. частота, посмотрю еще. Ну в любом случае, есть еще один частотный вход, вообще 3 МГц, и от него тоже надо синхронизироваться. Варианты какие есть?
vadimuzzz
разверните задачу поподробнее, может вам никакой PLL и не нужен
sazh
Цитата(alexPec @ Jan 31 2011, 10:32) *
Варианты какие есть?


Внешний PECL генератор.
alexPec
Цитата
разверните задачу поподробнее, может вам никакой PLL и не нужен


Задача такая. Есть АЦП, с него валятся отсчеты около 3 МГц. Они фильтруются, прореживаются в 8 раз. Генератор внешний, поскольку с внутренним плл большой фазовый шум. И есть блок преобразования фурье, который должен работать на частоте ровно в 250 раз выше (т.е. (3/8)*250 МГц), иначе выборки начинают либо пропадать, либо 1 выборка заталкивается в фурье 2 раза. А это критично. Фазовые соотношения можно подогнать, а вот частоту ровно держать надо. Кроме того внешний генератор может подстраиваться в пределах +-10 кГц. Соответственно частота фурье тоже должна перестраиваться.
С внутренним плл-ом сначала все было сделано, и все было отлично (на тестах -исходных данных из памяти) пока дело до реального сигнала не дошло. Там выяснилось что надо внешний стабильный генератор. А теперь с потрохами его синхронизировать надо.

Цитата
Внешний PECL генератор


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

vadimuzzz
как насчет такого варианта: FFT молотит на какой-то частоте >(3/8)*250, но не непрерывно, а пачками. тогда синхронизировать под 3 МГц только кадры надо, простенький конечный автомат.
и по поводу внутреннего PLL - частота АЦП довольно низкая, почему джиттер так влияет - разрядность большая?
DmitryR
Да тут даже не автомат, а просто FIFO двуклоковое. С одной стороны 3 МГц от ADC, с другой - 100 от произвольного источника. С одной стороны раз в 8 тактов падает слово, с другой стороны по half-full FIFO (что будет говорить о том, что кадр лежит в FIFO полностью) FFT забирает кадр.
vadimuzzz
Цитата(DmitryR @ Jan 31 2011, 15:50) *
С одной стороны раз в 8 тактов падает слово, с другой стороны по half-full FIFO (что будет говорить о том, что кадр лежит в FIFO полностью) FFT забирает кадр.

а это не КА? sm.gif
ViKo
А что бы не взять генератор на 12 MHz, поделить на 4 и подать на АЦП, а неподеленную - в ПЛИС. Наверное, фазовый шум не сильно ухудшится? И поделить частоту прямо в ПЛИС?

DmitryR
Конечно ухудшится. На порядок примерно, а то и на два, если внешняя PLL хорошая стоит. Никто с ПЛИС на ADC тактовую не подает, если SNR дорог.
ViKo
Цитата(DmitryR @ Jan 31 2011, 14:26) *
Конечно ухудшится. На порядок примерно, а то и на два, если внешняя PLL хорошая стоит. Никто с ПЛИС на ADC тактовую не подает, если SNR дорог.

Так не будет никакой PLL, чисто логика. Только из-за помех по питанию будут скакать пороги переключения, но для такой низкой тактовой частоты вряд ли это приведет к ощутимому джиттеру.
vadimuzzz
Цитата(ViKo @ Jan 31 2011, 19:26) *
но для такой низкой тактовой частоты вряд ли это приведет к ощутимому джиттеру.

SNR у АЦП - конь о 2 копытах, надо учитывать разрядность
alexPec
Цитата(vadimuzzz @ Jan 31 2011, 12:40) *
как насчет такого варианта: FFT молотит на какой-то частоте >(3/8)*250, но не непрерывно, а пачками. тогда синхронизировать под 3 МГц только кадры надо, простенький конечный автомат.

Да в блоке FFT тормоза нет нигде (ну типа энейбла какого-нибудь), надо ставить везде, потом снова тестить - времени уйдет. В принципе сейчас так сделано: и ПЛИС, и DDS, которая АЦП клокает, питаются от одного стабильного хорошего генератора 16МГц. Надо подумать, может выставить частоты DDS и PLL плисы можно, чтоб ровно совпадали.

Цитата
и по поводу внутреннего PLL - частота АЦП довольно низкая, почему джиттер так влияет - разрядность большая?


Разрядность 16 бит, но беда не в этом (работает нормально при размахе сигнала +-255), а в том, что расстояние между частотами в спектре 300 Гц. С заявленным джитером 250 ps (вроде) от плисы созвездия qam16 даже не просматривалось. А с ддсом все красиво. Вот картинку выложил если интересно.

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


Вряд ли не повлияет. У плисы например regular io джиттер 300 ps - это уже катастрофа в моем случае. Он я так понимаю и обусловлен сдвигом порогов переключения из-за помех по питанию например.
ViKo
Цитата(alexPec @ Jan 31 2011, 15:41) *
Разрядность 16 бит... Вряд ли не повлияет. У плисы например regular io джиттер 300 ps - это уже катастрофа в моем случае. Он я так понимаю и обусловлен сдвигом порогов переключения из-за помех по питанию например.

Похоже, вы правы. При частоте 3MHz (333ns) джиттер в 300ps составляет чуть меньше 1/1000. Для 10-разрядного АЦП это, может быть, и подошло бы...
Из области "бредовых идей" - запустите АЦП от генератора 6MHz (если позволит), и прореживайте на 16.
DmitryR
Цитата(alexPec @ Jan 31 2011, 16:41) *
Надо подумать, может выставить частоты DDS и PLL плисы можно, чтоб ровно совпадали.

Чтобы ответить на этот вопрос надо понять, зачем у вас стоит DDS. Наверное вы перестраиваете частоту (иначе, чтобы просто получить фиксироанные чистые 3 МГц можно было бы поставить гораздо более простой и дешевый чип) - тогда внутренней PLL FPGA не получится. Придется ставить внешнюю PLL и умножать эти 3 МГц, чтобы подать в FPGA.


Цитата(alexPec @ Jan 31 2011, 16:41) *
Да в блоке FFT тормоза нет нигде (ну типа энейбла какого-нибудь), надо ставить везде, потом снова тестить - времени уйдет.

Да ладно, что там тестить - весь блок, который данные закачивает завернуть в if(enable) и все IMHO.
vadimuzzz
Цитата(alexPec @ Jan 31 2011, 19:41) *
Да в блоке FFT тормоза нет нигде (ну типа энейбла какого-нибудь), надо ставить везде, потом снова тестить - времени уйдет.

дело не в тормозах, дело в том, что после оцифровки джиттер уже по барабану. да и частоту можно в широких пределах крутить - запас по быстродействию у вас явно есть. лучше день потерять, потом за пять минут долететь sm.gif
//не OFDM часом делаете?
sazh
Цитата(alexPec @ Jan 31 2011, 16:41) *
одного стабильного хорошего генератора 16МГц.

Берем генератор на 24 МГЦ.
Через буфера с нулевой задержкой и на ацп и на плис с Pll.
С выхода ацп данные сопровождаемые клоком на плис (выбираем каждый 8 отсчет)
des00
Цитата(sazh @ Jan 31 2011, 13:02) *
(выбираем каждый 8 отсчет)

да за такое канделябром %)
sazh
Цитата(des00 @ Feb 1 2011, 07:42) *
да за такое канделябром %)


Канделябр как инструмент - это мне ближе. От интеллигента желательно вежливое пояснение ошибочного мнения.
(Я контору раскрутил на годовую подписку Компоненты и Технологии)
ViKo
Цитата(sazh @ Feb 1 2011, 08:41) *
От интеллигента желательно вежливое пояснение ошибочного мнения.

Как лицо, похожее на интеллигента, считаю, что выбрасывать отсчеты "на ветер" неразумно. Куда лучше их использовать для фильтрации, взять, хотя бы, среднее из восьми. Делается очень легко.
Для топикстартера
а назвать АЦП можете?
alexPec
Всем спасибо!!! Столько ответов, есть над чем подумать

Цитата(ViKo @ Feb 1 2011, 10:44) *
Как лицо, похожее на интеллигента, считаю, что выбрасывать отсчеты "на ветер" неразумно. Куда лучше их использовать для фильтрации, взять, хотя бы, среднее из восьми. Делается очень легко.
Для топикстартера
а назвать АЦП можете?

1. Отсчеты как раз фильтрую, потом прореживаю. Есть это 2.Так вроде называл, AD7625.

Цитата
Берем генератор на 24 МГЦ.
Через буфера с нулевой задержкой и на ацп и на плис с Pll.
С выхода ацп данные сопровождаемые клоком на плис (выбираем каждый 8 отсчет)


А перестраивать +-10 кГц как? А если dds - тогда уже не кратно...

Цитата
//не OFDM часом делаете?

Его родного!

Цитата
Чтобы ответить на этот вопрос надо понять, зачем у вас стоит DDS. Наверное вы перестраиваете частоту (иначе, чтобы просто получить фиксироанные чистые 3 МГц можно было бы поставить гораздо более простой и дешевый чип) - тогда внутренней PLL FPGA не получится. Придется ставить внешнюю PLL и умножать эти 3 МГц, чтобы подать в FPGA.


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

Или все-таки энейбл какой-нибудь.

В этом случае вопрос о синхронизации. Если сигнал, идущий с одним клоком, пересинхронизировать на другой, то все ясно: пара-тройка триггеров и метастабильности нет, а когда данные пересинхронизируем (т.е. данные идут с одним клоком, а выбираем с другим) тут ведь какой-то сигнал пожет в одном тригере защелкнуться, а какой-то нет. В итоге -ложный отсчет. Как тут быть?




vadimuzzz
Цитата(alexPec @ Feb 1 2011, 16:40) *
В этом случае вопрос о синхронизации. Если сигнал, идущий с одним клоком, пересинхронизировать на другой, то все ясно: пара-тройка триггеров и метастабильности нет, а когда данные пересинхронизируем (т.е. данные идут с одним клоком, а выбираем с другим) тут ведь какой-то сигнал пожет в одном тригере защелкнуться, а какой-то нет. В итоге -ложный отсчет. Как тут быть?

двухклоковая FIFO. синхронизаторы у ней по управляющим сигналам стоят, этого достаточно.
ViKo
В этом АЦП есть CLK, CNV, DCO. Есть из чего сделать все, как надо.
Генератор внешний получается, так он и был внешний sm.gif
Частоту преобразования задавать CNV с ПЛИС, а CLK будет более высокой, как требует ФАПЧ в ПЛИС. Данные в ПЛИС загонять по DCO, а внутри на высокой частоте защелкивать с учетом состояния DCO.

des00
Цитата(alexPec @ Feb 1 2011, 04:40) *
1. Отсчеты как раз фильтрую, потом прореживаю. Есть это 2.

частоту оцифровки увеличьте и полифазником фильтраните, будет лучше во всех отношениях.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.