|
|
  |
Ripple clock при делении клока, вопрос начинающего |
|
|
|
Jun 29 2007, 07:06
|
Участник

Группа: Новичок
Сообщений: 20
Регистрация: 10-05-07
Из: spb
Пользователь №: 27 634

|
Здравствуйте! Макс+плюс, графический редактор. Делю частоту глобального клока пополам Т-триггером. 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, и далее на схему.
|
|
|
|
|
Jul 2 2007, 07:20
|

Lazy
     
Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76

|
Цитата(Индеец @ 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). Смущает то, что поделенный клок у Вас глобальным получился А вообще - такая практика пагубна... используйте одну тактовую, а выход этого триггера подавайте на Enable остальной части схемы
--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
|
|
|
|
|
Jul 3 2007, 07:35
|
Участник

Группа: Новичок
Сообщений: 20
Регистрация: 10-05-07
Из: spb
Пользователь №: 27 634

|
Цитата(sazh @ Jul 2 2007, 11:36)  Нет проблем проблем в FPGA клок с выхода триггера сделать глобалльным. При условии что эти линии пне задействованы полностью извне. Можно выход одного триггера пропустить через примитив lcell и global. Тоже должно получиться. Другое дело что от сообщения про ripple clock не удасться отделаться. Ведь все равно первый триггер функционирует от одного клока, а последующие от другого, пусть и глобального. Понял, спасибо большое...буду жить с сообщением про ripple clock. Главное, что полученный клок все-таки становиться глобальным.
|
|
|
|
|
Jul 3 2007, 08:00
|
Участник

Группа: Новичок
Сообщений: 20
Регистрация: 10-05-07
Из: spb
Пользователь №: 27 634

|
Цитата(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% его сообщений, это констатация того или иного положения дел, не влияющих на работоспособность проекта. И за морем этих повествований можно пропустить действительно существенное замечание. А вот по окончании можно и включить. (Хотя этого я не делал). Попробую, спасибо. Включу его в конце, после отладки всех модулей по-отдельности и отладки всего проекта целиком.
|
|
|
|
|
Jul 3 2007, 10:45
|

Lazy
     
Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76

|
Цитата(Индеец @ 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) По поводу триггера - я не знал, что у Вас счетчики, поэтому так и написал. Желаю успехов
--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
|
|
|
|
|
Jul 16 2007, 14:49
|
Местный
  
Группа: Свой
Сообщений: 368
Регистрация: 16-11-06
Из: Тверь
Пользователь №: 22 379

|
А все таки откуда берется 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), но другой вопрос - для чего тогда писать про это, делать специальные примитивы и блоки на кристалле? Может я чего не понимаю?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|