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

 
 
> Синхронный ввод данных в ПЛИС
Ethereal
сообщение Jul 22 2009, 13:32
Сообщение #1


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

Группа: Свой
Сообщений: 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. ©
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
murmel1
сообщение Jul 25 2009, 09:42
Сообщение #2


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

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
axalay
сообщение Jul 27 2009, 07:21
Сообщение #3


Местный
***

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



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

 


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


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