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

 
 
 
Reply to this topicStart new topic
Костян
сообщение Dec 29 2010, 07:03
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



Итак, есть АЦП с LVDS выходом.
Как описать корректно параметр set_input_delay в SDC файле ?
clock на выходе АЦП смещен в центр данных.


з.ы есть одно не понимание - фиттер при своей работе опирается на данные SDC ?
Прикрепленные файлы
Прикрепленный файл  set_input_delay.bmp ( 329.17 килобайт ) Кол-во скачиваний: 32
 
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 29 2010, 07:21
Сообщение #2


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

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



Не надо использовать этот параметр. Правильным способом захвата внешних данных является размещение всех входных триггеров в лапах, что делает input delay для них идентичным и фиксированным, а фаза тактовой частоты подгоняется под этот delay с помощью PLL.
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Dec 29 2010, 08:00
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Считаю, что необходимо делать и то и другое.
К сожалению, по самой теме подсказать не могу.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 29 2010, 08:06
Сообщение #4


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

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



Да простит топикстартер мое любопытство, а зачем делать одновременно и то, и другое?
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Dec 29 2010, 08:14
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Чтобы не ошибиться.

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

PS2: Посоветуйте толковый материал по Time Quest.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 29 2010, 08:47
Сообщение #6


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

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



Если фаза PLL настроена на то, что регистры в лапах - то таймквест будет бессилен, потому что ему для исправления ситуации будет необходимо задержку от лапы до триггера сделать в такт (считая, что задержки от лапы до встроенного триггера почти нет).
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Dec 29 2010, 09:03
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



К сожалению, не могу пока поддержать разговор - с Альтерой подробно не работал, но понимать хочется.
Зайлингс при анализе OFFSET IN/OFFSET OUT учитывает как проходил клок через DCM-ы, сколько их там последовательно включено и как это повлияло на фазу, частоту и джиттер.
Go to the top of the page
 
+Quote Post
Костян
сообщение Dec 29 2010, 09:27
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



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 триггер, но как его задействовать ?

Эскизы прикрепленных изображений
 Р Р€Р С˜Р ВµР Р…ьшено Р Т‘Р С• 81%
Прикрепленное изображение
908 x 797 (74.35 килобайт)
 
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 29 2010, 09:33
Сообщение #9


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

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



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

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

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

Используйте ALTDDIO_IN.
Go to the top of the page
 
+Quote Post
Костян
сообщение Dec 29 2010, 09:57
Сообщение #10


Знающий
****

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

Именно подгоняется ? не рассчитывается ?
И от добавления в проект новых модулей, это фаза не может изменится ?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 29 2010, 10:56
Сообщение #11


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

Группа: Свой
Сообщений: 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 градусов смещения добавить вручную. И измениться она не может, сами посудите: триггеры зафиксированы в лапах, вход частоты тоже фиксирован.
Go to the top of the page
 
+Quote Post

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

 


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


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