Перейти к содержанию
    

Констрейны на сигнал "ce"

Всем добрый день.

Есть проект на vhdl по vivado 2016.4 работающий на частоте clk = 150 Мгц. Clk берется с clk-визарда соответственно констрейн прописан..

В проекте генерируется сигнал "ce" на котором работает большая часть проекта. CE "прореживает" частоту в 2000 раз.

Вопрос: как грамотно описать для такой схемы констрейн? Насколько я понимаю виваде незачем пыжится развести всю схему на частоту clk=150 МГц.

И можно ли такой констрейн прописать прямо в тексте vhdl модуля?

Заранее большое спасибо за ответы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос в том, что Вы пытаетесь этим добится?

Если задача побаловаться, тогда можно обьявить set_multicycle_path -from * -to * [clk*2000]. Ну или зафолспасить всё - сомневаюсь, что в наличии огромный кристалл, на котором нужно развести CPU ядро + периферию. Но смысл этих действий, как я говорил ранее, нулевой.

Если же задача уменьшить энергопотребление или подстроить схему под тактирование на внешних частотах, тогда подходы абсолютно другие. Например, что мешает уменьшить частоту со 150МГц, раз "большая часть проекта работает на се", до 1МГц (конкретно для Вас - 75КГц) и не выдумывать велосипед. Соответственно энергопотребление уменьшится. Ну или на худой конец сделать делитель и создать новую частоту тактирования через generate_clock.

З.Ы. Ах да, в тексте VHDL подобного рода констрейны применить невозможно (кроме falce_path, кажется). Придётся или ucf писать, что относительно сложно, или воспользоваться удобным встроенным констрейн эдитором (к которому нужно немного приловчится, но имхо намного удобнее чем у "других").

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Anton1990 said:

Вопрос: как грамотно описать для такой схемы констрейн? Насколько я понимаю виваде незачем пыжится развести всю схему на частоту clk=150 МГц.

Если говорить о грамотности, то грамотно будет - переписать код, где будет формироваться клок с пониженной в 2000 раз частотой, а СЕ убрать. Констрейнт будет - create_generated_clock соответственно.

 

А как у вас сделано сейчас - это 1999 раз впустую дернуть дерево клока (с перезарядом паразитов и сливом энергии в нагрев), и только на 2000й получить полезное переключение. Не грамотно со всех точек зрения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 11/21/2020 at 2:53 PM, Aleх said:

А как у вас сделано сейчас - это 1999 раз впустую дернуть дерево клока (с перезарядом паразитов и сливом энергии в нагрев), и только на 2000й получить полезное переключение. Не грамотно со всех точек зрения.

Может там BUFGCE стоит...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Напрямую прописать - нет.

Если у вас идет целитель частоты, то до делителя у вас частота обычная,  начиная с выхода делителя, generated_clock и далее новый тактовый сигнал проходит по всей логике. 

Констрейны описывают время прохождения сигналов и не являются целевой функцией. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 11/21/2020 at 5:34 PM, Anton1990 said:

Вопрос: как грамотно описать для такой схемы констрейн? Насколько я понимаю виваде незачем пыжится развести всю схему на частоту clk=150 МГц.

немного по вашей теме https://embedders.org/content/timequest-dlya-chainikov-prilozhenie-3-dobryi-i-zlobnyi-multicycle

On 11/21/2020 at 5:34 PM, Anton1990 said:

И можно ли такой констрейн прописать прямо в тексте vhdl модуля?

нет.

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

PS. Ну и есть куча систем, работащих по CE, где у CE плавающая скважность и это нужно для работы. А еще есть куча систем, в которых блоки быстрой математики, запускаются между этими CE. ТСу рекомендую советы слушать, но все же думать своей головой ;) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 11/23/2020 at 9:12 AM, des00 said:

немного по вашей теме https://embedders.org/content/timequest-dlya-chainikov-prilozhenie-3-dobryi-i-zlobnyi-multicycle

нет.

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

PS. Ну и есть куча систем, работащих по CE, где у CE плавающая скважность и это нужно для работы. А еще есть куча систем, в которых блоки быстрой математики, запускаются между этими CE. ТСу рекомендую советы слушать, но все же думать своей головой ;) 

Пробежался для интереса по статье. Ногами не бейте, видимо туплю, но к чему комментарий:

Quote

"Сплошная ляпота, но надо помнить что на ival нужно подавать меандр, в противном случае схема работать не будет!!!"

Имеется ввиду меандр с тактовой частотой, деленной на 2? А то если подавать любой другой меандр, то вроде set_multicycle_path и уж тем более -setup -end 2 неактуальны

Изменено пользователем Nemos760

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 minutes ago, Nemos760 said:

Пробежался для интереса по статье. Ногами не бейте, видимо туплю, но к чему комментарий:

Имеется ввиду меандр с тактовой частотой, деленной на 2? А то если подавать любой другой меандр, то вроде set_multicycle_path и уж тем более -setup -end 2 неактуальны

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, des00 said:

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

Самое понятие меандра подразумевает скважность равную 2, я поэтому про частоту сигнала разрешения относительно тактовой и спрашивал, если это будет меандр, но с меньшим значением частоты, то в него могут попасть 2 такта. В общем всё нормально, мы об одном и том же, но видимо у меня плохо получилось сформулировать вопрос.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...