Anton1990 0 10 августа, 2018 Опубликовано 10 августа, 2018 · Жалоба Всем привет. Дело происходит в Vivado2018.2 Есть файл верхнего уровня Top.vhdl signal clk0, clk1 : std_logic; -- используются внутри проекта В нем прописан ip clk_wiz: clk_wiz port map (clk_out0 => clk0, clk_out1 => clk1, ....) В файле ограничений хочу задать констрейны на сигналы clk0, clk1 false_path с clk0 на clk1. Как записать правильно имена этих сигналов в файле xdc. При указании имен clk0 и clk1 говорит что такие сигналы не найдены. Заранее спасибо за ответы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 10 августа, 2018 Опубликовано 10 августа, 2018 · Жалоба Приветствую! Всем привет. Дело происходит в Vivado2018.2 Есть файл верхнего уровня Top.vhdl signal clk0, clk1 : std_logic; -- используются внутри проекта В нем прописан ip clk_wiz: clk_wiz port map (clk_out0 => clk0, clk_out1 => clk1, ....) В файле ограничений хочу задать констрейны на сигналы clk0, clk1 false_path с clk0 на clk1. Как записать правильно имена этих сигналов в файле xdc. При указании имен clk0 и clk1 говорит что такие сигналы не найдены. Заранее спасибо за ответы. a. поставить на эти сигналы в top атрибут keep. b. или открыть дизайн после синтеза, и найдя пин источник клока для этих цепей использовать его имя для определения клока c. или взять сразу имя клока сгенерированного на этом пине. d. или в xdc сразу узнать имя клока автоматом сгенерированного на требуемом пине set_clock_groups -name cg_AGEN -asynchronous \ -group [get_clocks -include_generated_clocks -of [get_pins clk_wiz/inst/mmcm_adv_inst/CLKIN0]] ... e. .. еще 3-4 способа получить желаемое разной степени извращенности. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Anton1990 0 10 августа, 2018 Опубликовано 10 августа, 2018 · Жалоба Приветствую! a. поставить на эти сигналы в top атрибут keep. b. или открыть дизайн после синтеза, и найдя пин источник клока для этих цепей использовать его имя для определения клока c. или взять сразу имя клока сгенерированного на этом пине. d. или в xdc сразу узнать имя клока автоматом сгенерированного на требуемом пине set_clock_groups -name cg_AGEN -asynchronous \ -group [get_clocks -include_generated_clocks -of [get_pins clk_wiz/inst/mmcm_adv_inst/CLKIN0]] ... e. .. еще 3-4 способа получить желаемое разной степени извращенности. Удачи! Rob. По пункту "а". А что этот атрибут даст? По пункту "b". Такой способ рассматривал, но так и не понял как это имя узнать. Что ни указываю все не находит. По пункту "с". Не понял. По пункту "d". Пытался сделать так, но видимо постоянно где-то ошибаюсь. Указанный вами код, я так понимаю, задает клоковую группу на clk0, который прицеплен в пину clk_out0 ip корки. Мне нужно задать аналогично группу на clk1. И далее задать желаемый констрейн false_path между этими группами. Я все правильно понимаю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 10 августа, 2018 Опубликовано 10 августа, 2018 · Жалоба Приветству.! По пункту "а". А что этот атрибут даст? По пункту "b". Такой способ рассматривал, но так и не понял как это имя узнать. Что ни указываю все не находит. По пункту "с". Не понял. По пункту "d". Пытался сделать так, но видимо постоянно где-то ошибаюсь. Указанный вами код, я так понимаю, задает клоковую группу на clk0, который прицеплен в пину clk_out0 ip корки. Мне нужно задать аналогично группу на clk1. И далее задать желаемый констрейн false_path между этими группами. Я все правильно понимаю? Забыл про пункт Alpha & Omega- читаем мануалы a. сохраняет(в основном) сигнал как есть - то есть с большой вероятностью Вы увидите цепи clk0, clk1 в топе ь. Еще раз - открываем нетлист дизайна после синтеза Open Synthesized Design находим модуль clk_wiz и смотрим от куда идет веревочка клока. Выбираем цепь или пин и в general смотрим Name c. Смотрим хотя бы в Report Clock Network или get_clocks -of [get_nets|get_pins name_from_punkt_b] d. set_clock_groups -name cg_AGEN -asynchronous ... создает группу в которой клоки упомянутые в разных -group определяются как асинхронные один к другому - пути между ними не будут учитывается при анализе делаем в tcl консоле set_clock_groups -help и читаем Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Anton1990 0 11 августа, 2018 Опубликовано 11 августа, 2018 · Жалоба Приветству.! Забыл про пункт Alpha & Omega- читаем мануалы a. сохраняет(в основном) сигнал как есть - то есть с большой вероятностью Вы увидите цепи clk0, clk1 в топе ь. Еще раз - открываем нетлист дизайна после синтеза Open Synthesized Design находим модуль clk_wiz и смотрим от куда идет веревочка клока. Выбираем цепь или пин и в general смотрим Name c. Смотрим хотя бы в Report Clock Network или get_clocks -of [get_nets|get_pins name_from_punkt_b] d. set_clock_groups -name cg_AGEN -asynchronous ... создает группу в которой клоки упомянутые в разных -group определяются как асинхронные один к другому - пути между ними не будут учитывается при анализе делаем в tcl консоле set_clock_groups -help и читаем Удачи! Rob. Спасибо. Разжовано достаточно подробно. В понедельник попробую. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться