Anton1990 0 21 ноября, 2020 Опубликовано 21 ноября, 2020 · Жалоба Всем добрый день. Есть проект на vhdl по vivado 2016.4 работающий на частоте clk = 150 Мгц. Clk берется с clk-визарда соответственно констрейн прописан.. В проекте генерируется сигнал "ce" на котором работает большая часть проекта. CE "прореживает" частоту в 2000 раз. Вопрос: как грамотно описать для такой схемы констрейн? Насколько я понимаю виваде незачем пыжится развести всю схему на частоту clk=150 МГц. И можно ли такой констрейн прописать прямо в тексте vhdl модуля? Заранее большое спасибо за ответы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 21 ноября, 2020 Опубликовано 21 ноября, 2020 · Жалоба Вопрос в том, что Вы пытаетесь этим добится? Если задача побаловаться, тогда можно обьявить set_multicycle_path -from * -to * [clk*2000]. Ну или зафолспасить всё - сомневаюсь, что в наличии огромный кристалл, на котором нужно развести CPU ядро + периферию. Но смысл этих действий, как я говорил ранее, нулевой. Если же задача уменьшить энергопотребление или подстроить схему под тактирование на внешних частотах, тогда подходы абсолютно другие. Например, что мешает уменьшить частоту со 150МГц, раз "большая часть проекта работает на се", до 1МГц (конкретно для Вас - 75КГц) и не выдумывать велосипед. Соответственно энергопотребление уменьшится. Ну или на худой конец сделать делитель и создать новую частоту тактирования через generate_clock. З.Ы. Ах да, в тексте VHDL подобного рода констрейны применить невозможно (кроме falce_path, кажется). Придётся или ucf писать, что относительно сложно, или воспользоваться удобным встроенным констрейн эдитором (к которому нужно немного приловчится, но имхо намного удобнее чем у "других"). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Avex 1 21 ноября, 2020 Опубликовано 21 ноября, 2020 · Жалоба 1 hour ago, Anton1990 said: Вопрос: как грамотно описать для такой схемы констрейн? Насколько я понимаю виваде незачем пыжится развести всю схему на частоту clk=150 МГц. Если говорить о грамотности, то грамотно будет - переписать код, где будет формироваться клок с пониженной в 2000 раз частотой, а СЕ убрать. Констрейнт будет - create_generated_clock соответственно. А как у вас сделано сейчас - это 1999 раз впустую дернуть дерево клока (с перезарядом паразитов и сливом энергии в нагрев), и только на 2000й получить полезное переключение. Не грамотно со всех точек зрения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 25 22 ноября, 2020 Опубликовано 22 ноября, 2020 · Жалоба On 11/21/2020 at 2:53 PM, Aleх said: А как у вас сделано сейчас - это 1999 раз впустую дернуть дерево клока (с перезарядом паразитов и сливом энергии в нагрев), и только на 2000й получить полезное переключение. Не грамотно со всех точек зрения. Может там BUFGCE стоит... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lexx 0 23 ноября, 2020 Опубликовано 23 ноября, 2020 · Жалоба Напрямую прописать - нет. Если у вас идет целитель частоты, то до делителя у вас частота обычная, начиная с выхода делителя, generated_clock и далее новый тактовый сигнал проходит по всей логике. Констрейны описывают время прохождения сигналов и не являются целевой функцией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 23 ноября, 2020 Опубликовано 23 ноября, 2020 · Жалоба 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. ТСу рекомендую советы слушать, но все же думать своей головой ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nemos760 0 26 ноября, 2020 Опубликовано 26 ноября, 2020 (изменено) · Жалоба 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 неактуальны Изменено 26 ноября, 2020 пользователем Nemos760 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 26 ноября, 2020 Опубликовано 26 ноября, 2020 · Жалоба 10 minutes ago, Nemos760 said: Пробежался для интереса по статье. Ногами не бейте, видимо туплю, но к чему комментарий: Имеется ввиду меандр с тактовой частотой, деленной на 2? А то если подавать любой другой меандр, то вроде set_multicycle_path и уж тем более -setup -end 2 неактуальны минимальная скважность должна быть не менее двух. если у вас плавающий сигнал валидности, в котором есть два подряд сигнала, то в этом месте возможна ошибка. Ну а там дальше ваши значения, по аналогии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nemos760 0 26 ноября, 2020 Опубликовано 26 ноября, 2020 · Жалоба 1 hour ago, des00 said: минимальная скважность должна быть не менее двух. если у вас плавающий сигнал валидности, в котором есть два подряд сигнала, то в этом месте возможна ошибка. Ну а там дальше ваши значения, по аналогии. Самое понятие меандра подразумевает скважность равную 2, я поэтому про частоту сигнала разрешения относительно тактовой и спрашивал, если это будет меандр, но с меньшим значением частоты, то в него могут попасть 2 такта. В общем всё нормально, мы об одном и том же, но видимо у меня плохо получилось сформулировать вопрос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться