Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Составное имя сигнала
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Среды разработки - обсуждаем САПРы
Anton1990
Всем привет.

Дело происходит в 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
Приветствую!
Цитата(Anton1990 @ Aug 10 2018, 17:59) *
Всем привет.

Дело происходит в 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
Цитата(RobFPGA @ Aug 10 2018, 18:25) *
Приветствую!

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
Приветству.!
Цитата(Anton1990 @ Aug 10 2018, 18:50) *
По пункту "а". А что этот атрибут даст?
По пункту "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
Цитата(RobFPGA @ Aug 10 2018, 20:11) *
Приветству.!
Забыл про пункт 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.

Спасибо. Разжовано достаточно подробно. В понедельник попробую.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.