|
|
  |
Описание контрейнов для приема данных с АЦП, Timequest параметр set_input_delay |
|
|
|
Dec 29 2010, 07:03
|
Знающий
   
Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059

|
Итак, есть АЦП с LVDS выходом. Как описать корректно параметр set_input_delay в SDC файле ? clock на выходе АЦП смещен в центр данных. з.ы есть одно не понимание - фиттер при своей работе опирается на данные SDC ?
|
|
|
|
|
Dec 29 2010, 09:27
|
Знающий
   
Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059

|
QUOTE (DmitryR @ Dec 29 2010, 08:21)  Правильным способом захвата внешних данных является размещение всех входных триггеров в лапах, что делает input delay для них идентичным и фиксированным, а фаза тактовой частоты подгоняется под этот delay с помощью PLL. 1. Так клок выставлен уже на середину данных, разве без PLL нельзя обойтись ? (второй аргумент - у меня их нету свободных). 2. Не получается впихнуть входной триггер, работающий по обеим фронтам в лапу.  Кристалл 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 триггер, но как его задействовать ?
Эскизы прикрепленных изображений
 РЈРСеньшено Р Т‘Р С• 81%
908 x 797 (74.35 килобайт)
|
|
|
|
|
|
Dec 29 2010, 09:33
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Цитата(Костян @ Dec 29 2010, 15:27)  1. Так клок выставлен уже на середину данных, разве без PLL нельзя обойтись ? Нет, потому что время от лапы до входа данных триггера и время от лапы до тактового входа триггера различается, и сильно. Ну то есть при небольших частотах это конечно работает, но только пока означенная разница во времени составляет где-то не более трети такта. Цитата(Костян @ Dec 29 2010, 15:27)  2. Не получается впихнуть входной триггер, работающий по обеим фронтам в лапу. Используйте ALTDDIO_IN.
|
|
|
|
|
Dec 29 2010, 09:57
|
Знающий
   
Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059

|
QUOTE (DmitryR @ Dec 29 2010, 10:33)  Нет, потому что время от лапы до входа данных триггера и время от лапы до тактового входа триггера различается, и сильно. Ну то есть при небольших частотах это конечно работает, но только пока означенная разница во времени составляет где-то не более трети такта. Пасиб, правильно ли я понимаю, что нельзя с помощью никаких констрейнов задать так, чтобы фиттер выровнял эти задержки автоматически ? Это задержка будет одинакова, если входной триггер размещать в паде (т.е не нужно использование PLL)? QUOTE Используйте ALTDDIO_IN. Добавил рисунок в пред. свой пост. Без магафункций с помощью HDL описания как-нибудь можно задействовать ALTDDIO_IN (стараюсь всегда делать переносимый код)? QUOTE (DmitryR @ Dec 29 2010, 08:21)  а фаза тактовой частоты подгоняется под этот delay с помощью PLL. Именно подгоняется ? не рассчитывается ? И от добавления в проект новых модулей, это фаза не может изменится ?
|
|
|
|
|
Dec 29 2010, 10:56
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Цитата(Костян @ 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 градусов смещения добавить вручную. И измениться она не может, сами посудите: триггеры зафиксированы в лапах, вход частоты тоже фиксирован.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|