реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Составное имя сигнала, Запись составного имени сигнала в xdc
Anton1990
сообщение Aug 10 2018, 14:59
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584



Всем привет.

Дело происходит в 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 говорит что такие сигналы не найдены.
Заранее спасибо за ответы.
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Aug 10 2018, 15:25
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!
Цитата(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.




Go to the top of the page
 
+Quote Post
Anton1990
сообщение Aug 10 2018, 15:50
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584



Цитата(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 между этими группами. Я все правильно понимаю?
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Aug 10 2018, 17:11
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветству.!
Цитата(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.

Go to the top of the page
 
+Quote Post
Anton1990
сообщение Aug 11 2018, 03:26
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584



Цитата(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.

Спасибо. Разжовано достаточно подробно. В понедельник попробую.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th June 2025 - 21:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.0141 секунд с 7
ELECTRONIX ©2004-2016