|
Синхронный ввод данных в ПЛИС |
|
|
|
Jul 22 2009, 13:32
|
Частый гость
 
Группа: Свой
Сообщений: 114
Регистрация: 7-05-08
Из: РФ, Москва
Пользователь №: 37 354

|
Здравствуйте. Может ли кто-нибудь подсказать какой-либо конкретный пример констрейнов для входных данных от синхронного источника для стратиксов. "Source-syncronous <...>" читал, использую данные оттуда, но в связи со слабым знанием технического английского при возникновении иных странностей в работе системы начинают грызть определенные сомнения относительно правильности понимания мной написанного. То есть, допустим имеется параллельный АЦП на 100 МГц с центрированным тактовым выходом. Сигналы заводятся на согласующий FIFO внутри ПЛИС.
Я правильно понимаю, что для описания констрейнов на вход необходимо (и достаточно) 1) Указать базовый виртуальный клок на 100 МГц; 2) Указать наследованный клок на 100 МГц с 180 градусным сдвигом и привязать его ко входу сигнала готовности АЦП; 3) Задать th, tsu данных АЦП относительно наследованного клока; 4) Запретить анализ путей из домена АЦП в глобальный домен и обратно; 5) Сделать сигнал готовности данных АЦП глобальным (по совету Design Assistant).
Какие th и tsu нужно указать для такого случая? Я указываю, со скидкой на tco АЦП, трассировку платы и создание примерно наносекундного запаса, th=3.5 и tsu=3.5.
--------------------
SystemVerilog - язык, заточенный Альтерой под свои кристаллы теми же приемами использования примитивов, что и AHDL. ©
|
|
|
|
|
 |
Ответов
|
Jul 25 2009, 09:42
|
Частый гость
 
Группа: Свой
Сообщений: 166
Регистрация: 2-11-08
Из: Ростов-на-Дону
Пользователь №: 41 331

|
Цитата(axalay @ Jul 25 2009, 12:52)  Ясень пень надо клок при необходимости подвинуть чтобы не было на грани. по поводу того что частота не играет роли-это Вы зря. Вот если на 250 и по обоим фронтам-то констрейны нужны. А тут как Вы и сами сказали-2х лучевым осцилом убедиться что не на грани - и все будет пучком, если клок заведен на глобальную линию. Если Вам так проще - дело Ваше. Все далее написанное - это не спор с Вами, а совет от чистого сердца. Однако посчитать и задать констрейны будет и методолигически правильнее (как сказал-то а?) и проще сделать. 1 рассчет = 1 минута, 10 компиляций + 10 проверок = ?. Однажды проведя 10 компиляций по 20 минут (согласитесь, это еще не так долго, как могло бы быть), я бы вам не советовал действовать так же. "На грани" я имел в виду в более широком смысле. Например у всех микросхем есть part-to-part skew. А еще времена ползут в зависимости от температуры. +25 и -40 градусов - будет существенная разница. Провести испытания на серии с разными температурами ? Тут стоить довериться авторам микросхем. Они уже померяли характеристики серий своих изделий в разных режимах. И самое главное !!! Если констрейны не заданы !!!, то квартус будет считать, что времена не важны !!! И есть вероятность, что при перекомпиляции времена ПОМЕНЯЮТСЯ. Несколько лет назад сам действовал, как предлагаете Вы, нашел оптимальную фазу PLL, проверил осциллографом и функционально. Более того - залочил всю логику, отвечающую за ввод. Несколько раз перекомпилировал - все было нормально, но после энного раза - перестало работать. Поскольку я не каждый раз проверял именно этот узел осциллографом, начал грешить на другую часть проекта, с которой в тот момент работал. Не сразу понял, где ошибка. И что же вы думаете ? Оказывается, квартус переставил мою PLL на другое место. И времена tsu, th сместились на 2 нс.
Отсюда либо: 1) Иметь тесты, проверяющие работоспособность всех узлов ввода-вывода и запускать их в каждой новой версии. 2) Посомтреть на наличие красных строк в отчете временного анализатора. Что проще - подумайте. Я уже подумал. Проверка осциллографом - последняя стадия... Если проект грамотно сдеалан, проверка только подтверждает правильность работы.
Сообщение отредактировал murmel1 - Jul 25 2009, 09:44
|
|
|
|
|
Jul 27 2009, 07:21
|
Местный
  
Группа: Свой
Сообщений: 388
Регистрация: 27-02-06
Из: Москва
Пользователь №: 14 759

|
Цитата(murmel1 @ Jul 25 2009, 13:42)  Если Вам так проще - дело Ваше. Все далее написанное - это не спор с Вами, а совет от чистого сердца.
Однако посчитать и задать констрейны будет и методолигически правильнее (как сказал-то а?) и проще сделать. 1 рассчет = 1 минута, 10 компиляций + 10 проверок = ?.
Однажды проведя 10 компиляций по 20 минут (согласитесь, это еще не так долго, как могло бы быть), я бы вам не советовал действовать так же.
"На грани" я имел в виду в более широком смысле. Например у всех микросхем есть part-to-part skew. А еще времена ползут в зависимости от температуры. +25 и -40 градусов - будет существенная разница. Провести испытания на серии с разными температурами ? Тут стоить довериться авторам микросхем. Они уже померяли характеристики серий своих изделий в разных режимах.
И самое главное !!! Если констрейны не заданы !!!, то квартус будет считать, что времена не важны !!! И есть вероятность, что при перекомпиляции времена ПОМЕНЯЮТСЯ. Несколько лет назад сам действовал, как предлагаете Вы, нашел оптимальную фазу PLL, проверил осциллографом и функционально. Более того - залочил всю логику, отвечающую за ввод. Несколько раз перекомпилировал - все было нормально, но после энного раза - перестало работать. Поскольку я не каждый раз проверял именно этот узел осциллографом, начал грешить на другую часть проекта, с которой в тот момент работал. Не сразу понял, где ошибка. И что же вы думаете ? Оказывается, квартус переставил мою PLL на другое место. И времена tsu, th сместились на 2 нс.
Отсюда либо: 1) Иметь тесты, проверяющие работоспособность всех узлов ввода-вывода и запускать их в каждой новой версии. 2) Посомтреть на наличие красных строк в отчете временного анализатора. Что проще - подумайте. Я уже подумал.
Проверка осциллографом - последняя стадия... Если проект грамотно сдеалан, проверка только подтверждает правильность работы. Сдвиговый регистр работает по следующим соображениям всегда без констрейнов (ну если конечно клок на глобальной линии): время распространения данных всегда больше или равно времени распространиния клока (что куда и откуда писать не буду-и так ясно). Это и без констрейнов. Ну а по поводу того что выставив фазу клока однажды нормально она из-за температуры или чего то другого уйдет в красную зону (период тактового сигнала 10 нан)-значит ничего не выставлено. Ну а расчитывать то что производитель микрухи поменяет что то там в характеристиках... Да и обычно защелкивается все прекрасно и без сдвига фазы. У каждого свои соображения. Удачи!
|
|
|
|
Сообщений в этой теме
Ethereal Синхронный ввод данных в ПЛИС Jul 22 2009, 13:32 murmel1 В общем все верно, только не совсем понял, зачем В... Jul 22 2009, 17:07 Ethereal Цитата(murmel1)зачем Вам пункт 2
По совету из рук... Jul 24 2009, 07:31 axalay Цитата(Ethereal @ Jul 22 2009, 17:32) Здр... Jul 24 2009, 13:32 murmel1 Просто не встречался еще с такими проектами, где и... Jul 24 2009, 19:36 axalay Цитата(murmel1 @ Jul 24 2009, 23:36) Прос... Jul 25 2009, 08:52 Ethereal Цитата("murmel1")Просто не встречался ещ... Jul 28 2009, 22:42 murmel1 Цитата(Ethereal @ Jul 29 2009, 02:42) А е... Jul 29 2009, 17:08 Ethereal Спасибо.
А еще два вопроса можно?
1) Имеет ли смы... Jul 30 2009, 14:33 murmel1 1) Использование PLL всего лишь позволяет легко сд... Jul 30 2009, 16:11
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|