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

 
 
> Cyclone V. Насколько корректно получать тактовые, сигналы для проекта с выходов счетчика ?
kovigor
сообщение Jan 25 2016, 17:06
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Есть проект, в котором, в зависимости от положения пары переключателей должна меняться частота тактирования. Эталонный тактовый сигнал (CLK) подается на предназначенную для этого ножку и идет
на счетчик, на выходах которого формируются сигналы с частотами CLK/2, CLK/4 и CLK/8. Проект компилируется и работает, но меня одолевают сомнения в корректности такого решения. Прокомментируйте, пожалуйста ...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Bad0512
сообщение Jan 26 2016, 03:43
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(kovigor @ Jan 25 2016, 23:06) *
Есть проект, в котором, в зависимости от положения пары переключателей должна меняться частота тактирования. Эталонный тактовый сигнал (CLK) подается на предназначенную для этого ножку и идет
на счетчик, на выходах которого формируются сигналы с частотами CLK/2, CLK/4 и CLK/8. Проект компилируется и работает, но меня одолевают сомнения в корректности такого решения. Прокомментируйте, пожалуйста ...

По умолчанию такая схема - источник непрерывного геморроя. По разным причинам.Гораздо проще и правильнее на счётчике формировать стробы CE, а жить при этом на исходной тактовой. При этом не надо вручную описывать сгенерированные клоки, не будет проблем с ресурсом тактовых деревьев, единственный вопрос, который постоянно мусолится - некоторые утверждают что в данном случае (прореженные CE на исходно высокой тактовой) энергопотребление будет выше. Однако детальных исследований на эту тему ИМХО никто так и не проводил.
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 26 2016, 03:55
Сообщение #3


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Bad0512 @ Jan 26 2016, 10:43) *
По умолчанию такая схема - источник непрерывного геморроя. По разным причинам.Гораздо проще и правильнее на счётчике формировать стробы CE, а жить при этом на исходной тактовой.

да не факт. с чего она будет гемороем, если поделил тактовую, зароутил на глобальный буфер и работаешь на нем как на асинхронном(это важно), от остальной схемы клоке.

А с СЕ может потребоваться полная переписка большей части проекта, если изначально это не было заложено в код (сигнал clkena), да и констрейнить это потом надо мультициклами по дереву, да и синтезатор сам себе на уме, не факт что в LAB clkena вход триггеров задействует, может на логике все залабать.

Каждый из вариантов имеет право на жизнь, но нужно понимать последствия.


--------------------
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Jan 26 2016, 04:22
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(des00 @ Jan 26 2016, 09:55) *
если поделил тактовую, зароутил на глобальный буфер и работаешь на нем как на асинхронном(это важно), от остальной схемы клоке.

Если клок асинхронный (объявлен асинхронным) относительно базового (который делим счётчиком) то при переходе из одного домена в другой (а такие места наверняка будут - иначе зачем вообще морочиться с разными доменами?) возникнет место неконтролируемого тайминг аналайзером перехода с непредсказуемыми последствиями.
Если клок описать синхронным, то там тоже свои проблемы есть в виде фазовой разбежки между фронтами клоков (которая получается именно из-за деления на логике). Эта фазовая задержка часто приводит к невозможности соблюсти слаки по холду.
В общем и целом, кругом разложен ровный слой мелких граблей. А всё потому, что gated clock - абсолютное зло!
Справедливости ради надо отметить, что в случае с Clock Enable тоже есть пара проблемных моментов (типа адского fanout по цепи CE, что приводит к проблемам в тайминге). Но ИМХО эти проблемы решить проще, чем в случае gated clock.

Go to the top of the page
 
+Quote Post
des00
сообщение Jan 26 2016, 04:35
Сообщение #5


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Bad0512 @ Jan 26 2016, 11:22) *
(а такие места наверняка будут - иначе зачем вообще морочиться с разными доменами?)

Например есть кучка медленных уартов на частоте 20МГц, когда вся система хлопает на 200. Или например совершенно отдельный микроб со своими задачами стоит, на частоте 48МГц, а все остальное работает на 192. Вариантов масса, на всех PLL не напасешься.
Цитата
возникнет место неконтролируемого тайминг аналайзером перехода с непредсказуемыми последствиями.

правила CDC не вчера были придуманы.
Цитата
Если клок описать синхронным, то там тоже свои проблемы есть в виде фазовой разбежки между фронтами клоков (которая получается именно из-за деления на логике). Эта фазовая задержка часто приводит к невозможности соблюсти слаки по холду.

Правильно. И в итоге все равно достается из котомки решений по CDC вариант с фифо с раздвижкой указателей на половину, глубина которого посчитана исходя из соотношений клоков. Т.е. решение по прежнему асинхронное.
Цитата
В общем и целом, кругом разложен ровный слой мелких граблей. А всё потому, что gated clock - абсолютное зло!

Рождение постоянного клока на счетчике-делителе != gated clock.


--------------------
Go to the top of the page
 
+Quote Post
ilkz
сообщение Jan 26 2016, 06:02
Сообщение #6


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

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



Цитата(des00 @ Jan 26 2016, 08:35) *
... фифо с раздвижкой указателей на половину ...


А можно вот тут подробнее? Впервые слышу. Мне всегда казалось что фифо это просто два тактово независящих друг от друга указателя (указатель rd, который всегда "догоняет" указатель wr, но не обгоняет его). Ну естественно, они развязаны через cdc друг относительно друга.

Сообщение отредактировал ilkz - Jan 26 2016, 06:05
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 26 2016, 06:11
Сообщение #7


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(ilkz @ Jan 26 2016, 13:02) *
А можно вот тут подробнее? Впервые слышу. Мне всегда казалось что фифо это просто два тактово независящих друг от друга указателя (указатель rd, который всегда "догоняет" указатель wr, но не обгоняет его). Ну естественно, они развязаны через cdc друг относительно друга.

Так оно и есть. просто к обычному фифо довешивается логика что в случае переполнения/опустошения указатели принудительно разводятся на половину глубины. Я называю такие фифо потоковыми. Если скорости потоков равны(за счет тактовых или стробов тактовых), но могут дрожать по фазе, это самое то для переходов.


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- kovigor   Cyclone V. Насколько корректно получать тактовые   Jan 25 2016, 17:06
- - des00   абсолютно корректно, если прописаны констрейны и е...   Jan 25 2016, 17:37
|- - kovigor   Цитата(des00 @ Jan 25 2016, 20:37) абсолю...   Jan 25 2016, 17:40
|- - shamrel   Цитата(kovigor @ Jan 25 2016, 20:40) В ка...   Jan 25 2016, 17:48
- - sergey sva   Констрейны в sdc , генерируется автоматически в ti...   Jan 25 2016, 17:50
|- - kovigor   Цитата(sergey sva @ Jan 25 2016, 20:50) К...   Jan 25 2016, 17:59
- - sergey sva   Расширение sdc если не ошибаюсь, на этом компьютер...   Jan 25 2016, 18:03
|- - kovigor   Цитата(sergey sva @ Jan 25 2016, 21:03) р...   Jan 25 2016, 18:06
|- - shamrel   Цитата(kovigor @ Jan 25 2016, 21:06) Там ...   Jan 25 2016, 18:17
- - sergey sva   Можно переложить его в другую папку, в timequest в...   Jan 25 2016, 18:17


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 18:07
Рейтинг@Mail.ru


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