Перейти к содержанию
    

Что означает "auto_generated" в create_generated_clock?

Разбираюсь с TimeQuest и конкретно с create_generated_clock, описывающим умножитель частоты. Вот в этом документе Альтеры на стр.8 пишется

create_generated_clock -source \
	pll|altpll_component|auto_generated|pll1|inclk[0] \
	-name my_pll_clk[0] pll|altpll_component|auto_generated|pll1|clk[0]

А на стр.14

create_generated_clock 
  	-source inst1|altpll_component|pll|inclk[0] -name \
	inst1|altpll_component|pll|clk[0] inst1|altpll_component|pll|clk[0]

Не ясно выражение pll|altpll_component|auto_generated|pll1|clk[0].

Насколько я понимаю,
pll - имя экземпляра (инстанса) умножителя
altpll_component - что-то вроде библиотечного названия альтеровского умножителя
auto_generated - ???
pll1 - я думал, что это название умножителя, который был сгенерирован визардом, но в примере умножитель называется my_pll / inst1, так что тоже ???
clk[0] - очевидно, выход с умножителя. Но почему clk[0], а не c0 или c[0]?

1. Что такое auto_generated и зачем оно нужно?
2. Что такое pll1 и зачем оно нужно?
3. Почему clk[0], а не c0?

Изменено пользователем flammmable

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Давно дело было, всего не помню, но - когда надо было прописать клок, то обычно не вдавался в детали присвоения имен альетры, а тупо копировал путь из timeQuest или SignalTap. Там в фильтре можно задать маску имени, например, my_pll. В выхлопе программы поиска выбрать соответствующие пути до самих клоков. Не вдаваясь в детали имен

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, R6L-025 said:

Давно дело было, всего не помню, но - когда надо было прописать клок, то обычно не вдавался в детали присвоения имен альетры, а тупо копировал путь из timeQuest или SignalTap. Там в фильтре можно задать маску имени, например, my_pll. В выхлопе программы поиска выбрать соответствующие пути до самих клоков. Не вдаваясь в детали имен

Мне пришла в голову смешная мысль. Что если попробовать на профильных форумах первым ответом на вопрос писать "да хрен его знает". Пойду попробую на easyelectronics ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!
 

37 minutes ago, flammmable said:

pll|altpll_component|auto_generated|pll1|clk[0].

Это просто полное иерархическое имя компонента. Где то у вас есть модуль pll в котором по иерархии вниз стоят модули altpll_component , auto_generated и в конце уже pll1.  Ну и частью  этой иерархии  может быть не только имя модулей,  а также  имя  веток в  generate if/for.   

 

Удачи!  Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, RobFPGA said:

Приветствую!
 

Это просто полное иерархическое имя компонента. Где то у вас есть модуль pll в котором по иерархии вниз стоят модули altpll_component , auto_generated и в конце уже pll1.  Ну и частью  этой иерархии  может быть не только имя модулей,  а также  имя  веток в  generate if/for.   

 

Удачи!  Rob.

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, dvladim said:

Для Альтеры удобнее derive_pll_clocks особенно если не переименовываете клоки.

Но derive_pll_clocks делает слишком длинное название клока. Как его эффективно подставлять, скажем, в set_input_delay?

Изменено пользователем flammmable

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 hours ago, dvladim said:

Для Альтеры удобнее derive_pll_clocks особенно если не переименовываете клоки.

 

23 minutes ago, flammmable said:

Но derive_pll_clocks делает слишком длинное название клока. Как его эффективно подставлять, скажем, в set_input_delay?

 

Если я не путаю подробности команды create_generated_clock между Altera и Xilinx, то у нее вроде была опция -add, позволяющая применить последовательно
 

derive_pll_clocks

create_generated_clock -add <bla-bla-bla>

где в последнем вы назначаете то имя для клока, какое вам нравится (по сути, добавляется alias).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 часов назад, Raven сказал:

где в последнем вы назначаете то имя для клока, какое вам нравится (по сути, добавляется alias)

А так ли? По-моему добавляется второй клок и при STA будут рассматриваться оба.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В Vivado, насколько помню, рекомендованный способ переименовать клок такой:

 

create_generated_clock -name <clock_name> [get_pins <path-to-pin-of-clock-source-module>]

 

Как такое в Quartus делается (и делается ли) не в курсе, не пользовался. После derive_pll_clocks длинные имена-пути просто обзывал через переменную:

set OUT_CLK <very-very-long-path-to-clock-name>
  
...
  
set_output_delay -clock $OUT_CLK <delay> [<targets>]


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, dxp said:

Как такое в Quartus делается (и делается ли) не в курсе, не пользовался. После derive_pll_clocks длинные имена-пути просто обзывал через переменную:

Так вы просто подменяете длинную строку пути на вызов значения переменной. Во всех отчетах Квартус будет по-прежнему оперировать длинным путем. Другое дело - если назначить псевдоним для сущности с длинным путем: тогда будет использоваться это короткое имя.

On 6/4/2021 at 8:58 PM, dvladim said:

А так ли? По-моему добавляется второй клок и при STA будут рассматриваться оба.

Посмотрел в проектах. Эта опция ("-add") - точно есть в Квартусе (в Вивадо не проверял), и в нем новый короткий псевдоним клока полностью заменяет длинное имя в отчетах (без дублирования). Да даже если бы и было дублирование - не велика беда,- просто можно было бы работать с коротким именем, не обращая внимание на другое представление (оно все равно будет подтягиваться за своим альтер эго).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 hours ago, Raven said:

Эта опция ("-add") - точно есть в Квартусе (в Вивадо не проверял), и в нем новый короткий псевдоним клока полностью заменяет длинное имя в отчетах (без дублирования).

В Вивадо тоже есть, т.к. это стандарт SDC. Вот только вы забываете что опция -add добавляет генерируемый клок к уже существуещему на net'е. То есть фактически пропагироваться будет оба клока: базовый и генерируемый. Плохо это лил хорошо - зависит полностью отпроекта. Просто не стоит забывать такую маленькую деталь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 часов назад, Raven сказал:

Так вы просто подменяете длинную строку пути на вызов значения переменной. Во всех отчетах Квартус будет по-прежнему оперировать длинным путем. Другое дело - если назначить псевдоним для сущности с длинным путем: тогда будет использоваться это короткое имя.

Я отвечал на эту фразу:

04.06.2021 в 13:01, flammmable сказал:

Но derive_pll_clocks делает слишком длинное название клока. Как его эффективно подставлять, скажем, в set_input_delay?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...