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

 
 
> Управление фазой низкочастотного сигнала., Virtex
Intekus
сообщение Mar 6 2014, 19:05
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 4-03-08
Из: Москва
Пользователь №: 35 621



Xilinx Virtex 5. Задача: создать 2 сигнала 10 МГц и 5 МГц с возможностью менять их взаимную фазу (произвольно, или, хотя бы, ступенчато) в процессе работы. Какой относительно какого сдвигать - без разницы. Внутри ПЛИС переходы между доменами данных частот осуществляются через синхронизаторы.

Идеально - менять фазу без перерывов в тактовых. Так что вариант динамического реконфигурирования PLL/DCM ("останов-реконфигурирование-пуск") - нежелателен.
С учётом того, что обе частоты будут, в том числе, выводиться из ПЛИС наружу - после разводки и до начала экспериментов по сдвигу фаз тактовых порождающие их PLL/DCM нужно закрепить - верно?
Динамический сдвиг фазы DCM ограничен 10 нс, что много меньше периода, в PLL динамического сдвига фазы нет (только реконфигурирование). Каковы плюсы и минусы расширения диапазона регулировки DCM добавлением на его вход линии задержки на триггерах, тактируемых, допустим, 200 МГц? Разводку предполагается закрепить, неравномерность задержек между триггерами роли для экспериментов не играет.
Кроме того: минимальная входная частота DCM - 32 МГц, если только не использовать один лишь CLKFX; а использовать только него можно лишь при условии отсутствия обратной связи. Есть ли в работе без обратной связи какие-то минусы? Делить на DCM входную частоту (например 100 МГц) не хочется, так как в этом случае (как я понимаю) фаза выходных (допустим) 5 МГц, относительно 10 (созданных из исходных 100 МГц на расположенной рядом PLL) окажется непредсказуема от запуска к запуску. При этом существует требование воспроизводимости сдвига фаз при включении устройства, при пересборке проекта, а также при переносе прошивки на другой экземпляр устройства.

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


--------------------
...а Сила, Брат - она - в несиловых решениях.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
o_khavin
сообщение Mar 7 2014, 09:03
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(Intekus @ Mar 6 2014, 23:05) *
Xilinx Virtex 5. Задача: создать 2 сигнала 10 МГц и 5 МГц с возможностью менять их взаимную фазу (произвольно, или, хотя бы, ступенчато) в процессе работы. Какой относительно какого сдвигать - без разницы. Внутри ПЛИС переходы между доменами данных частот осуществляются через синхронизаторы.

Идеально - менять фазу без перерывов в тактовых. Так что вариант динамического реконфигурирования PLL/DCM ("останов-реконфигурирование-пуск") - нежелателен.
С учётом того, что обе частоты будут, в том числе, выводиться из ПЛИС наружу - после разводки и до начала экспериментов по сдвигу фаз тактовых порождающие их PLL/DCM нужно закрепить - верно?
Динамический сдвиг фазы DCM ограничен 10 нс, что много меньше периода, в PLL динамического сдвига фазы нет (только реконфигурирование). Каковы плюсы и минусы расширения диапазона регулировки DCM добавлением на его вход линии задержки на триггерах, тактируемых, допустим, 200 МГц? Разводку предполагается закрепить, неравномерность задержек между триггерами роли для экспериментов не играет.
Кроме того: минимальная входная частота DCM - 32 МГц, если только не использовать один лишь CLKFX; а использовать только него можно лишь при условии отсутствия обратной связи. Есть ли в работе без обратной связи какие-то минусы? Делить на DCM входную частоту (например 100 МГц) не хочется, так как в этом случае (как я понимаю) фаза выходных (допустим) 5 МГц, относительно 10 (созданных из исходных 100 МГц на расположенной рядом PLL) окажется непредсказуема от запуска к запуску. При этом существует требование воспроизводимости сдвига фаз при включении устройства, при пересборке проекта, а также при переносе прошивки на другой экземпляр устройства.

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


Основной вопрос в том, каковы требования к стабильности и джиттеру этих низкочастотных сигналов. Если требования не слишком высоки, то можно и на счётчиках сделать, с выводом через DDR-регистры в I/O cell-ах. Для воспроизводимости положения сигналов относительно друг друга в этом случае достаточно будет закрепить эти самые I/O cell-ы, что произойдет естественным путём при назначении конкретных пинов для вывода сигналов (в ucf-файле, к примеру).


Цитата(SM @ Mar 7 2014, 12:53) *
Насчет DCM - он там лишний, получите все прелести разбросов по PVT - никакой повторяемости. Лучше поставьте микруху грейдом повыше, и сделайте входную частоту делителя повыше. DCM понадобится чтобы сделать быструю частоту на делитель.\

Т.е. DCM понадобится в любом случае. sm.gif
Go to the top of the page
 
+Quote Post
SM
сообщение Mar 7 2014, 09:06
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(o_khavin @ Mar 7 2014, 13:03) *
Основной вопрос в том, каковы требования к стабильности и джиттеру этих низкочастотных сигналов. Если требования не слишком высоки, то можно и на счётчиках сделать, с выводом через DDR-регистры в I/O cell-ах.


IMHO заметной разницы в джиттере при работе через DCM или через регистры не будет. А то джиттер и меньше даже будет, DCM не способствует повышению качества клока.

И DDR регистры тоже не нужны. Если зафиксировать точку ввода клоков в bufg (конкретно какой bufg и триггер, с которого он туда идет), то при выводе из глобального клока в I/O задержка (точнее разность задержек двух клоков) так и так будет повторяемая и фиксированная
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Mar 7 2014, 09:11
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(SM @ Mar 7 2014, 13:06) *
IMHO заметной разницы в джиттере при работе через DCM или через регистры не будет. А то джиттер и меньше даже будет, DCM не способствует повышению качества клока.

И DDR регистры тоже не нужны. Если зафиксировать точку ввода клоков в bufg (конкретно какой bufg и триггер, с которого он туда идет), то при выводе из глобального клока в I/O задержка (точнее разность задержек двух клоков) так и так будет повторяемая и фиксированная

DDR-регистр даёт двукратное падение требований тайминга, если речь идёт про формирование низкочастотных клоков при помощи счётчика от одного высокочастотного клока. А частота этого высокочастотного клока чем больше будет, тем лучше с точки зрения количества шагов регулировки.
А джиттер - это естественное следствие использования DCM-а. Вопрос не в больше/меньше, а в абсолютных требованиях, о которых ТС умолчал или ещё не думал.

Сообщение отредактировал o_khavin - Mar 7 2014, 09:13
Go to the top of the page
 
+Quote Post
SM
сообщение Mar 7 2014, 09:31
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(o_khavin @ Mar 7 2014, 13:11) *
DDR-регистр даёт двукратное падение требований тайминга,


А как потом завести с выхода DDR-регистра (он ведь в I/O) этот клок в bufg, да еще с повторяемостью? У человека этими клоками домены внутри ПЛИС тактируются.
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Mar 7 2014, 10:46
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(SM @ Mar 7 2014, 13:31) *
А как потом завести с выхода DDR-регистра (он ведь в I/O) этот клок в bufg, да еще с повторяемостью? У человека этими клоками домены внутри ПЛИС тактируются.

Это вообще не нужно, достаточно использовать внутри один и тот же материнский (высокочастотный) клок. Как вариант, в комплекте с enable-ом + multicycle в констрейнтах. Разве что ТС собирается ставить внутри FPGA какие-то эксперименты над переходом из домена в домен, но такого я в его сообщении не видел.

Цитата(Intekus @ Mar 7 2014, 14:25) *
И - действительно ли DCM добавляет джиттер, а не, наоборот, стабилизирует период (мне казалось именно второе)? А PLL - ведут себя в этом отношении также?

DCM стабилизирует период на продолжительном отрезке, но добавляет мгновенный джиттер. Про PLL не помню уже. В любом случае, смотрите документацию перед тем как.
Моя идея безотносительна к этим вопросам, она просто состоит в конструировании периода и относительного сдвига двух медленных клоков представляя их как данные, генерируемые на высокочастотном клоке. А использование DDR-регистра на выходе просто позволяет обменять смягчение тайминга вдвое на некоторое усложнение логики (ведь надо генерить отдельно чётные и нечётные полупериоды). И кстати, посмотрите по слову OSERDES, там можно сделать сериализацию 6 к одному и даже 10 к одному, что открывает неплохие перспективы. sm.gif

Сообщение отредактировал o_khavin - Mar 7 2014, 10:46
Go to the top of the page
 
+Quote Post
SM
сообщение Mar 7 2014, 11:21
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(o_khavin @ Mar 7 2014, 14:46) *
Это вообще не нужно, достаточно использовать внутри один и тот же материнский (высокочастотный) клок.

Вот это крайне маловероятно, так как для точности регулировки фазы придется его разгонять под максимум ГЕНЕРАТОРА КЛОКОВ, а вот всю схему запустить на этом максимуме маловероятно. Домены IMHO приятнее для решения этого вопроса. Одно дело планировать схему под 10 МГц, другое дело под 200-300-...

Цитата(Intekus @ Mar 7 2014, 14:25) *
А какие именно констрейны понадобятся кроме объявления синтезированного на логике тактового, как, собственно, тактового?

1) объявить эти клоки асинхронными и задать периоды.
2) объявить расположение bufg и выходных триггеров на переходе в глобальные клоковые цепи.
3) если решите сделать мультиплектор/инвертор клока перед одним из делителей, то тоже его привязать к месту и региональному клоку.

Цитата(Intekus @ Mar 7 2014, 14:25) *
Хорошая идея; думаю, разница в полтакта "быстрого" >200 МГц-сигнала между {подаваемым наружу} и {используемым для тактирования внутренней логики, созданном на не-DDR-триггере} в данном конкретном случае окажется некритична. А "инверсный быстрый" можно взять с инверсного выхода того же DCM/PLL, на котором создаётся основной?


IMHO в данном контексте использование DDR-триггера совершенно не нужно, это сложный монструозный путь. Проще (по логике, то есть ее количеству), и лучше, сделать программируемую инверсию клока на ВХОДЕ одного из двух делителей, вот вам и смещение его фазы на пол-такта быстрого клока. И полная гарантия повторяемости, и клоки сразу введены в bufg, и не надо бояться нескольких доменов - ну да, переходы, но зато логика куда компактнее, чем если ее заводить на сотнях МГц.

PLL очищает клок от джиттера, если, конечно, он хуже джиттера самой PLL, и происходит это из-за фильтра после фазового детектора в цепи управления ГУН.
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Mar 7 2014, 11:31
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(SM @ Mar 7 2014, 15:21) *
Вот это крайне маловероятно, так как для точности регулировки фазы придется его разгонять под максимум ГЕНЕРАТОРА КЛОКОВ, а вот всю схему запустить на этом максимуме маловероятно. Домены IMHO приятнее для решения этого вопроса. Одно дело планировать схему под 10 МГц, другое дело под 200-300-...

IMHO в данном контексте использование DDR-триггера совершенно не нужно, это сложный монструозный путь. Проще (по логике, то есть ее количеству), и лучше, сделать программируемую инверсию клока на ВХОДЕ одного из двух делителей, вот вам и смещение его фазы на пол-такта быстрого клока. И полная гарантия повторяемости, и клоки сразу введены в bufg, и не надо бояться нескольких доменов - ну да, переходы, но зато логика куда компактнее, чем если ее заводить на сотнях МГц.


Во первых, я не видел упоминаний ТСа по требуемой точности. Во вторых, OSERDES 10:1 при опорном клоке в 100 Mгц даст шаг 1ns или 100 шагов на период целевого клока. В третьих, на 100Мгц в Virtex5 можно сделать чуть менее чем всё что угодно.
P.S. Я конечно уважаю Вашу привычку отстаивать свою точку зрения, но зачем уж до абсурда доводить то?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Intekus   Управление фазой низкочастотного сигнала.   Mar 6 2014, 19:05
- - SM   А зачем вообще такая тяжелая артиллерия? DCM, реко...   Mar 6 2014, 19:13
|- - Intekus   Благодарю за совет! Цитата(SM @ Mar 6 201...   Mar 7 2014, 08:45
|- - SM   Цитата(Intekus @ Mar 7 2014, 12:45) С учё...   Mar 7 2014, 08:53
|- - Intekus   Цитата(SM @ Mar 7 2014, 12:53) Насчет DCM...   Mar 7 2014, 10:25
||- - SM   Цитата(o_khavin @ Mar 7 2014, 15:31) P.S....   Mar 7 2014, 11:41
||- - o_khavin   Цитата(SM @ Mar 7 2014, 15:41) Это не абс...   Mar 7 2014, 11:59
||- - SM   Цитата(o_khavin @ Mar 7 2014, 15:59) потр...   Mar 7 2014, 12:23
|- - Intekus   Благодарю SM за подробное описание требуемых конст...   Mar 7 2014, 13:53
- - RobFPGA   Приветствую! Опять попытка глобально решить з...   Mar 7 2014, 11:41


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 02:59
Рейтинг@Mail.ru


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