new123 0 11 октября, 2019 Опубликовано 11 октября, 2019 · Жалоба Форумчане, день добрый. Помогите правильно описать путь пжлст. Очень упрощенно имею такой код. assign x = (a == 16'd49000)? 1'b0: 1'b1; assign z = {...., x, ....}; always @ (posedge clk) begin a <= ... end Хочу помочь квартусу не напрягаться. И сказать что расчет Z мне актуален после трех тактов, как получу A. То есть, чтобы он не напрягался и не пробовал все уложить в один такт. set_multicycle_path подойдет? Если да, не могли бы привезти точный пример, как его точно прописать в данной задаче, у меня как то с ним не сложилось. Или может в таких условиях вообще set_false_path подойдет? Заранее спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 11 октября, 2019 Опубликовано 11 октября, 2019 · Жалоба 29 minutes ago, new123 said: set_multicycle_path подойдет? Если да, не могли бы привезти точный пример, как его точно прописать в данной задаче, у меня как то с ним не сложилось. Или может в таких условиях вообще set_false_path подойдет? https://embedders.org/content/timequest-dlya-chainikov-prilozhenie-3-dobryi-i-zlobnyi-multicycle мультициклы можно накладывать только между регистрами. в целом ложный путь тоже пойдет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 25 11 октября, 2019 Опубликовано 11 октября, 2019 · Жалоба Меня в таких случаях тянет завести несколько CE разнесённых по фазе на несколько клоков. Интересно, если так сделать - надо будет думать о constraint или квартус/вивадо - сам поймёт? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 11 октября, 2019 Опубликовано 11 октября, 2019 · Жалоба Приветствую! Если логику z как-то фиксировать, например (* keep *) чтобы при синтезе она не оптимизировалась, то тогда можно попробовать задать set_multicycle_path 3 -start -setup -from [get_pins path_name/a_reg|q*] -through [get_cells path_name/z] set_multicycle_path 2 -start -hold -from [get_pins path_name/a_reg|q*] -through [get_cells path_name/z] Ну или нужен такой код, чтобы можно было явно задавать set_multicycle_path конкретно до z assign x = (a == 16'd49000)? 1'b0: 1'b1; always @ (posedge clk) begin a <= ... z <= {...., x, ....}; end set_multicycle_path 3 -end -setup -from [get_pins path_name/a_reg|q*] -to [get_pins path_name/z_reg|d*] set_multicycle_path 2 -end -hold -from [get_pins path_name/a_reg|q*] -to [get_pins path_name/z_reg|d*] Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 11 октября, 2019 Опубликовано 11 октября, 2019 · Жалоба 36 minutes ago, des00 said: https://embedders.org/content/timequest-dlya-chainikov-prilozhenie-3-dobryi-i-zlobnyi-multicycle мультициклы можно накладывать только между регистрами. в целом ложный путь тоже пойдет. спасибо, я об этом не подумал. Надо в Time Analyzer поковырять мне пути. 4 minutes ago, RobFPGA said: Ну или нужен такой код, чтобы можно было явно задавать set_multicycle_path конкретно до z спасибо. Всем спасибо большое, как всегда, быстро и профессионально 32 minutes ago, _4afc_ said: надо будет думать о constrain я конечно особо не мастак, но у меня сложилось мнение, чем больше опишешь, тем лучше. У меня уже чип скоро под завязку, квартусу все тяжелее и тяжелее. А более детальные констрейны выручать начинают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lexx 0 14 октября, 2019 Опубликовано 14 октября, 2019 · Жалоба False path лучше не использовать - при синтезе не будет никаких констрейнов, только логика. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 14 октября, 2019 Опубликовано 14 октября, 2019 · Жалоба Приветствую! 59 minutes ago, lexx said: False path лучше не использовать - при синтезе не будет никаких констрейнов, только логика. Не могли бы пояснить что вы имели в виду? Успехов! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться