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

 
 
> задание OFFSET OUT, как контролировать минимальные значения?
disel
сообщение Mar 12 2009, 12:01
Сообщение #1


Знающий
****

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



Добрый день!

Никак не могу понять как правильно написать этот констрейн. Прошу направить на путь истинный smile.gif

Задача:
Выдача данных с 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, то окно валидности данных проверяется только по одной границе.

Как многоуважемые гуру поступают в таком случае?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
disel
сообщение Mar 13 2009, 07:42
Сообщение #2


Знающий
****

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



Rob, спасибо за проект!

Выяснилась интереснтая особенность: я вставлял DCM в свой проект ручками как DCM_BASE. При установленном нулевом сдвиге никакой компенсации синтезатор не делал. Попробывал вставить DCM сгенерированный коре генератором, он вставляет DCM_ADV. Действительно появился сдвиг. В чем дело пока понять не могу.
Хотя и со сдвигом в заданные рамки проект у меня все равно не вписался. Нагрузка на клок достаточно большая.

Впрочем поставленную задачу это все равно не решает.

Резюмируя данную тему можно сделать следующие выводы:
1. Констерйн OFFSET OUT может работать только со внутренним DCM или на невысоких частотах.
2. Констерйнов способных задать ограничения при работе с внешним клок менеджером не существует. Единственный путь - лочить разводку и руками проверять пределы.

Отрицательный результат конечно тоже результат, но как то грустно.

Цитата(Gothard @ Mar 13 2009, 10:05) *
Сколько у вас экземпляров работает?

3

Цитата(Gothard @ Mar 13 2009, 10:05) *
А что может КАРДИНАЛЬНО изменяться от трассировки к трассировке если у вас триггера в IOB? Клок разведется по другой ветке? сколько это - 100пс?

Может измениться нагрузка на клок при увеличении схемы. Соответсвенно вырастут задержки. Это может быть и не 100 пс. В любом случае хотелось бы чтобы это услови проверялось автоматически. Ради этого и была поднята данная тема.

Цитата(Gothard @ Mar 13 2009, 10:05) *
Извиняюсь за настойчивость по "впариванию" DCM и ответ не на тот вопрос, который вы задаете, но я вижу проблему и хочется помочь. Я ранее приводил 3 пункта и ИМХО вам бы проверить что первые 2 удовлетворяются без использования DCM.
Да - есть кривость софта (или это какое-то намерение ксилинкса, т.к. они минимум даже в даташите не написали), но, действительно, задержки приводятся МАКСИМАЛЬНЫЕ и вы можете контролировать только их. Максимум - это один крайний случай. Есть второй - минимальная задержка (да - ту которую вы хотите контролировать), но увы такое ощущение, что вам это не удастся (хотя буду рад, если кто-то опишет способ).

Да, к сожаления ответа на свой вопрос я так и получил.

Цитата(Gothard @ Mar 13 2009, 10:05) *
Без DCM вы можете "влипнуть" на каком-нибудь экземпляре устройства, даже если сейчас все работает (как я посчитал ранее - запас у вас не велик). Задержка зависит от температуры, напряжения и даже (что может быть самое главное) экземпляра кристалла. Использование DCM позволит вам нивелировать разброс задержки распространения клока на кристалле, что в моем понимании не мало. Осциллографом, да и тем более на одном экземпляре, вы не проверите крайние случаи - можно только опираться на цифры, которые приводит производитель.

P.S.: DCM решит только проблему по первому пункту, который я описывал (т.е. разброс времени распространения клока по кристаллу). Разброс выходного буфера особо не скомпенсировать...вот только если ток можно посильнее на выходе задать, но надо смотреть на согласование...если использовать DCI вроде бы неплохо выходит.

P.P.S: А уж как поставите DCM smile.gif - задавайте на нем какой надо сдвиг и "вписывайтесь" хотя бы по максимальному OFFSET.


Я никак не пойму: как DCM может нивелировать разброс задержки на кристалле и влияние температуры? Без DCM у меня разброс 0,5 нс. Сейчас поставил DCM - разброс по прежнему 0,5 нс. И от температуры она будет также зависит как и без DCM. Способ компенсировать это влияние был предложен Boris_TS.
Go to the top of the page
 
+Quote Post
Gothard
сообщение Mar 13 2009, 08:48
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 16-02-07
Из: Долгопрудный
Пользователь №: 25 406



Цитата(disel @ Mar 13 2009, 10:42) *
как DCM может нивелировать разброс задержки на кристалле и влияние температуры?

Может быть не понятно, что я имею ввиду? Задержка распространения клока на кристале зависит не только от нагрузки, но и как я уже выше писал, от температуры, напряжения (в данном случае ядра), экземпляра кристалла. Первые две зависимости дают разброс в задержке во время работы (плис нагрелся, открыли окно на улицу и т.п. - задержка изменилась). 3-я зависимость наблюдается от экземпляра к экземпляру кристалла. DCM подстраивает фазу (точнее свою внутреннюю линию задержки) так, чтобы эта задержка была постоянной с каким-то допуском (во времени и от экземпляра к экземпляру) => значит нивелирует разброс. В том числе и при изменении нагрузки на клок.
Разбросы, которые вы видите (в отчете трассировки, насколько я понимаю) - это то, что дает специфика разводки клока - на одни триггера синхросигнал подан с одной ветки, на другие - с другой ветки. Хотя 0,5нс это как-то много....Вот тут OFFSET_OUT действительно может пригодиться.
Цитата(disel @ Mar 13 2009, 10:42) *
Способ компенсировать это влияние был предложен Boris_TS.

согласен, что так лучше (так еще будет в некоторой мере скомпенсирован разброс выходного буфера ПЛИСа), но насколько я вас понял у вас плата этого не позволит

P.S. для сигналов есть еще ограничение MAX_SKEW (на максимальный разброс) - может быть также поможет в сочетании с OFFSET_OUT? Если MAX_SKEW наложить на клок, тактирующий триггера - может быть у вас не будет такого большого разброса между ними?

В этом плане еще один плюс дает DCM - если к выходу DCM подключать только выходные триггера (надо только внутри плиса грамотно сделать передачу между клоковыми доменами) - то нагрузка на цепь клока будет постоянная - от трассировки к трассровке изменения будут незначительны (если будут).

Еще раз прошу извинения за настойчивость с DCM, но кажется, что именно это вам и надо.

Сообщение отредактировал Gothard - Mar 13 2009, 08:40
Go to the top of the page
 
+Quote Post
disel
сообщение Mar 13 2009, 10:54
Сообщение #4


Знающий
****

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



Цитата(Gothard @ Mar 13 2009, 11:48) *
Может быть не понятно, что я имею ввиду? Задержка распространения клока на кристале зависит не только от нагрузки, но и как я уже выше писал, от температуры, напряжения (в данном случае ядра), экземпляра кристалла. Первые две зависимости дают разброс в задержке во время работы (плис нагрелся, открыли окно на улицу и т.п. - задержка изменилась). 3-я зависимость наблюдается от экземпляра к экземпляру кристалла. DCM подстраивает фазу (точнее свою внутреннюю линию задержки) так, чтобы эта задержка была постоянной с каким-то допуском (во времени и от экземпляра к экземпляру) => значит нивелирует разброс. В том числе и при изменении нагрузки на клок.
Разбросы, которые вы видите (в отчете трассировки, насколько я понимаю) - это то, что дает специфика разводки клока - на одни триггера синхросигнал подан с одной ветки, на другие - с другой ветки. Хотя 0,5нс это как-то много....Вот тут OFFSET_OUT действительно может пригодиться.

Но ведь ISE считает максимальное задержку для худших условий? Если в даташите например написано что какой нибудь Tiopi = 1,28 нс, то больше он быть не может. Если не так, то получается временной анализатор показывает расстояние до Луны или цены на апельсины в Африке?
А еще есть констрейн TEMPERATURE. Должен же ксалинкс его учитывать, раз его можно задавать?
Т.е. максимальную задержку оцененить можно. Нужно оценить минимальную, в этом и сложность. Понятно что при выччислении OFFSET OUT минимум это ноль.

Насколько эффективно DCM нивилирует разброс зависит от того, какой величины этот разброс. И как он зависит от температуры, питания и т.д. Данных по ксалинксу у меня к сожалению нет. Если скажите где можно почитать, буду очень благодарен. Попадались данные по отечетвенным БИС. Нестабильность была в 4 знаке после запятой. Может все не так плохо?

У меня разброс составляет 0,466 нс, если точнее. А мне нужно попасть в окошко 1,6 нс. Запас в принципе есть. А вообще термоцикл покажет smile.gif

Цитата(Gothard @ Mar 13 2009, 11:48) *
согласен, что так лучше (так еще будет в некоторой мере скомпенсирован разброс выходного буфера ПЛИСа), но насколько я вас понял у вас плата этого не позволит

Ну переделывать плату будем, можно об этом подумать будет.

Цитата(Gothard @ Mar 13 2009, 11:48) *
P.S. для сигналов есть еще ограничение MAX_SKEW (на максимальный разброс) - может быть также поможет в сочетании с OFFSET_OUT? Если MAX_SKEW наложить на клок, тактирующий триггера - может быть у вас не будет такого большого разброса между ними?

В этом плане еще один плюс дает DCM - если к выходу DCM подключать только выходные триггера (надо только внутри плиса грамотно сделать передачу между клоковыми доменами) - то нагрузка на цепь клока будет постоянная - от трассировки к трассровке изменения будут незначительны (если будут).

У меня фанаут на клок 940, не гуманно такие ограничения на него накладыать. Это же весь дизайн зажмет. Лучше два клоковых буфера завести: для выходных буферов и для всего остального. На выходной клок наложить MAX_SKEW, тогда действительно разброс наверное можно уменьшить. Спасибо за совет.

Цитата(Gothard @ Mar 13 2009, 11:48) *
Еще раз прошу извинения за настойчивость с DCM, но кажется, что именно это вам и надо.

Не убедили. Я не являюсь противником DCM, но в данном случае его применение имеет больше минусов, чем плюсов.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- disel   задание OFFSET OUT   Mar 12 2009, 12:01
- - DmitryR   Не скажу за гуру, но я в этих случаях поступаю так...   Mar 12 2009, 13:13
- - Boris_TS   Цитата(disel @ Mar 12 2009, 16:01) У меня...   Mar 12 2009, 13:18
|- - DmitryR   Цитата(Boris_TS @ Mar 12 2009, 16:18) 1. ...   Mar 12 2009, 13:42
|- - disel   Цитата(DmitryR @ Mar 12 2009, 16:42) Почи...   Mar 12 2009, 13:57
|- - DmitryR   Цитата(disel @ Mar 12 2009, 16:57) Однако...   Mar 12 2009, 14:24
||- - disel   Цитата(DmitryR @ Mar 12 2009, 17:24) Заде...   Mar 12 2009, 14:35
||- - 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
||- - 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


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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 07:15
Рейтинг@Mail.ru


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