|
задание 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, 19:21
|
Знающий
   
Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410

|
Цитата(RobFPGA @ Mar 12 2009, 19:44)  Вот только что сделал тест для проверки. 3 регистра (шириной 8 бит) включены цепочкой ->InReg->MidlReg->OutReg-> Clk завел через DCM. пока CLKOUT_PHASE_SHIFT=NONE задал
NET "Clk" TNM_NET = Clk; TIMESPEC TS_Clk = PERIOD "Clk" 200 MHz HIGH 50%; TIMEGRP "tg_dou" OFFSET = OUT 0.8 ns AFTER "Clk";
Естественно для 4vlx15-12 получил ошибку в PR. В post MAP TimeAnalisys ошибка для tg_dou = -1.4 ns при этом вижу что DCM дает только -2.4 ns .
Ставлю DCM. mode CLKOUT_PHASE_SHIFT =FIXED, PHASE_SHIFT=-180 ~ -3.5 ns Все проходит без проблем и без ошибок. - Худший вариант в группе для tg_dou = +0.05 ns. Лучший = +0.27 ns При этом в post PR TimeAnalisys вижу что DCM дает уже -5.65 ns
Так что мне кажется что особых танцев с бубнами тут и не нужно Вы можете выложить весь проект? Может у меня просветление наступит. Не понимаю почему у меня такой длинный путь. Вроде все то же. Правда у меня не 12, а только 10 спидгрейд. DCM тоже пробывал. Но в целом это не решает проблемы. У меня нет проблем с времянкой, существующая разводка кристалла меня полностью устраивает. Все работает. Безо всякого DCM. Я только хочу чтобы ISE ее контролировал автоматически, а не я каждый раз вручную. А он контролирует только верхнюю границу. В этом только и вопрос. DCM же кроме джиттера еще увеличивает потребление питания и требует формирование ресета. И нужен он только потому, что ISE не может проверить условие X > min. Обидно до кончика хвоста когда софт ограничивает возможности железа. Цитата(Boris_TS @ Mar 12 2009, 20:05)  Микросхема конечно греется, но не так страшно. Она радиатором прижата. Я задаю температуру в констрейнах, по логике ISE должен проверить задержки при худших условиях. Мне же главное чтобы эти задержки в заданных пределах оставались. Надо почитать подробнее что ISE с констрейном температуры делает. Цитата(Boris_TS @ Mar 12 2009, 20:05)  Есть идейка, не совсем то, что Вам нужно, но может навести на полезные мысли: Случай действительно не совсем мой, за совет спасибо!
|
|
|
|
|
Mar 13 2009, 07:05
|
Частый гость
 
Группа: Свой
Сообщений: 127
Регистрация: 16-02-07
Из: Долгопрудный
Пользователь №: 25 406

|
Цитата(disel @ Mar 12 2009, 22:21)  У меня нет проблем с времянкой, существующая разводка кристалла меня полностью устраивает. Все работает. Безо всякого DCM Сколько у вас экземпляров работает? Цитата(disel @ Mar 12 2009, 22:21)  Я только хочу чтобы ISE ее контролировал автоматически, а не я каждый раз вручную. А что может КАРДИНАЛЬНО изменяться от трассировки к трассировке если у вас триггера в IOB? Клок разведется по другой ветке? сколько это - 100пс? Извиняюсь за настойчивость по "впариванию" DCM и ответ не на тот вопрос, который вы задаете, но я вижу проблему и хочется помочь. Я ранее приводил 3 пункта и ИМХО вам бы проверить что первые 2 удовлетворяются без использования DCM. Да - есть кривость софта (или это какое-то намерение ксилинкса, т.к. они минимум даже в даташите не написали), но, действительно, задержки приводятся МАКСИМАЛЬНЫЕ и вы можете контролировать только их. Максимум - это один крайний случай. Есть второй - минимальная задержка (да - ту которую вы хотите контролировать), но увы такое ощущение, что вам это не удастся (хотя буду рад, если кто-то опишет способ). Без DCM вы можете "влипнуть" на каком-нибудь экземпляре устройства, даже если сейчас все работает (как я посчитал ранее - запас у вас не велик). Задержка зависит от температуры, напряжения и даже (что может быть самое главное) экземпляра кристалла. Использование DCM позволит вам нивелировать разброс задержки распространения клока на кристалле, что в моем понимании не мало. Осциллографом, да и тем более на одном экземпляре, вы не проверите крайние случаи - можно только опираться на цифры, которые приводит производитель. P.S.: DCM решит только проблему по первому пункту, который я описывал (т.е. разброс времени распространения клока по кристаллу). Разброс выходного буфера особо не скомпенсировать...вот только если ток можно посильнее на выходе задать, но надо смотреть на согласование...если использовать DCI вроде бы неплохо выходит. P.P.S: А уж как поставите DCM  - задавайте на нем какой надо сдвиг и "вписывайтесь" хотя бы по максимальному OFFSET.
Сообщение отредактировал Gothard - Mar 13 2009, 07:18
|
|
|
|
Сообщений в этой теме
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 Приветствую!
Поменял 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
|
|
|