Jump to content

    
Sign in to follow this  
Anton1990

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

Recommended Posts

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

 

Share this post


Link to post
Share on other sites
1 hour ago, Anton1990 said:

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

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

 

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

Share this post


Link to post
Share on other sites
On 11/21/2020 at 2:53 PM, Aleх said:

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites
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. ТСу рекомендую советы слушать, но все же думать своей головой ;) 

Share this post


Link to post
Share on other sites
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 неактуальны

Edited by Nemos760

Share this post


Link to post
Share on other sites
10 minutes ago, Nemos760 said:

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

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

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

Share this post


Link to post
Share on other sites
1 hour ago, des00 said:

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this