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

 
 
 
Reply to this topicStart new topic
> Несколько дилетантских вопросов по TimeQuest
limbast
сообщение Sep 29 2017, 09:04
Сообщение #1





Группа: Участник
Сообщений: 9
Регистрация: 28-01-05
Пользователь №: 2 252



Приветствую всех.
Начал заниматься ПЛИС. Работаю с MAX10.
Сделал проектик чтения АЦП по SPI. Период чтения 2МГц, частота SPI - 50МГц. При компиляции варнинги от TimeQuest. Начал разбираться.
В основном модуле вызывается модуль PLL, генерирующий из входных 50МГц выходные 100МГц.
Также имеются модули конфигурирования АЦП и чтения АЦП.
TimeQuest выдает следующие варнинги:
Node: adc_config:adc_conf|sck was determined to be a clock but was found without an associated clock assignment.
Node: adc_read_quadSPI:adc_meas|sck was determined to be a clock but was found without an associated clock assignment.
Node: adc_config:adc_conf|cur.cs_set was determined to be a clock but was found without an associated clock assignment.
Register cnvst_signal:cnvst_create|enable_reg is being clocked by adc_config:adc_conf|cur.cs_set
Node: adc_read_quadSPI:adc_meas|cur.000 was determined to be a clock but was found without an associated clock assignment.
Register counter_sum[0] is being clocked by adc_read_quadSPI:adc_meas|cur.000
Deriving Clock Uncertainty. Please refer to report_sdc in TimeQuest to see clock uncertainties.
PLL cross checking found inconsistent PLL clock settings:
Node: generator|altpll_component|auto_generated|pll1|clk[0] was found missing 1 generated clock that corresponds to a base clock with a period of: 20.000


1) Вообще, мне не понятно почему клоки (что генерируемые PLL, что логикой) нужно описывать, когда они все генерируются логикой ПЛИС, собственно для этого TimeQuest и создан, он сам должен их просчитывать. Ну да ладно, принимаю как должное.
2) Можно ли комментировать строки в файле SDC? Как это делается?
3) Решил начать с клока PLL. Выходным клоком PLL у меня является цепь clk_100MHz. TimeQuest же ругается на generator|altpll_component|auto_generated|pll1|clk[0], а вот самой цепи clk_100MHz в Name Finder нет. Правильно ли я понимаю, что TimeQuest не понимает цепи проекта, а только регистры, пины микросхемы и порты модулей?
Для определения клока PLL 100МГц сделал так (покопавшись в интернете)
derive_clock_uncertainty
create_clock -period 50MHz -name {clk_50MHz_in} [get_ports {clk_50MHz_in}]
derive_pll_clocks -create_base_clocks
set clk_100MHz generator|altpll_component|auto_generated|pll1|clk[0]
set_clock_groups -exclusive -group [list $clk_100MHz clk_50MHz_in]

Причем clk_100MHz это не цепь из моего проекта, а имя, которое я могу теперь использовать в TimeQuest. И такая же ситуация с любыми имена, которые я буду создавать в TCL скрипте. Верно?
Команда set_clock_groups -exclusive -group [list $clk_100MHz clk_50MHz_in] говорит, что тактовые частоты асинхронны друг другу. TimeQuest будет считать сдвиги между частотами?
4) Далее имеются клоки adc_config:adc_conf|sck и adc_read_quadSPI:adc_meas|sck, получаемые делением на 2 частоты 100МГц. Делаем для каждого create_generated_clock, set_clock_groups -exclusive и именуем клоки как хотим? Все остальное TimeQuest посчитает и покажет?
5) Остаются клоки adc_config:adc_conf|cur.cs_set и adc_read_quadSPI:adc_meas|cur.000. Начнем с того, что регистров и цепей с таким названием в проекте нет, однако, первый это похоже сигнал CS конфигурирования АЦП. Он вырабатывается лишь один раз, это не клок, однако задержки его посмотреть надо.
Второй, судя по логу, тактирует регистр суммы, которая обновляется также с частотой чтения АЦП 2МГц. Название какое то странное adc_read_quadSPI:adc_meas|cur.000. Откуда TimeQuest его взял? Раз он на него ругается, то его нужно по любому описывать и опять же давать любое название?

Заранее спасибо за пояснения.

Сообщение отредактировал limbast - Sep 29 2017, 09:05
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Sep 29 2017, 09:43
Сообщение #2


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

Группа: Свой
Сообщений: 1 822
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(limbast @ Sep 29 2017, 12:04) *
2) Можно ли комментировать строки в файле SDC? Как это делается?
sdc -- это обыкновенный tcl-скрипт со всеми вытекающими.

По остальному попробуйте начать с этого: http://caxapa.ru/thumbs/442268/TimeQuest_for_dummies.pdf
Go to the top of the page
 
+Quote Post
limbast
сообщение Sep 29 2017, 10:00
Сообщение #3





Группа: Участник
Сообщений: 9
Регистрация: 28-01-05
Пользователь №: 2 252



Цитата(andrew_b @ Sep 29 2017, 12:43) *
По остальному попробуйте начать с этого: http://caxapa.ru/thumbs/442268/TimeQuest_for_dummies.pdf

Естественно это я читал. Собственно благодаря статье я и написал кое какие констрейны, но вопросы остались.

Сообщение отредактировал limbast - Sep 29 2017, 10:00
Go to the top of the page
 
+Quote Post
videoscan
сообщение Sep 30 2017, 17:20
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 16-09-14
Из: Москва
Пользователь №: 82 826



Цитата(limbast @ Sep 29 2017, 10:04) *
2) Можно ли комментировать строки в файле SDC? Как это делается?


Знак комментария

#

На остальные вопросы отвечать недостаточно компетентен.

Цитата(andrew_b @ Sep 29 2017, 10:43) *
sdc -- это обыкновенный tcl-скрипт со всеми вытекающими.

По остальному попробуйте начать с этого: http://caxapa.ru/thumbs/442268/TimeQuest_for_dummies.pdf

Я бы порекомендовал другие статьи этого же автора (много общего, но есть и отличия)
Go to the top of the page
 
+Quote Post
dxp
сообщение Oct 1 2017, 11:29
Сообщение #5


Adept
******

Группа: Свой
Сообщений: 3 369
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Я бы посоветовал этот документ. Имхо, это лучший. Внятный, покрывающий все основные и сопутствующие аспекты, включая основы STA и методику использования таймквеста.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Shivers
сообщение Oct 2 2017, 05:56
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 599
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(limbast @ Sep 29 2017, 12:04) *
Правильно ли я понимаю, что TimeQuest не понимает цепи проекта, а только регистры, пины микросхемы и порты модулей?

Да, все так. Читайте синтаксис команд в хелпе - нужны либо пины, либо порты.

Цитата(limbast @ Sep 29 2017, 12:04) *
set clk_100MHz generator|altpll_component|auto_generated|pll1|clk[0]
Причем clk_100MHz это не цепь из моего проекта, а имя, которое я могу теперь использовать в TimeQuest. И такая же ситуация с любыми имена, которые я буду создавать в TCL скрипте. Верно?

Вы задали переменную clk_100MHz со значением generator|altpll_component|auto_generated|pll1|clk[0]. В скрипте её можно использовать после задания, да. Почитайте про язык Tcl

Цитата(limbast @ Sep 29 2017, 12:04) *
Команда set_clock_groups -exclusive -group [list $clk_100MHz clk_50MHz_in] говорит, что тактовые частоты асинхронны друг другу. TimeQuest будет считать сдвиги между частотами?

Могу ошибаться, но этот констрейнт говорит, что в проект поступает либо один клок, либо другой. Т.е. эксклюзивно. Асинхронные группы задаются другими ключами.
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Oct 2 2017, 08:36
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



5 копеек в кассу: по поводу временного анализа в плане setup-hold и т.п. у xilinx намного толковее написано чем у альтеры. По крайней мере у меня сложилось такое ощущение, когда читал...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th October 2017 - 17:48
Рейтинг@Mail.ru


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