Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ripple clock при делении клока
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Индеец
Здравствуйте!
Макс+плюс, графический редактор.
Делю частоту глобального клока пополам Т-триггером. Design Doctor выдает: Ripple Clock detected starting <с_этого_TFF>. Почитал хэлп, Ripple Clock Examples, все вроде соответствует их "good design practice". В репорт-файле полученный делением клок признан глобальным в разделах Buried Logic и Clock Signals.
Что я не понимаю???!!! Не удается победить Ripple Clock. Что делать???!!!


Для справки, моя схема: порт INPUT, примитив GLOBAL, примитив TFF (с VCC на T-входе), примитив GLOBAL, и далее на схему.
Victor®
Цитата(Индеец @ Jun 29 2007, 10:06) *
Здравствуйте!
Макс+плюс, графический редактор.
Делю частоту глобального клока пополам Т-триггером. Design Doctor выдает: Ripple Clock detected starting <с_этого_TFF>. Почитал хэлп, Ripple Clock Examples, все вроде соответствует их "good design practice". В репорт-файле полученный делением клок признан глобальным в разделах Buried Logic и Clock Signals.
Что я не понимаю???!!! Не удается победить Ripple Clock. Что делать???!!!
Для справки, моя схема: порт INPUT, примитив GLOBAL, примитив TFF (с VCC на T-входе), примитив GLOBAL, и далее на схему.


Насколько я помню по MAX+PLUS II, да и вообще по Altera - то глобальный клок может идти только с пина (по крайней мере для CPLD). Смущает то, что поделенный клок у Вас глобальным получился 07.gif
А вообще - такая практика пагубна... используйте одну тактовую, а выход этого триггера подавайте на Enable остальной части схемы
sazh
Нет проблем проблем в FPGA клок с выхода триггера сделать глобалльным. При условии что эти линии пне задействованы полностью извне. Можно выход одного триггера пропустить через примитив lcell и global. Тоже должно получиться. Другое дело что от сообщения про ripple clock не удасться отделаться.
Ведь все равно первый триггер функционирует от одного клока, а последующие от другого, пусть и глобального.
Индеец
Цитата(sazh @ Jul 2 2007, 11:36) *
Нет проблем проблем в FPGA клок с выхода триггера сделать глобалльным. При условии что эти линии пне задействованы полностью извне. Можно выход одного триггера пропустить через примитив lcell и global. Тоже должно получиться. Другое дело что от сообщения про ripple clock не удасться отделаться.
Ведь все равно первый триггер функционирует от одного клока, а последующие от другого, пусть и глобального.

Понял, спасибо большое...буду жить с сообщением про ripple clock. Главное, что полученный клок все-таки становиться глобальным.
sazh
Скажу крамольную вещь. Отключите на время разработки проекта Design Doctor.
Ведь 90% его сообщений, это констатация того или иного положения дел, не влияющих на работоспособность проекта. И за морем этих повествований можно пропустить действительно существенное замечание.
А вот по окончании можно и включить. (Хотя этого я не делал).
Индеец
Цитата(Victor® @ Jul 2 2007, 11:20) *
Насколько я помню по MAX+PLUS II, да и вообще по Altera - то глобальный клок может идти только с пина (по крайней мере для CPLD). ...

Извините, забыл указать, что работаю с FPGA - EPF10K30. Если интересно, цитата из даташита:
FLEX 10K devices provide six dedicated inputs ... . These signals use dedicated routing channels ... . Four of the dedicated inputs drive four global signals. These four global signals can also be driven by internal logic, providing an ideal solution for a clock divider or ... .

Цитата(Victor® @ Jul 2 2007, 11:20) *
А вообще - такая практика пагубна... используйте одну тактовую, ...

Не могли бы Вы объяснить, что плохого в делении частоты на кристалле или в использовании более одной тактовой...
Делю частоту, чтобы загрубить временные выдержки - уменьшить разрядность счетчиков, иначе проект не полезет в кристалл. Это старая разработка, которую понадобилось "поддержать" в соответствии с новыми условиями, отсюда и EPF10K30.

Цитата(Victor® @ Jul 2 2007, 11:20) *
... используйте одну тактовую, а выход этого триггера подавайте на Enable остальной части схемы

Не понял, какой триггер Вы имеете ввиду. Не могли бы пояснить?


Цитата(sazh @ Jul 3 2007, 11:43) *
Скажу крамольную вещь. Отключите на время разработки проекта Design Doctor.
Ведь 90% его сообщений, это констатация того или иного положения дел, не влияющих на работоспособность проекта. И за морем этих повествований можно пропустить действительно существенное замечание.
А вот по окончании можно и включить. (Хотя этого я не делал).

Попробую, спасибо. Включу его в конце, после отладки всех модулей по-отдельности и отладки всего проекта целиком.
Victor®
Цитата(Индеец @ Jul 3 2007, 11:00) *
Извините, забыл указать, что работаю с FPGA - EPF10K30. Если интересно, цитата из даташита:
FLEX 10K devices provide six dedicated inputs ... . These signals use dedicated routing channels ... . Four of the dedicated inputs drive four global signals. These four global signals can also be driven by internal logic, providing an ideal solution for a clock divider or ... .
Не могли бы Вы объяснить, что плохого в делении частоты на кристалле или в использовании более одной тактовой...
Делю частоту, чтобы загрубить временные выдержки - уменьшить разрядность счетчиков, иначе проект не полезет в кристалл. Это старая разработка, которую понадобилось "поддержать" в соответствии с новыми условиями, отсюда и EPF10K30.
Не понял, какой триггер Вы имеете ввиду. Не могли бы пояснить?
Попробую, спасибо. Включу его в конце, после отладки всех модулей по-отдельности и отладки всего проекта целиком.


1) Про то, что у Вас FPGA желательно сразу было сказать... мне показалось странным работать в MAX+II c FPGA
2) Ничего плохого в делении не вижу, если только входная частота больше не используется... а вообще надо смотреть конкретный проект. Лично считаю, что проект должен быть полностью синхронным, если это возможно. При использовании нескольких частот возможно придется организовывать схемы переноса данных с одного домена тактирования в другой. Опять же надо смотреть конкретный проект.
3) По поводу триггера - я не знал, что у Вас счетчики, поэтому так и написал.

Желаю успехов
Andr2I
А все таки откуда берется ripple clock? Если выходы триггеров в дальнейшем нигде не "пересекаются", то иголок не должно быть.
В документации на ЦиклонII на стр.2-22 сказано - " Dedicated clock pins (CLK[]), PLL outputs, the logic array, and
dual-purpose clock (DPCLK[]) pins can also drive the global clock
network." Но на logic array - Quartus ругается, даже если пропустить сигнал через специальную функцию ALTCLKCRTL. Хотя из документации на Clock Control Block следует, что он нужен для "Dynamic global clock network clock source selection", а в качестве источника сигнала могут быть использованы "Four internally-generated signals" (стр. таже самая).
Понятно, что обойти это можно (через сигналы разрешения и один clk или не смотреть на ругань Qurtus), но другой вопрос - для чего тогда писать про это, делать специальные примитивы и блоки на кристалле?
Может я чего не понимаю?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.