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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Управление фазой низкочастотного сигнала., 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
SM
сообщение Mar 6 2014, 19:13
Сообщение #2


Гуру
******

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



А зачем вообще такая тяжелая артиллерия? DCM, реконфигурация... Это банальными счетчиками и триггерами делается (если именно СОЗДАТЬ оба клока надо)

Сделайте два делителя (т.е. счетчика), запустите их на максимальной частоте, какую они потянут (200+ МГц), ну и чтобы она делилась на N для получения 10 МГц, и 2N для 5 МГц. А дальше управляйте начальным значением счетчика одного из делителей (при переходе через ноль другого, более низкочастотного, с фиксированной начальной фазой). При этом можете добавить доп. логики, чтобы резкие изменения никогда не вызывали слишком коротких импульсов, чтобы такие импульсы бланкировались.

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

Только не забудьте пропустить выходной сигнал через триггер (если он не им формируется, а логикой), чтобы его качество соответствовало требованиям к клоку (отсутствие глитчей из-за лог. гонок)
Go to the top of the page
 
+Quote Post
Intekus
сообщение Mar 7 2014, 08:45
Сообщение #3


Местный
***

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



Благодарю за совет!
Цитата(SM @ Mar 6 2014, 23:13) *
А зачем вообще такая тяжелая артиллерия? DCM, реконфигурация...
Если такая точность задания фаз устраивает, то это схемка на десяток строк описания.

Пока не понятно, устраивает ли; априори же хочется побооольше sm.gif
Если дополнить на выходе предложенный Вами вариант DCM'ом, работающим без обратной связи - есть ли при этом какие-нибудь "подводные камни"?
Цитата(SM @ Mar 6 2014, 23:13) *
Это банальными счетчиками и триггерами делается (если именно СОЗДАТЬ оба клока надо)

Да, создавать придётся, входной тактовый - другой частоты.

Цитата(Intekus @ Mar 6 2014, 23:05) *
При этом существует требование воспроизводимости сдвига фаз при включении устройства, при пересборке проекта, а также при переносе прошивки на другой экземпляр устройства.

С учётом этого всю логику формирования тактовых всё-таки необходимо будет после разводки закрепить?


--------------------
...а Сила, Брат - она - в несиловых решениях.
Go to the top of the page
 
+Quote Post
SM
сообщение Mar 7 2014, 08:53
Сообщение #4


Гуру
******

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



Цитата(Intekus @ Mar 7 2014, 12:45) *
С учётом этого всю логику формирования тактовых всё-таки необходимо будет после разводки закрепить?

Только выходные триггеры (2 штуки для двух клоков), где нибудь рядом с местонахождением bufg, чтобы [почти]напрямую разводилось

Насчет DCM - он там лишний, получите все прелести разбросов по PVT - никакой повторяемости. Лучше поставьте микруху грейдом повыше, и сделайте входную частоту делителя повыше. DCM понадобится чтобы сделать быструю частоту на делитель.\

Еще можете добавить точности регулировки, введя инверсию клока для одного из делителей. Только тогда усложнятся констрейны, и больше надо будет фиксировать.
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Mar 7 2014, 09:03
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 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
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 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
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 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
Intekus
сообщение Mar 7 2014, 10:25
Сообщение #9


Местный
***

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



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

Цитата(o_khavin @ Mar 7 2014, 13:11) *
А джиттер - это естественное следствие использования DCM-а. Вопрос не в больше/меньше, а в абсолютных требованиях, о которых ТС умолчал или ещё не думал.

PWT, Pulse Width Time? А то acronymfinder советует "Post Verification Testing" разве что.
И - действительно ли DCM добавляет джиттер, а не, наоборот, стабилизирует период (мне казалось именно второе)? А PLL - ведут себя в этом отношении также?
Цитата(o_khavin @ Mar 7 2014, 13:11) *
А джиттер - это естественное следствие использования DCM-а. Вопрос не в больше/меньше, а в абсолютных требованиях, о которых ТС умолчал или ещё не думал.

Фаза будет подбираться под требование минимума шума оцифровки, а, в итоге, там на графике "пологая долина" или "узкое ущелье" - предположений пока маловато.
Цитата(SM @ Mar 7 2014, 12:53) *
Еще можете добавить точности регулировки, введя инверсию клока для одного из делителей. Только тогда усложнятся констрейны, и больше надо будет фиксировать.

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

Хорошая идея; думаю, разница в полтакта "быстрого" >200 МГц-сигнала между {подаваемым наружу} и {используемым для тактирования внутренней логики, созданном на не-DDR-триггере} в данном конкретном случае окажется некритична. А "инверсный быстрый" можно взять с инверсного выхода того же DCM/PLL, на котором создаётся основной?


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


Местный
***

Группа: Участник
Сообщений: 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
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 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
RobFPGA
сообщение Mar 7 2014, 11:41
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Опять попытка глобально решить задачу кубатуры сферы в море Дирака.

Реализовать задачу TC можно десятком способов - но нужно конкретно знать что будет тактироватся этими клоками, зачем нужно двигать фазу, какие требования к этим изменениям, какова предполагаемая стриктура обработки в FPGA, какой конкретно чип используется - только тогда будет возможно выбрать реализуемое и ПРОСТОЕ решение.

Успехов! Rob.


Go to the top of the page
 
+Quote Post
SM
сообщение Mar 7 2014, 11:41
Сообщение #14


Гуру
******

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



Цитата(o_khavin @ Mar 7 2014, 15:31) *
P.S. Я конечно уважаю Вашу привычку отстаивать свою точку зрения, но зачем уж до абсурда доводить то?


Это не абсурд. Я привык во всех проектах минимизировать количество обработки на высоких частотах, и минимизирвоать количество регионов ПЛИС, региональных клоков (глобальных лучше вообще не применять, куда загнан ВЧ клок), так как это:

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

Итого, уменьшает цену решения, бывает, что в разы. А в "среднем по больнице" - цена определяет, сколько с проекта можно заработать. Я, конечно, понимаю, что бывают отдельные случаи, когда цена пофигу совершенно, и это, может быть, как раз он, но, все же, IMHO, надо всегда стараться удешивить изделие, если оно от этого не потеряет. А не придумывать, как бы сильнее разогреть воздух и опустошить кошелек.
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Mar 7 2014, 11:59
Сообщение #15


Местный
***

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



Цитата(SM @ Mar 7 2014, 15:41) *
Это не абсурд. Я привык во всех проектах минимизировать количество обработки на высоких частотах, и минимизирвоать количество регионов ПЛИС, региональных клоков (глобальных лучше вообще не применять, куда загнан ВЧ клок), так как это:

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

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


Так импульсивно и так малоинформативно. sm.gif
1) ТС уже выбрал чип.
2) 100 МГц для этого чипа не является высокой частотой. На любом спидгрейде.
3) Можно обойтись одним единственным клоком + минимальная логика, которая генерит 10-разрядный паттерн для каждого из 2-х выходов. Размер остальной логики (которая, как я понял, обрабатывает оцифрованные данные) совершенно не зависит от частоты. Достаточно использовать результат её работы 1 раз из 10. К тому же можно даже сэкономить на размере чипа за счёт временного разделения при использовании ограниченных ресурсов, например DSP-блоков.
4) Разница в потреблении будет минимальна, т.к. (сюрприз!) потребление регистров зависит от частоты переключения, а не от частоты клока. Или предлагаете высчитывать блох в разнице потребления DCM-а при работе на разных частотах? Так это ещё вопрос, где будет больше - при одном клоке но 100Мгц или при двух (или сколько их там в Вашем варианте) на 10.

В общем на этом я остановлюсь. Всё что я хотел написать ТС-у, я уже написал, а тратить время на демагогию не охота.

Сообщение отредактировал o_khavin - Mar 7 2014, 12:00
Go to the top of the page
 
+Quote Post

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

 


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


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