Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Описание контрейнов для приема данных с АЦП
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Костян
Итак, есть АЦП с LVDS выходом.
Как описать корректно параметр set_input_delay в SDC файле ?
clock на выходе АЦП смещен в центр данных.


з.ы есть одно не понимание - фиттер при своей работе опирается на данные SDC ?
DmitryR
Не надо использовать этот параметр. Правильным способом захвата внешних данных является размещение всех входных триггеров в лапах, что делает input delay для них идентичным и фиксированным, а фаза тактовой частоты подгоняется под этот delay с помощью PLL.
Shtirlits
Считаю, что необходимо делать и то и другое.
К сожалению, по самой теме подсказать не могу.
DmitryR
Да простит топикстартер мое любопытство, а зачем делать одновременно и то, и другое?
Shtirlits
Чтобы не ошибиться.

PS: Если вдруг, почему-то фитер забудет засунуть регистры куда надо или при развитии схемы их упаковка станет невозможной, то поможет таймквест.

PS2: Посоветуйте толковый материал по Time Quest.
DmitryR
Если фаза PLL настроена на то, что регистры в лапах - то таймквест будет бессилен, потому что ему для исправления ситуации будет необходимо задержку от лапы до триггера сделать в такт (считая, что задержки от лапы до встроенного триггера почти нет).
Shtirlits
К сожалению, не могу пока поддержать разговор - с Альтерой подробно не работал, но понимать хочется.
Зайлингс при анализе OFFSET IN/OFFSET OUT учитывает как проходил клок через DCM-ы, сколько их там последовательно включено и как это повлияло на фазу, частоту и джиттер.
Костян
QUOTE (DmitryR @ Dec 29 2010, 08:21) *
Правильным способом захвата внешних данных является размещение всех входных триггеров в лапах, что делает input delay для них идентичным и фиксированным, а фаза тактовой частоты подгоняется под этот delay с помощью PLL.

1. Так клок выставлен уже на середину данных, разве без PLL нельзя обойтись ? (второй аргумент - у меня их нету свободных).
2. Не получается впихнуть входной триггер, работающий по обеим фронтам в лапу. 05.gif Кристалл SIII . Регистр сдвига входной след вида:
CODE
        //----------------------------
        always @(posedge adc_clk0)
            data_ch_shift_p <= {adc_data_ch , data_ch_shift_p[((ADC_BIT/2)-1):1]};    
        //----------------------------
        always @(posedge adc_clk180)
            data_ch_shift_n <= {adc_data_ch , data_ch_shift_n[((ADC_BIT/2)-1):1]};


Старший бит регистра data_ch_shift_p и data_ch_shift_n пытался поместить в пад, но одновременно ставится только один


Судя по ресурсам (см. рисунок в аттаче), в паде есть DDR триггер, но как его задействовать ?
DmitryR
Цитата(Костян @ Dec 29 2010, 15:27) *
1. Так клок выставлен уже на середину данных, разве без PLL нельзя обойтись ?

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

Цитата(Костян @ Dec 29 2010, 15:27) *
2. Не получается впихнуть входной триггер, работающий по обеим фронтам в лапу.

Используйте ALTDDIO_IN.
Костян
QUOTE (DmitryR @ Dec 29 2010, 10:33) *
Нет, потому что время от лапы до входа данных триггера и время от лапы до тактового входа триггера различается, и сильно. Ну то есть при небольших частотах это конечно работает, но только пока означенная разница во времени составляет где-то не более трети такта.

Пасиб, правильно ли я понимаю, что нельзя с помощью никаких констрейнов задать так, чтобы фиттер выровнял эти задержки автоматически ?
Это задержка будет одинакова, если входной триггер размещать в паде (т.е не нужно использование PLL)?


QUOTE
Используйте ALTDDIO_IN.

Добавил рисунок в пред. свой пост.
Без магафункций с помощью HDL описания как-нибудь можно задействовать ALTDDIO_IN (стараюсь всегда делать переносимый код)?

QUOTE (DmitryR @ Dec 29 2010, 08:21) *
а фаза тактовой частоты подгоняется под этот delay с помощью PLL.

Именно подгоняется ? не рассчитывается ?
И от добавления в проект новых модулей, это фаза не может изменится ?
DmitryR
Цитата(Костян @ Dec 29 2010, 15:57) *
Пасиб, правильно ли я понимаю, что нельзя с помощью никаких констрейнов задать так, чтобы фиттер выровнял эти задержки автоматически ?

Теоретически можно, если сделать так, как вы сделали вначале. Но тут вопрос - сможет он так сделать или не сможет (ведь все, что он может делать - варьировать задержки, гоняя триггер по кристаллу). А так, как я вам втолковываю - он точно сможет.

Цитата(Костян @ Dec 29 2010, 15:57) *
Это задержка будет одинакова, если входной триггер размещать в паде (т.е не нужно использование PLL)?

Повторяю: нет. Да возьмите наконец ChipView и посмотрите.

Цитата(Костян @ Dec 29 2010, 15:57) *
Без магафункций с помощью HDL описания как-нибудь можно задействовать ALTDDIO_IN (стараюсь всегда делать переносимый код)?

Можно думаю, только переносимости коду это мало добавляет - придется переписывать не HDL, а констрейны.

Цитата(Костян @ Dec 29 2010, 15:57) *
Именно подгоняется ? не рассчитывается ?
И от добавления в проект новых модулей, это фаза не может изменится ?

Расчитывается автоматически, надо только PLL указать source syncronous mode. Правда она в таком режиме кажется расчитывает на синфазность данных и клока, то есть надо будет еще 90 градусов смещения добавить вручную. И измениться она не может, сами посудите: триггеры зафиксированы в лапах, вход частоты тоже фиксирован.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.