Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не победить ripple clock от дизайн-доктора. Помогите начинающему...
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
MaxVetrov
Здравствуйте!

--ЧТО ЕСТЬ--
FLEX10KA. Графический редактор. Глобальный клок (60 МГц) делю Т-триггером - надо получить новый клок. На выходе Т-триггера стоит примитив GLOBAL. Полученный новый глобальный клок идет на модули нижнего уровня, тоже gdf'ы, где используется по своему прямому назначению.

--ПРОБЛЕМА--
Design Doctor предупреждает:
1. Ripple Clock detected starting with ...
2. GLOBAL primitive on node <name> feeds logic -- non-global signal usage may result.

--ЧТО ДАЛЬШЕ, ПОДСКАЖИТЕ/ПОПРАВЬТЕ ХОД МЫСЛИ--
3.Читал хэлп. Сделал вывод, что сообщение ripple clock выдается доктором всегда, когда он видит выход одного триггера заведенный на тактовые входы других триггеров.
4. Читал Report. В разделе Buried logic видел букву "G" в строке с триггером-делителем. Этого достаточно, что-бы быть уверенным в глобальности полученного клока?

(продолжение в след. посте - у меня ограничение на размер отправляемых данных)

(продожение)

--ТАКОЕ ВНИМАНИЕ К САБЖУ, ПОТОМУ ЧТО СМУЩАЕТ--
5. В симуляторе один и тот-же клок - на выходе триггера-делителя (в верхнем gdf'е) и в модулях, куда он идет (gdf'ах нижнего уровня) - имеет разную фазу. Непонятно почему.
6. По осциллографу (при отладке на столе) есть смутные сомнения - не гуляет ли внутри кристалла фаза у поделенного клока относительно фазы исходного клока. Может ли такое быть в принципе?
(Мой осцил. частоту 60 МГц берет с трудом. Точно сказать по нему, к сожалению, нельзя.)

Подскажите, пожалуста...

ps:
Понимаю, что надо работать в Квартусе, и вводить проект текстом. К сожалению пока нет времени на изучение - срочной работы много.
klop
Больше смущает вот енто
2. GLOBAL primitive on node <name> feeds logic -- non-global signal usage may result.

Но уже давно не работал с MAX так что могу и путать.
SM
Цитата(MaxVetrov @ Nov 13 2006, 11:40) *
5. В симуляторе один и тот-же клок - на выходе триггера-делителя (в верхнем gdf'е) и в модулях, куда он идет (gdf'ах нижнего уровня) - имеет разную фазу. Непонятно почему.


Что же тут непонятного? На выходе триггера фаза и должна отличаться от той, что после распространения сигнала по глобальному клоковому дереву. Параметр, на сколько дерево задерживает сигнал, называется "clock latency". Кстати, не факт, что он документирован

Цитата(MaxVetrov @ Nov 13 2006, 11:40) *
6. По осциллографу (при отладке на столе) есть смутные сомнения - не гуляет ли внутри кристалла фаза у поделенного клока относительно фазы исходного клока. Может ли такое быть в принципе?
(Мой осцил. частоту 60 МГц берет с трудом. Точно сказать по нему, к сожалению, нельзя.)


Конечно может. Причем документировано. Это параметр "clock uncertainty" или "clock skew". То есть разброс времени распространения тактового сигнала от корня дерева по всем его ветвям.
sazh
////////////////////////////////////////
Design Doctor предупреждает:
1. Ripple Clock detected starting with ...
2. GLOBAL primitive on node <name> feeds logic -- non-global signal usage may result.
/////////////////////////////////////////////////////////////////////////////////////////
Попробуйте между триггером и примитивом global поставить примитив lcell
всегда запускайте временной анализатор для контроля над проектом при использовании ripple clock.

///////////////////////////////////////////////////////////////////////////
6. По осциллографу (при отладке на столе) есть смутные сомнения - не гуляет ли внутри кристалла фаза у поделенного клока относительно фазы исходного клока. Может ли такое быть в принципе?
(Мой осцил. частоту 60 МГц берет с трудом. Точно сказать по нему, к сожалению, нельзя.)
///////////////////////////////////////////////////////////
Скорее всего гуляет фаза у поделенного клока относительно запуска какого то периодического процесса. По запуску этого процесса можно ресетить триггер, на котором делиться исходный клок.
MaxVetrov
Большое спасибо всем ответившим...

Цитата(SM @ Nov 13 2006, 12:18) *
Цитата(MaxVetrov @ Nov 13 2006, 11:40) *

В симуляторе один и тот-же клок - на выходе триггера-делителя ... и в модулях, куда он идет ... имеет разную фазу. ...

Что же тут непонятного? На выходе триггера фаза и должна отличаться от той, что после распространения сигнала по глобальному клоковому дереву. Параметр, на сколько дерево задерживает сигнал, называется "clock latency". Кстати, не факт, что он документирован


Смущает то, что задержка распространения клока порядка 4.7 нс, 30% периода исходного клока (EPF10K30...-2). Это же глобальный клок.
Особенность и то, что во всех модулях (где посмотрел) задержка клока одна и таже относительно клока в gdf'е верхнего уровня. Проект большой.

Цитата(SM @ Nov 13 2006, 12:18) *
Цитата(MaxVetrov @ Nov 13 2006, 11:40) *

6. По осциллографу (при отладке на столе) есть смутные сомнения - не гуляет ли внутри кристалла фаза у поделенного клока относительно фазы исходного клока. Может ли такое быть в принципе?
(Мой осцил. частоту 60 МГц берет с трудом. Точно сказать по нему, к сожалению, нельзя.)


Конечно может. Причем документировано. Это параметр "clock uncertainty" или "clock skew". То есть разброс времени распространения тактового сигнала от корня дерева по всем его ветвям.


Я немного неправильно поставил вопрос... Есть подозрения, что фаза полученного делением глобального клока постоянно меняется, т.е. плавает относительно исходного клока.
MaxVetrov
Цитата(sazh @ Nov 13 2006, 12:29) *
////////////////////////////////////////
Design Doctor предупреждает:
1. Ripple Clock detected starting with ...
2. GLOBAL primitive on node <name> feeds logic -- non-global signal usage may result.
/////////////////////////////////////////////////////////////////////////////////////////
Попробуйте между триггером и примитивом global поставить примитив lcell
всегда запускайте временной анализатор для контроля над проектом при использовании ripple clock.

Спасибо, пробую... изучаю новые warning'и от дизайн-доктора...

Что такое временной анализатор???? (простите, не знаю)

Цитата(sazh @ Nov 13 2006, 12:29) *
Скорее всего гуляет фаза у поделенного клока относительно запуска какого то периодического процесса. По запуску этого процесса можно ресетить триггер, на котором делиться исходный клок.

Ищу то, за что может цепляться осцилл. С осциллом сомнения. У него полоса 200 МГц, 2 ГСэмпла/с - клок 60 МГц толком не посмотреть.

Тут еще такая фишка в дизайне схемы электрической...
Клок на Алтеру подается с ноги микроконтроллера unsure.gif , clock output так называемый... имхо надо еще поразбираться с качеством этого сигнала ...
sazh
Ищу то, за что может цепляться осцилл. С осциллом сомнения. У него полоса 200 МГц, 2 ГСэмпла/с - толком не посмотреть./////////////
Не нужен Вам осциллограф. Незачем ножки царапать. Достаточно встроенного симулятора.И дизайн доктор тоже надо выключить. Это сплошные предупреждения по стилю проектирования, в которых Вы можете не заметить серьезных предупреждений.
Если что то с проектом невпорядке, в MAX+plusII > Timing Analyzer это в красном цвете будет.
И клок микроконтроллера нет смысла анализировать. Делайте полный проект и моделируйте.
SM
Цитата(MaxVetrov @ Nov 13 2006, 17:04) *
Смущает то, что задержка распространения клока порядка 4.7 нс, 30% периода исходного клока (EPF10K30...-2). Это же глобальный клок.
Особенность и то, что во всех модулях (где посмотрел) задержка клока одна и таже относительно клока в gdf'е верхнего уровня. Проект большой.


Вполне возможно, что так оно и есть. Глобальность клока вовсе не обязывает иметь ему малую латентность, тем более что в фпга деревья ой не маленькие. Глобальность лишь обеспечивает малый гарантированный перекос.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.