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

Об Altera / Time Quest для самых маленьких

Как и во многих сферах человеческой деятельности и бездействия, в работе со средами разработки ПЛИС есть свои устоявшиеся основы, упоминающиеся в простом разговоре как нечто само собой разумеющееся, а оттого на форумах обычно не разжеванные. Конечно, все есть в официальной документации, но на форуме-то быстрее спросить :)

 

Вопрос простой (на каком этапе в Альтере происходит проверка констрейнов по частоте, и зачем там нужен Time Quest), но спрашивать буду нудно, чтобы не возникло неясностей, что же именно спрашивается.

 

Собственно, вопрос вот в чем. Возникли непонятки при первом знакомстве с Альтерой, а именно с синтезом в Квартусе.

При работе в Xilinx ISE процесс создания битстрима из высокоуровневого описания (HDL) выглядит примерно так (в терминах ISE):

- логический синтез из высокоуровневого описания в библиотечные элементы целевой ПЛИС (XST, или сторонний синтезатор);

- физический синтез, включающий в себя:

-- трансляцию (Translate)

-- маппинг (Map)

-- трассировку (Place and route, PAR)

-- подготовку битстрима (Bitgen).

 

Собственно, на физический синтез в Xilinx накладываются различные ограничения (констрейны). В общем случае это привязка портов к физическим ножкам микросхемы и задание характеристик (частот) внешних тактовых сигналов.

Физический синтез в Xilinx на этапе PAR считается выполненным с ошибками (!), если не удалось выполнить констрейны по заданным частотам (т.н. "проект не развелся на N МГц"). Т.е. к окончанию процесса PAR и до формирования битстрима я уже знаю, вытянул ли синтезатор внутреннюю схему для работы на нужной частоте. По завершении процесса PAR указывается, какие частоты не удалось вытянуть, выводятся наиболее проблемные цепи, какие времена получились взамен требуемых и так далее.

 

Сегодня впервые прикоснулся к Квартусу 12.0 (кристалл Stratix III). Процесс выглядит там примерно как:

- логический синтез и маппинг (quartus_map);

- физический синтез, Fitter (quartus_fit);

- создание битстрима (quartus_asm).

Задал SDC констрейны на частоту (задал число несколько выше требуемого, дабы оценить возможности Альтеры).

После довольно долгих процессов маппинга и фита (1,5 часа), я получил сообщение, что все готово и прошло Successfully. Однако, я нигде не смог найти информации о том, какая получилась частота. После чего храбро запустил Analyze в закладке Time Quest, и Квартус ушел в астрал еще на 2 часа (!), после чего радостно сообщил мне, что констрейны не выполнены и дал список проблемных внутренних цепей для нескольких моделей (Slow, Fast, с разной температурой и Vint).

 

Внимание вопрос: неужели выполнение констрейнов по частотам не анализируется на этапе Fitter? Мне казалось, что в это время как раз происходит магия, связанная с попыткой достичь требуемые частоты, и к завершению процесса о полученных характеристиках уже все известно. Зачем нужно запускать еще некий процесс, сравнимый по времени со всем остальным синтезом, чтобы узнать о проблемах с времянкой? Что вообще дает анализ Time Quest? Зачем дается информация по нескольким временным(?) моделям?

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


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

Задал SDC констрейны на частоту (задал число несколько выше требуемого, дабы оценить возможности Альтеры).

После довольно долгих процессов маппинга и фита (1,5 часа), я получил сообщение, что все готово и прошло Successfully. Однако, я нигде не смог найти информации о том, какая получилась частота. После чего храбро запустил Analyze в закладке Time Quest, и Квартус ушел в астрал еще на 2 часа (!), после чего радостно сообщил мне, что констрейны не выполнены и дал список проблемных внутренних цепей для нескольких моделей (Slow, Fast, с разной температурой и Vint).

Непонятно, конечно, зачем Вам потребовалось задать частоту выше требуемой... В некоторых версиях если жмякнуть на analyzer в окне tasks, процесс компиляции идет по новой - глюк ПО. Я запускаю через processing->start ... Чтобы посмотреть просто на максимальную частоту не обязательно входить в среду анализатора - достаточно в окне report раскрыть вкладку на analyzer и посмотреть заданные частоты и анализ всех моделей.

Внимание вопрос: неужели выполнение констрейнов по частотам не анализируется на этапе Fitter? Мне казалось, что в это время как раз происходит магия, связанная с попыткой достичь требуемые частоты, и к завершению процесса о полученных характеристиках уже все известно. Зачем нужно запускать еще некий процесс, сравнимый по времени со всем остальным синтезом, чтобы узнать о проблемах с времянкой? Что вообще дает анализ Time Quest? Зачем дается информация по нескольким временным(?) моделям?

Анализ констрейнтов выполняется на этапе fitter. Сам раньше работал с xilinx и принципиальных отличий по этапам не заметил. Несколько временных моделей позволяют наиболее точно сказать о работоспособности в конкретных условиях (температура, загруженности, питание и т.д.), по умолчанию каждый элемент будет иметь три версии задежки от входа до выхода (это можно даже просмотреть в sdf/sdo файлах). Сам timequest - фактически интерфейс, позволяющий наглядно задать и проанализировать временные ограничения и пути сигналов. Причем пути можно смотреть не только тех сигналов, которые не уложились, но вообще все. Timequest также выведет все сигналы, которые с его точки зрения должны быть заданы - задержка на входы-выходы, сигналы которые используются как тактовые, но для них не указано чистоты, все переходы сигналов из одного клокового домена в другой и многое другое.

PS хоть Вы и не просили ссылки на документацию, но основные понятия все-таки советую почитать - перевод на русский http://www.naliwator.narod.ru/

статьи des00 http://kit-e.ru/articles/plis/2010_9_51.php

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


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

Непонятно, конечно, зачем Вам потребовалось задать частоту выше требуемой...

 

Собственно, "посмотреть, что будет" :) Задавал частоту на 5% больше необходимой. Но это не главное. Главное, что меня смутило - отсутствие явных указаний на нарушение констрейнов после этапа Fitter и длительный анализ Time Quest.

Действительно, возможно, что весь синтез перезапускался после запуска анализа, хотя в закладках действий прогресс пошел именно напротив Time Quest.

В итоге, можно ли без анализа в Time Quest увидеть результат по констрейнам после фиттера? Т.к. кроме success я больше ничего не нашел, да и сообщения в логе были достаточно скупы (после сотен и сотен строк в ISE это как-то непривычно).

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


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

Собственно, "посмотреть, что будет" :) Задавал частоту на 5% больше необходимой. Но это не главное. Главное, что меня смутило - отсутствие явных указаний на нарушение констрейнов после этапа Fitter и длительный анализ Time Quest.

Действительно, возможно, что весь синтез перезапускался после запуска анализа, хотя в закладках действий прогресс пошел именно напротив Time Quest.

В итоге, можно ли без анализа в Time Quest увидеть результат по констрейнам после фиттера? Т.к. кроме success я больше ничего не нашел, да и сообщения в логе были достаточно скупы (после сотен и сотен строк в ISE это как-то непривычно).

из того что вам рекомендовали прочитать %)

TimeQuest — это программа для проверки выполнения временных ограничений, описанных в файле *.sdc. Тут следует упомянуть первое правило TimeQuest, которое нужно учитывать при работе: если TimeQuest рапортует вам оботсутствии ошибок, то не надо заранее полагать, что все хорошо. Может быть, вы просто не задали часть временных ограничений.

Таким образом, главное отличие от Classic Timing Analyzer в том, что TimeQuest проверяет только те ограничения, которые вы задали. Поэтому при разработке файла *.sdc внимательно читайте предупреждения, которые он вам выдает, и обязательно проверьте, все ли временные ограничения вы задали.

 

ЗЫ. вкладка Reports содержит в себе в том числе и отчеты временного анализа, по 3-м corner case.

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


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

Пристыженно приступил к чтению :)

Думаю, ветка себя оправдала - ответы получены даже быстрее, чем предполагалось.

 

Впрочем, я пока не понял, можно ли увидеть результаты по времянке без Time Quest, и правда ли что последний затрачивает на анализ значительное время (дополнительно к времени фиттера).

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


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

Пристыженно приступил к чтению :)

Думаю, ветка себя оправдала - ответы получены даже быстрее, чем предполагалось.

 

Впрочем, я пока не понял, можно ли увидеть результаты по времянке без Time Quest, и правда ли что последний затрачивает на анализ значительное время (дополнительно к времени фиттера).

 

Так Вам же написали - в отчете Compilation report. Вон картинка. Даже красным выделяет если констрейны не проканали. Кратко можно посмотреть даже что именно. Более детально - Time Quest. На больших проектах он у меня тоже долго думает, но не 2 часа. Проект на 40к анализирует примерно 3-5мин.

post-15968-1349121071_thumb.jpg

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


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

И во время работы фиттера есть сообщения о плохих слэках.

post-18832-1349188903_thumb.png

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


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

все одинаково

 

если для ксайлинсов используете planahead для анализа результатов, то таймквест это то же самое, но лучше, имхо, сделано

(насколько я понимаю, последние версии ISE умеют уже понимать SDC или planahead умеет транслировать)

 

у старых квартусов была кнопка "использовать классический временной анализ", вряд ли ее убрали (иначе олдфаги разозляться) - ее нужно выключить

 

кроме трудов des00 есть еще документ, раньше был на альтере, сечас только тут нашел http://www.alteraforum.com/forum/showthread.php?t=1269 (боян, ссылки на него на форуме тоже есть)

это, имхо, самый простой и понятный пример использования sdc, который я видел

 

 

 

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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