|
задание OFFSET OUT, как контролировать минимальные значения? |
|
|
|
Mar 12 2009, 12:01
|
Знающий
   
Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410

|
Добрый день! Никак не могу понять как правильно написать этот констрейн. Прошу направить на путь истинный  Задача: Выдача данных с Virtex4 на ЦАП. Режим SYSTEM_SYNCHRONOUS. Клок на плис и на цап приходит в одной фазе с клочного дистрибьютера. Тактовая частота 192 Мгц (период соответсвенно ~ 5,2 нс). Данные должны быть достоверны во временном окне 0,8-4,37 нс относительно положительного клока. По всем документам которые прочитал (wp237 и т.д.) нужно задать примерно такой констрен: TIMEGRP "DAC_PAD_GRP" OFFSET = OUT 0.8 ns AFTER "DAC_Tx_CLK_P" TIMEGRP "DAC_RG_GRP" RISING; OFFSET = OUT по сути проверяет условие: временя прохождения данных до выходного пада от регистров + временя прохождения клока от входного пада до регистров < меньше требумой. У меня эта сумма получается больше периода, порядка 8,6-9,1 нс. Подвигать ее влево-вправо не проблема, вопрос в другом: как правильно задать констрейн в случае, когда время прохождения сигнала от входного до выходного пада больше периода? Если прибавить период или два, т.е написать OFFSET = OUT 6 ns или OFFSET = OUT 11.2 ns, то окно валидности данных проверяется только по одной границе. Как многоуважемые гуру поступают в таком случае?
|
|
|
|
|
 |
Ответов
|
Mar 12 2009, 13:18
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Цитата(disel @ Mar 12 2009, 16:01)  У меня эта сумма получается больше периода, порядка 8,6-9,1 нс. Могу ошибаться, но мне кажется эта цифра достаточно странной для Virtex-4... Поэтому задам ряд наводящих вопросов: 1. Используете ли Вы выходные триггеры по линиям данных для DAC? 2. Используете ли Вы DCM для DAC_Tx_CLK_P ? 3. Какой путь проходит DAC_Tx_CLK_P ? К сожалению по OFFSET OUT подсказать не могу... т.к. в моих проектах особой пользы от этого constraint не было: частота выходных сигналов до 100МГц - т.е. можно без подстраховки, а время задержки получалось постоянным и определялось только параметрами ПЛИС; из-за того что CLK у меня проходили по следующему пути: IBUFG->(DLL) ->BUFG->C(OFF) - использовались только специально предназначенные для CLK линии связи, а данные с выхода OFF сразу (с 0 задержкой) попадают на OBUF. А мнения по правильному применению OFFSET OUT сам бы с удовольствием послушал...
|
|
|
|
|
Mar 12 2009, 13:57
|
Знающий
   
Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410

|
Цитата(DmitryR @ Mar 12 2009, 16:42)  Почитайте WP237. OFFSET OUT нужен только тогда, когда между последним триггером и пэдом есть логика. Но сейчас так никто не делает. Поэтому по памяти (лень перечитывать) синтезатор умеет сам ставить фазу DCM на основании OFFSET OUT. Однако, мне лично спокойнее поставить ее самому. Читал, не помогло. Безо всякой логикой задержка от триггера до выходного пада получается больше 3 нс, т.е. требования не выполняются. Крутить фазу DCM никакой необходимости нет, я же написал что могу двигать фазу внешними средствами. К тому же кроме джиттера это ничего не изменит. Хотя конечно интерестно узнать как заставить синтезатор делать это. Однако это не есть ответ на мой вопрос. Двигать фазу с помощью DCM возможно только в пределах такта, у меня задержка больше такта. Цитата(DmitryR @ Mar 12 2009, 16:54)  Первое: тот джиттер, что добавит DCM (150 ps) при таких частотах глубоко безразличен. Что касается "клочного дистрибьютора": если вы можете ее двигать отдельно для ЦАП и для FPGA - двигайте там, отличный вариант. 150 пс это 2% от 5,2 нс. не так чтобы совсем мало. И самое обидное, что это нужно делать чтобы удовлетворить кривизну софта. Вопрос про то как ограничить время прохождения сигнала от входа до выхода. Например как задать следующее условие: min < временя прохождения данных до выходного пада от регистров + временя прохождения клока от входного пада до регистров < max
|
|
|
|
|
Mar 12 2009, 14:24
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Цитата(disel @ Mar 12 2009, 16:57)  Однако это не есть ответ на мой вопрос. Двигать фазу с помощью DCM возможно только в пределах такта, у меня задержка больше такта. Задержки больше такта не бывает  Нарисуйте на бумаге и поймете, что при тактовой в 5ns например задержка в 8ns - то же самое, что задержка в 3 ns. Цитата(disel @ Mar 12 2009, 16:57)  min < временя прохождения данных до выходного пада от регистров + временя прохождения клока от входного пада до регистров < max OFFSET OUT AFTER < X < OFFSET OUT BEFORE. Однако я повторю, что констрейн такой вы поставить можете, но средств его выполнить у синтезатора при отсутствии DCM не будет никаких, так как задержка от триггера в пэде до ножки фиксирована. Если же вы триггеры не поставите в пэды ... То не знаю что будет, я так не извращался.
|
|
|
|
|
Mar 12 2009, 14:35
|
Знающий
   
Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410

|
Цитата(DmitryR @ Mar 12 2009, 17:24)  Задержки больше такта не бывает  Нарисуйте на бумаге и поймете, что при тактовой в 5ns например задержка в 8ns - то же самое, что задержка в 3 ns. OFFSET OUT AFTER < X < OFFSET OUT BEFORE Еще раз. Это Х у меня получается около 9 нс. И мне нужно его ограничить с двух сторон, сверху и снизу. Например в границах 8,6-9,1 нс. Сверху я могу отграничить констрейном OUT AFTER. Из wp237 про него : TQ + TClock2Out + TClock <= Toffset_OUT_AFTER. Т.е. это значит Х < 9,1 нс. Вопрос как ограничить снизу? Т.е. как задать условие X > 8.6.Констрейн OFFSET OUT BEFORE проверет условие: TQ + TClock2Out + TClock <= TPeriod – Toffset_OUT_BEFORE Он не может быть больше периода. Трегера в падах конечно. И данные в цап правильно попадают. НО!!! Хочется же один раз написать констрейн и больше не думать про это, и не проверять каждый раз ручками. А как заставить синтезатор крутить фазу DCM? Где про это можно прочитать?
|
|
|
|
Сообщений в этой теме
disel задание OFFSET OUT Mar 12 2009, 12:01 DmitryR Не скажу за гуру, но я в этих случаях поступаю так... Mar 12 2009, 13:13     DmitryR Цитата(disel @ Mar 12 2009, 17:35) Трегер... Mar 12 2009, 14:49      disel Цитата(DmitryR @ Mar 12 2009, 17:49) Забе... Mar 12 2009, 15:08       DmitryR Цитата(disel @ Mar 12 2009, 18:08) Не оче... Mar 12 2009, 15:13       Gothard Цитата(disel @ Mar 12 2009, 18:08) DCM мо... Mar 12 2009, 15:19   Gothard Цитата(disel @ Mar 12 2009, 16:57) Безо в... Mar 12 2009, 15:09    disel Цитата(Gothard @ Mar 12 2009, 18:09) каже... Mar 12 2009, 15:43     Boris_TS Есть идейка, не совсем то, что Вам нужно, но может... Mar 12 2009, 17:05 disel 1. Выходные регистры конечно используются
2. DCM н... Mar 12 2009, 13:44 DmitryR Цитата(disel @ Mar 12 2009, 16:44) 2. DCM... Mar 12 2009, 13:54 RobFPGA Приветствую!
...
min < временя прохождения... Mar 12 2009, 14:54 RobFPGA Приветствую!
Вот только что сделал тест для п... Mar 12 2009, 16:44 disel Цитата(RobFPGA @ Mar 12 2009, 19:44) Вот ... Mar 12 2009, 19:21  Gothard Цитата(disel @ Mar 12 2009, 22:21) У меня... Mar 13 2009, 07:05 RobFPGA Приветствую!
Поменял speed на -10. Тут конечн... Mar 12 2009, 20:47 disel Rob, спасибо за проект!
Выяснилась интереснта... Mar 13 2009, 07:42 Gothard Цитата(disel @ Mar 13 2009, 10:42) как DC... Mar 13 2009, 08:48  disel Цитата(Gothard @ Mar 13 2009, 11:48) Може... Mar 13 2009, 10:54   Gothard Цитата(disel @ Mar 13 2009, 13:54) У меня... Mar 13 2009, 11:23    disel Цитата(Gothard @ Mar 13 2009, 14:23) Вот ... Mar 13 2009, 11:38  Boris_TS Цитата(Gothard @ Mar 13 2009, 12:48) согл... Mar 13 2009, 11:59   disel Цитата(Boris_TS @ Mar 13 2009, 14:59) Обр... Mar 13 2009, 13:13    Boris_TS Цитата(disel @ Mar 13 2009, 17:13) Все та... Mar 13 2009, 13:52     disel Цитата(Boris_TS @ Mar 13 2009, 16:52) А в... Mar 13 2009, 14:15 Singer Была такая проблема - дикие времена (иногда даже о... Mar 14 2009, 16:52 disel Цитата(Singer @ Mar 14 2009, 19:52) Была ... Mar 15 2009, 08:36
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|