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

 
 
> Сдвиг фазы такта в Virtex4
maxics
сообщение Oct 26 2011, 18:28
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 16-11-09
Пользователь №: 53 649



Защелкиваю данные с АЦП (16 бит). Есть подозрения, что данные сдвинуты относительно такта. Пробовал инвертировать такт, не помогло. Слышал, что можно сдвигать фронт, прописывая условия в UCF файле. Подскажите как это сделать?

Сообщение отредактировал maxics - Oct 26 2011, 18:29
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DmitryR
сообщение Oct 27 2011, 06:17
Сообщение #2


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(maxics @ Oct 26 2011, 21:28) *
Есть подозрения, что данные сдвинуты относительно такта.

Подозрения - это плохо, в таких случаях надо иметь уверенность. Поэтому вы напишите, как у вас все тактируется (какой марки ADC и откуда берут тактовые частоты ADC и FPGA), тогда вам можно будет ответить, как сделать это правильно. Потому что прежде, чем выполнить рекомендации из предыдущего поста вам все-таки придется понять фазовое соотношение.
Go to the top of the page
 
+Quote Post
maxics
сообщение Oct 27 2011, 06:49
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 16-11-09
Пользователь №: 53 649



Цитата(DmitryR @ Oct 27 2011, 10:17) *
Подозрения - это плохо, в таких случаях надо иметь уверенность. Поэтому вы напишите, как у вас все тактируется (какой марки ADC и откуда берут тактовые частоты ADC и FPGA), тогда вам можно будет ответить, как сделать это правильно. Потому что прежде, чем выполнить рекомендации из предыдущего поста вам все-таки придется понять фазовое соотношение.


ADC - LTC2208. Такт АЦП 100 МГц с кварца. Затем с АЦП такт заводится сначала на одну ПЛИС (Spartan3), а затем на VIrtex4 LX25. По этому такту защелкиваются данные с АЦП. Вижу появление доп. гармоник оцифрованного сигнала. На входе их нет. Подозрение на неправильное защелкивание.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Oct 27 2011, 13:30
Сообщение #4


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(maxics @ Oct 27 2011, 10:49) *
Затем с АЦП такт заводится сначала на одну ПЛИС (Spartan3), а затем на VIrtex4 LX25.

Чувствую, будет проще если вы схему загрузите. А то уж больно хитро как-то.
Go to the top of the page
 
+Quote Post
Genn
сообщение Oct 27 2011, 17:50
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 48
Регистрация: 14-04-05
Пользователь №: 4 146



Цитата(DmitryR @ Oct 27 2011, 17:30) *
Чувствую, будет проще если вы схему загрузите. А то уж больно хитро как-то.


Согласен, взглянуть бы на схему (достаточно функциональную) в части организации тактирования АЦП и ПЛИС и на спектр оцифрованного сигнала (какое значение SFDR получается?), потому как наличие спектральных составляющих, не относящихся к самому сигналу может быть вызвано некачественным тактовым сигналом на самом АЦП (либо по причине характеристик самого генератора, либо по причине каких-либо промахов в схемотехнике распределения тактовой частоты).
Практически уверен, что ПЛИС здесь не причем (подбором настроек, указанных в ответе Boris_TS и выбором фронта вполне можно получить подходящие фазовые соотношения), если конечно отсчеты АЦП защелкиваются регистрами, расположенными в блоках IOB (обязательное условие стабильной работы).
Есть ещё момент, который нужно иметь ввиду: Генераторы ВЧ - сигналов зачастую совместно с полезным сигналом на выходе имеют еще и гармоники этого сигнала, которые не являются признаком несоответствующей работы схемы.
Go to the top of the page
 
+Quote Post
maxics
сообщение Oct 28 2011, 13:24
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 16-11-09
Пользователь №: 53 649



Выкладываю схему тактирования и FFT. Такт 100 МГц. Рис.2 - fft в нашем случае. На входе Sin 19 МГц. Видны собственные гармоники, которые ведут себя неадекватно. При изменении уровня входного сигнала, гармоники изменяются непропорционально. Должно быть как на рис.3. доп. "палки" - гармоники генератора.
Пробовали понижать тактовую частоту. До 70 МГц все в норме.

Сообщение отредактировал maxics - Oct 28 2011, 14:37
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Genn
сообщение Oct 28 2011, 18:45
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 48
Регистрация: 14-04-05
Пользователь №: 4 146



Цитата(maxics @ Oct 28 2011, 17:24) *
Выкладываю схему тактирования и FFT. Такт 100 МГц. Рис.2 - fft в нашем случае. На входе Sin 19 МГц. Видны собственные гармоники, которые ведут себя неадекватно. При изменении уровня входного сигнала, гармоники изменяются непропорционально. Должно быть как на рис.3. доп. "палки" - гармоники генератора.
Пробовали понижать тактовую частоту. До 70 МГц все в норме.


Основное, что бросается в глаза - это используемый в схеме генератор тактового сигнала и путь, проходимый тактовым сигналом из АЦП к ПЛИС, регистрирующей отсчеты (Virtex 4). Если честно такое решение (прохождение тактового сигнала из АЦП) выглядит нелогичным ( должно быть АЦП - Virtex4 - Spartan3), но фатальным оно не является. Для стабильной повторяемости результатов разводки проектов для ПЛИС предлагаю следующий обратить внимание на следующие моменты:
1. Spartan3
1.1. Тактовый сигнал обязательно должен быть заведен на специальные контакты GCLK
1.2. Поскольку петли для выравнивания фазы с помощью DCM скорее всего нет, для стабильной повторяемости результатов трассировки тактовый сигнал на выходе Spartan3 рекомендую выполнить с использованием выходного DDR-регистра в IOB, и уже с выхода регистра сигнал будет поступать на выходные контакты. (К сведению: в Spartan3 для использования DDR - регистра придется подключать DCM для формирования сигналов clk0 и clk180, кстати здесь можно и поиграться с фазой тактового сигнала 0->(clk0,clk180), Pi/2->(clk90,clk270), Pi->(clk180,clk0), 3Pi/2->(clk270,clk90), где в скобках указано подключение тактовых к DDR-регистру ).
2. Virtex4
2.1. Тактовый сигнал обязательно должен быть заведен на специальные контакты (глобального или регионального тактового сигнала). Замечание: Если используются входы для регионального тактового сигнала, необходимо убедиться, что входные (данные из АЦП) контакты принадлежат одному из банков, имеющих подключение к контакту регионального тактового сигнала сигналу.
2.2. поскольку в промежуточной ПЛИС (Sprtan3) будет использована DCM, то для упрощения работы в Virtex4 желательно использовать просто глобальный буфер BUFG (при использовании DCM, а она будет 2-ой в цепочке, а поэтому, придется заниматься ее инициализацией).
2.3. еще раз повторюсь - обязательное использование входных регистров в блоках IOB для защелкивания данных из АЦП.

Что касается используемого генератора GK-154. Подобные генераторы предназначены только для тактирования цифровых схем. Ожидать качественных характеристик от АЦП при его использовании не приходится: качество сигнала на его выходе как раз и может служить причиной той картины что представлена на 1-ом спектре (виден сигнал, 2-я гармоника, а наивысшая из ненужных палок - около -75 дБ, причем спектр не разваливается). Кстати, при понижении тактовой частоты какой генератор использовался? Конечно параметры и GK-154 можно улучшить: поставить на его выходе полосовой кварцевый фильтр, но относительная нестабильность этого генератора улучшена быть не может.

Еще одной из причин появления подобных продуктов может быть непроработанная топология платы, отсутствие должной развязки по питанию между АЦП и другими функциональными узлами. При настройке рекомендую в качестве тактового генератора использовать внешний лабораторный (в качестве его можно не сомневаться, а заодно и исключите влияние GK-154 как непосредственно через тактовый сигнал, так и через питание).
Go to the top of the page
 
+Quote Post
maxics
сообщение Oct 28 2011, 20:29
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 16-11-09
Пользователь №: 53 649



Цитата(Genn @ Oct 28 2011, 22:45) *
Основное, что бросается в глаза - это используемый в схеме генератор тактового сигнала и путь, проходимый тактовым сигналом из АЦП к ПЛИС, регистрирующей отсчеты (Virtex 4). Если честно такое решение (прохождение тактового сигнала из АЦП) выглядит нелогичным ( должно быть АЦП - Virtex4 - Spartan3), но фатальным оно не является. Для стабильной повторяемости результатов разводки проектов для ПЛИС предлагаю следующий обратить внимание на следующие моменты:
1. Spartan3
1.1. Тактовый сигнал обязательно должен быть заведен на специальные контакты GCLK
1.2. Поскольку петли для выравнивания фазы с помощью DCM скорее всего нет, для стабильной повторяемости результатов трассировки тактовый сигнал на выходе Spartan3 рекомендую выполнить с использованием выходного DDR-регистра в IOB, и уже с выхода регистра сигнал будет поступать на выходные контакты. (К сведению: в Spartan3 для использования DDR - регистра придется подключать DCM для формирования сигналов clk0 и clk180, кстати здесь можно и поиграться с фазой тактового сигнала 0->(clk0,clk180), Pi/2->(clk90,clk270), Pi->(clk180,clk0), 3Pi/2->(clk270,clk90), где в скобках указано подключение тактовых к DDR-регистру ).
2. Virtex4
2.1. Тактовый сигнал обязательно должен быть заведен на специальные контакты (глобального или регионального тактового сигнала). Замечание: Если используются входы для регионального тактового сигнала, необходимо убедиться, что входные (данные из АЦП) контакты принадлежат одному из банков, имеющих подключение к контакту регионального тактового сигнала сигналу.
2.2. поскольку в промежуточной ПЛИС (Sprtan3) будет использована DCM, то для упрощения работы в Virtex4 желательно использовать просто глобальный буфер BUFG (при использовании DCM, а она будет 2-ой в цепочке, а поэтому, придется заниматься ее инициализацией).
2.3. еще раз повторюсь - обязательное использование входных регистров в блоках IOB для защелкивания данных из АЦП.

Что касается используемого генератора GK-154. Подобные генераторы предназначены только для тактирования цифровых схем. Ожидать качественных характеристик от АЦП при его использовании не приходится: качество сигнала на его выходе как раз и может служить причиной той картины что представлена на 1-ом спектре (виден сигнал, 2-я гармоника, а наивысшая из ненужных палок - около -75 дБ, причем спектр не разваливается). Кстати, при понижении тактовой частоты какой генератор использовался? Конечно параметры и GK-154 можно улучшить: поставить на его выходе полосовой кварцевый фильтр, но относительная нестабильность этого генератора улучшена быть не может.

Еще одной из причин появления подобных продуктов может быть непроработанная топология платы, отсутствие должной развязки по питанию между АЦП и другими функциональными узлами. При настройке рекомендую в качестве тактового генератора использовать внешний лабораторный (в качестве его можно не сомневаться, а заодно и исключите влияние GK-154 как непосредственно через тактовый сигнал, так и через питание).


Спасибо за развернутый ответ. При понижении частоты использовали лабораторный генератор Agilent. Какой генератор посоветуете для тактирования АЦП?
Go to the top of the page
 
+Quote Post
Genn
сообщение Oct 29 2011, 15:12
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 48
Регистрация: 14-04-05
Пользователь №: 4 146



Цитата(maxics @ Oct 29 2011, 00:29) *
Спасибо за развернутый ответ. При понижении частоты использовали лабораторный генератор Agilent. Какой генератор посоветуете для тактирования АЦП?


Обратите внимание на продукцию ОАО "МОРИОН" (http://morion.com.ru/rus/oscillators/), например модель ГК118-ТС для установки на плату. Требуемая частота получается путем умножения (с помощью дискретной логики) с последующей фильтрацией нужной гармоники, используя кварцевый фильтр. Получившийся сигнал остается привести в соответствие с требуемым уровнем. Вот и всё. Генератор будет, конечно, дороговат (порядка 10000 - 15000 руб), но результат будет положительным (не забываем про правильную организацию питания на плате). Вообще подобные генераторы отлично подходят на роль системных опорников, где от одного генератора запитываются несколько потребителей, а для одного потребителя его использование всё же несколько расточительно.

Цитата(Boris_TS @ Oct 29 2011, 00:26) *
Если мне не изменяет память, то в Spartan3 есть DLL, который может криво/коряво (с точки зрения jitter'а) заниматься компенсацией фазы. Даже если петля обратной связи не была предусмотрена, то, по идеи, её можно сделать на любой подходящей свободной ножке, использовав и OBUF, и IBUF оной. В этом случае схема более или менее нормальной компенсации может выглядеть следующим образом:
IN_CLK -> IBUF -> BUFG* -> DLL.CLKIN
IO_BF_CLK -> IBUF -> BUFG* -> DLL.CLKBF
DLL.CLK0/DLL.CLK180 -> BUFG -> ODDR -> OBUF -> IO_BF_CLK
DLL.CLK0/DLL.CLK180 -> BUFG -> ODDR -> OBUF -> OUT_V4_CLK
* - Если возможно отказаться от этих BUFG, то от них обязательно необходимо отказаться (именно со Spartan3 не работал - поэтому не знаю надо ли их использовать в этом месте или нет) - чем меньше лишних элементов, тем значительно меньше jitter и отклонение фазы выходного clock'а относительно входного.

Упоминание проблемы джиттера на частоте 100 МГц были бы уместно, если бы шло обсуждение формирования тактового сигнала для АЦП, а не для использования в обсуждаемом контексте. В нашем случае величина джиттера значительно меньше чем диапазон "setup...Hold" для триггеров внутри ПЛИС, а кроме того при разводке и проверке на выполнение временных ограничений, джиттер, порождаемый DCM и BUFG уже учтен в значениях "setup/hold".
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- maxics   Сдвиг фазы такта в Virtex4   Oct 26 2011, 18:28
- - Boris_TS   Для начала Вам необходимо прочитать о constraint...   Oct 26 2011, 19:12
|- - maxics   Цитата(Boris_TS @ Oct 26 2011, 22:12) Для...   Oct 31 2011, 08:23
|- - DmitryR   Вам сначала необходимо зафиксировать фазу частоты ...   Oct 31 2011, 09:16
|- - maxics   Если я хочу сдвинуть только один бит, например 6-й...   Oct 31 2011, 10:02
|- - Genn   Цитата(maxics @ Oct 31 2011, 13:02) Если ...   Oct 31 2011, 17:31
- - Джеймс   Цитата(maxics @ Oct 27 2011, 10:49) Подоз...   Oct 27 2011, 07:41
|- - maxics   Цитата(Джеймс @ Oct 27 2011, 11:41) Анало...   Oct 27 2011, 08:01
- - Boris_TS   Цитата(Genn @ Oct 28 2011, 22:45) 1.2. По...   Oct 28 2011, 20:26
- - Boris_TS   Цитата(Genn @ Oct 29 2011, 19:12) Упомина...   Oct 29 2011, 17:21
- - maxics   Цитата(Boris_TS @ Oct 29 2011, 21:21) Что...   Oct 29 2011, 18:36


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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 11:40
Рейтинг@Mail.ru


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