limbast 0 29 сентября, 2017 Опубликовано 29 сентября, 2017 (изменено) · Жалоба Приветствую всех. Начал заниматься ПЛИС. Работаю с 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 Причем clk_100MHz это не цепь из моего проекта, а имя, которое я могу теперь использовать в TimeQuest. И такая же ситуация с любыми имена, которые я буду создавать в TCL скрипте. Верно? Команда set_clock_groups -exclusive -group говорит, что тактовые частоты асинхронны друг другу. 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 его взял? Раз он на него ругается, то его нужно по любому описывать и опять же давать любое название? Заранее спасибо за пояснения. Изменено 29 сентября, 2017 пользователем limbast Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 15 29 сентября, 2017 Опубликовано 29 сентября, 2017 · Жалоба 2) Можно ли комментировать строки в файле SDC? Как это делается?sdc -- это обыкновенный tcl-скрипт со всеми вытекающими. По остальному попробуйте начать с этого: http://caxapa.ru/thumbs/442268/TimeQuest_for_dummies.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
limbast 0 29 сентября, 2017 Опубликовано 29 сентября, 2017 (изменено) · Жалоба По остальному попробуйте начать с этого: http://caxapa.ru/thumbs/442268/TimeQuest_for_dummies.pdf Естественно это я читал. Собственно благодаря статье я и написал кое какие констрейны, но вопросы остались. Изменено 29 сентября, 2017 пользователем limbast Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
videoscan 0 30 сентября, 2017 Опубликовано 30 сентября, 2017 · Жалоба 2) Можно ли комментировать строки в файле SDC? Как это делается? Знак комментария # На остальные вопросы отвечать недостаточно компетентен. sdc -- это обыкновенный tcl-скрипт со всеми вытекающими. По остальному попробуйте начать с этого: http://caxapa.ru/thumbs/442268/TimeQuest_for_dummies.pdf Я бы порекомендовал другие статьи этого же автора (много общего, но есть и отличия) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 43 1 октября, 2017 Опубликовано 1 октября, 2017 · Жалоба Я бы посоветовал этот документ. Имхо, это лучший. Внятный, покрывающий все основные и сопутствующие аспекты, включая основы STA и методику использования таймквеста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shivers 0 2 октября, 2017 Опубликовано 2 октября, 2017 · Жалоба Правильно ли я понимаю, что TimeQuest не понимает цепи проекта, а только регистры, пины микросхемы и порты модулей? Да, все так. Читайте синтаксис команд в хелпе - нужны либо пины, либо порты. 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 Команда set_clock_groups -exclusive -group говорит, что тактовые частоты асинхронны друг другу. TimeQuest будет считать сдвиги между частотами? Могу ошибаться, но этот констрейнт говорит, что в проект поступает либо один клок, либо другой. Т.е. эксклюзивно. Асинхронные группы задаются другими ключами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 2 октября, 2017 Опубликовано 2 октября, 2017 · Жалоба 5 копеек в кассу: по поводу временного анализа в плане setup-hold и т.п. у xilinx намного толковее написано чем у альтеры. По крайней мере у меня сложилось такое ощущение, когда читал... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться