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

timing optimisation in Quartus (то есть констрейны не удовлетворились - что делать?)

вроде бы такая тема должна быть в ТОПе, но не смог найти...

 

----------------

 

есть некий модуль в виде нетлиста (vqm), размер порядка 10К Combinational ALUT (Stratix III)

структура модуля от меня скрыта, но пути в нем длинные и с большим fanin/out

по времянке нелезет (на 10нс, -1нс slack)

 

все синхронно - один клок, к IO чипа путей нету

 

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

 

------------------

 

в отличие от ISE, как я понял, в Квартусе нет большого выбора "уровня усилий" для Fittera?

поэтому интересно, что крутить первую очередь?

 

как я понимаю, опции синтеза не окажут влияние на нетлист (vqm), но на всякий случай поставил

все по максимуму

 

опции компилятора поставил в Full incremental

 

опции фиттера, я выставил в Standard (Maximum Effort)

 

попробовал задать партиции и руками их разложить (Design Partition Planer), вобщем это улучшило критические пути

по этому модулю до -0.7, но ес-сно начали разваливаться другие модули - пока буду пытать этот путь,

 

------------------

 

вопрос, что бы посоветовали гуру?

 

1) крутить компилятор/фитер без всякой геометрии? опции, seed-ы и т.п. "шаманство" - где ставить? как?

2) пытаться постичь DSE?

3) пользуясь экспириенсом полученым при раскладки партиций в ксайлинсе, делать что-то такое и в квартусе (руками в Partition Planer)?

4) может имеет смысл прогнать vqm через синтез еще раз? как это сделать, если это не делается автоматом?

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


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

А Compilation Process Settings / Physical synthesis optimizations крутили? ИМХО именно оно этим заведует.

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


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

как я понимаю, опции синтеза не окажут влияние на нетлист (vqm)

Попробуйте включить настройку WYSIWYG Primitive Resynthesis в Analysis&Synthesis Settings. Тогда она ресинтезирует списки соединений.

 

Под руками только старый Квартус, в версии 9.0 они немного переупорядочили настройки - найдите в настройках раздел Physical Synthesis Optimization и поиграйте настройками.

 

Попробуйте следовать советам Tools>Advisors>Timing Optimization Advisor.

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


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

2) пытаться постичь DSE?

Тоже можно, он еще может впараллель пускать несколько компмиляций с разными сидами/настройками. Если процессоров бездействующих излишек.

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


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

Попробуйте отключить Incremental compilation. А в разделе Analysis & Synthesis для Optimization Technique поставить Balanced, как ни странно, это может давать лучший результат по времянке, чем Speed.

Ну и в разделах Analysis & Synthesis и Fitter Setting есть масса специфичных настроек по кнопкам More Settings.

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


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

спасибо за рекомендации.

 

-----------------------------------------

 

на одном компе DSE и Quartus пускать нельзя?

почему-то после запуска DSE отвалился квартус с внутренней ошибкой (запущенный на другом проекте с другими исходниками)

UPD: возможно валится из-за попытки пересентизировать нетлист - свалился еще раз без DSE

 

у меня 4х процессорный (коре) комп, 6Гб (вопрос с видимостью в винде пока не прояснил) - квартус сообщает, что 1 - процессор 100%, 2 процессора 25%, 4 процессора 10%

(чтобы это значило ?)

сколько параллельных процессов в DSE ставить?

 

пока удобнее под виндой, так как побыстрее на проц.

 

имеет ли смысл распределять по сетке или гемороя больше чем пользы?

процесс занимает 45-60мин (пока)

 

-----------------------------------------

 

инкрементал вроде бы помогает - те портиции, которые не удовлетворяют поставил в Source-level, то есть их как-бы переделывает, а остальное не трогает.

но попробую выключить,

начало валиться на этапе синтеза

 

Speed уберу

 

а про More Settings есть какие-либо Golden для Стратикс 3?

все-таки пока хотелось бы верить, что в Альтере эти опции выставлены "правильно"

 

-----------------------------------------

 

WYSIWYG Primitive Resynthesis есть такая опция в A&S

 

-----------------------------------------

 

Physical Synthesys вроде бы достаточно четко разбит на оптимизацию по Speed-у (performance) и Area

выставил все, кроме пайпинизации асинхронных путей

More там вроде бы нет

 

-----------------------------------------

 

мда... видимо обратно придется раскручивать настройки/чистить проект - устойчиво валится со внутренней ошибкой

 

 

--------------

 

а что означает такое сообщение?

каким "шагом" оно генерится?

то есть мне интересно - проходит ли это entity через синтез / физический синтез?

Info: Elaborating entity "grfpw" for hierarchy "leon3s:\l3:cpu:0:u0|grfpwx:\grfpw0gen:fpu0|grfpw:\x0:grfpw0"

 

====

 

ну и с партишинами, видимо, следует аккуратнее обращаться - валился квартус (A&S) вроде бы из-за них

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


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

у меня 4х процессорный (коре) комп, 6Гб (вопрос с видимостью в винде пока не прояснил) - квартус сообщает, что 1 - процессор 100%, 2 процессора 25%, 4 процессора 10%

(чтобы это значило ?)

сколько параллельных процессов в DSE ставить?

Это значит, что из всего времени компиляции 10% времени было 4 активных треда, 25% времени 2 треда (10% 4-тредности туда входят), ну а 1 тред, разумеется, все 100%. Т.е. всего 10% времени тачка загружалась на все 100.

 

Сколько процессов в DSE... ну при таких раскладах думаю 2 будет нормально. А вообще зависит на сколько синхронно они будут пиковые мультитредные загрузки давать. Может и 4 нормально будет.

 

Physical Synthesys вроде бы достаточно четко разбит на оптимизацию по Speed-у (performance) и Area

выставил все, кроме пайпинизации асинхронных путей

More там вроде бы нет

И что, не помогло? Обычно 3-5 процентов задержки критического пути вытягивает...

 

мда... видимо обратно придется раскручивать настройки/чистить проект - устойчиво валится со внутренней ошибкой

А вот это не лечится... Апгрейд/даунгрейд разве что. Сколько оно у меня не падало само по себе, я так и не понял, что именно приводило к падению. Чтобы что-то осмысленное в саппорт можно было сказать...

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


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

спасибо. накрутка опций помогла

- то есть без партиций и DSE удалось удовлетворить (отыграть около 10% задержки)

 

---------------

 

теоретические вопросы:

имеет ли смысл разбираться с партициями и их ручным размещением?

по теории софт должен бы уметь это делать лучше, но не встречал на практике.

 

в DSE можно ли "крутить" параметры прогонов (ну то есть те галки, которые расставляются в квартусе) или только seed-ы?

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


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

имеет ли смысл разбираться с партициями и их ручным размещением?

по теории софт должен бы уметь это делать лучше, но не встречал на практике.

Как я понял, это все имеет смысл ради убыстрения компиляции, залочить модули на какой-то более-менее человеческий флурплан и инкрементально собирать, не переплейсивая неизменные куски. Но это отъявленно портит тайминги относительно полного пересбора всего вместе без локов.

 

в DSE можно ли "крутить" параметры прогонов (ну то есть те галки, которые расставляются в квартусе) или только seed-ы?

Да, можно менять любые настройки, включая и сиды.

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


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

Как я понял, это все имеет смысл ради убыстрения компиляции, залочить модули на какой-то более-менее человеческий флурплан и инкрементально собирать, не переплейсивая неизменные куски. Но это отъявленно портит тайминги относительно полного пересбора всего вместе без локов.

 

а смысл уменьшения объема информации для плейсера/роутера (то есть развести 4 маленьких кусочка проще, чем 1 в 4 раза больше) и из-за этого улучшение результата (времянки)?

так для ксайлинса и латиса получалось

 

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

 

для большого виртекса даже не очень тщательное разбиение проекта на блоки и размещение этих блоков на флорплане (planahead) позволяло сильно улучшить результаты - дополнительно еще 5-10% по сравнению с максимальными опциями по скорости и целому проекту

 

вопрос - для Альтеры (большие кристаллы) кто-нибудь использует такую методу (тул, как я понял, в квартусе есть)?

или может быть пользовал, но не получил результата?

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


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

вопрос - для Альтеры (большие кристаллы) кто-нибудь использует такую методу (тул, как я понял, в квартусе есть)?

или может быть пользовал, но не получил результата?

Я вот пытался расфлурпланить прототип своего микроконтроллера, правда кристалл не особо большой, 12К лутовый циклон, заметил явное ухудшение времянки из-за удлинения разводки меж блоков (блоки - это внешние устройства МК, с отдельными шинами чтения и записи, т.е. двухпортовые, и там огромный мультиплексор получался на все I/O space процесора, который в результате моего флурпланенья никак не выходил оптимальным и устраивал критический путь). Зато время перекомпиляции - раз, два, и готово. А если без флурплана, то компилирует хрен знает сколько, зато всегда укладывает в констрейны.

 

а смысл уменьшения объема информации для плейсера/роутера (то есть развести 4 маленьких кусочка проще, чем 1 в 4 раза больше) и из-за этого улучшение результата (времянки)?

 

У меня пока что получалось ухудшение из-за того, что та логика, которая склеивает блоки меж собой, никак не выходила столь оптимальной, как без разбивки на куски. Да и плейсер я урезаю в возможности выбора стратегий размещения.

 

Еще, как вариант, я просто не умею их, флурпланы, готовить...

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


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

вопрос - для Альтеры (большие кристаллы) кто-нибудь использует такую методу (тул, как я понял, в квартусе есть)?

или может быть пользовал, но не получил результата?

 

имеено флурпланом не пользовался, т.к. смысла не было, но назначение партиций типа Post-Fit и разрешение инкрементальной компиляции, уменьшает время на порядок (вместо ~20 минут ~= 9 минут), хотя по размеру проигрыш есть. Таймквест говорит что ошибок нет, но в моих текущих проектах (радиомодемы) связи простые и на каждую связь между блоками я ставлю триггеры %)

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


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

имеено флурпланом не пользовался, т.к. смысла не было, но назначение партиций типа Post-Fit и разрешение инкрементальной компиляции, уменьшает время на порядок (вместо ~20 минут ~= 9 минут), хотя по размеру проигрыш есть. Таймквест говорит что ошибок нет, но в моих текущих проектах (радиомодемы) связи простые и на каждую связь между блоками я ставлю триггеры %)

Тоже пробывал партиции. Заметного выигрыша по времени не заметил. А вот баги с "будто бы не изменилось, а RTL исправлен" были.

Нужно постоянно перепроверять, а правильно ли про-инкрементировал проект в этот раз. Да и обновление сигналтапа чаще всего игнорирует.

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


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

Тоже пробывал партиции. Заметного выигрыша по времени не заметил. А вот баги с "будто бы не изменилось, а RTL исправлен" были.

Нужно постоянно перепроверять, а правильно ли про-инкрементировал проект в этот раз. Да и обновление сигналтапа чаще всего игнорирует.

 

именно на баги инкрементальной компиляции не наступал ни разу, у меня все работает корректно %)

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


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

имеено на баги инкрементальной компиляции не наступал ни разу, у меня все работает корректно %)

Это на какой-то определенной версии было... Значит просто пронесло мимо :)

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


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

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

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

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

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

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

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

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

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

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