Jump to content

    
Restinstage

Отличия синтеза проекта на Cyclone III в Quartus 9.0 и 13.1

Recommended Posts

16 hours ago, Restinstage said:

Вот сравнил, все идентично.

Я имел в виду - вывести на печать и сравнить все относящиеся к делу значения внутренних переменных Quartus, а не настройки qsf-файла. Мы это одинаково поняли?

Share this post


Link to post
Share on other sites
17 hours ago, Leka said:

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

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

16 hours ago, gridinp said:

Ещё при сравнении имейте ввиду, что после стирания директории db результат компиляции может быть один, а при повторных компиляциях другой

Да, я специально создал два одинаковых проекта в 9.0 и 13.1, чтоб директории не переписывались.

 

6 hours ago, warrior-2001 said:

Абсолютно верно!

Не советую прыгать на новую версию для этих камней.

А по поводу размером - что эта информация вам даст?

Я с таким часто сталкивался, но в итоге, если проект утаптывается в объём и проходит временные ограничения - то мне всё равно - 15% или 25%.

Не думаю, что от этого критически изменится потребление.

П.С. - вангую, что есть в проекте IP блоки. Их пересборка под новую версию и привела к росту проекта. В IP блоках что-то улучшили и допилили согласно Errdata.

А почему именно 9.1 сп2? я использую 9.0, потому что нужна еще поддержка FLEX10K, это последняя версия с ними. Ну как, все таки 7% сверху из ниоткуда многовато, это ж я еще далеко не все собрал. IP блоков нет

3 hours ago, Leka said:

Сейчас проверил. Взял проект (USB FS), получил прошивку для Циклона-3 в Квартусе 9.1, залил в Циклон-4, работает (значит, будет работать и в Циклоне-10ЛП). Но синтез в Квартусе 13.1 немного лучше (и поддержка Верилога лучше).

У меня пара модулей на SV, поэтому 13.1.

 

3 hours ago, pavlovconst said:

Есть настройки, которые явно прописаны в QSF файле. А кроме них, есть еще большое количество настроек "по умолчанию", которые тоже влияют на проект, но в QSF не прописаны. Вот они-то и могут меняться от версии к версии среды. Видели в логах такое сообщение? 

https://www.intel.com/content/www/us/en/programmable/quartushelp/13.0/mergedProjects/msgs/msgs/iacf_where_to_view_default_changes.htm

 

ПРоверил, нет такого сообщения. Кст в 13.1 компилится в два раза дольше чем в 9.0. Кол-во регистров одинаковое, а вот LE сильно больше в 13.

Share this post


Link to post
Share on other sites
20 hours ago, Restinstage said:

Какбэ должно быть наоборот, или так же.

Как раз не обязательно. Из упомянутого могло закрутить критические пути, но чтобы обойти их или соседние соединения не пострадали появляется дублирование компонентов, которое отражается на Утилизации. Ещё момент про Эррату - возможно какие-то комбинации и правду стают запрещёнными и вместо синхронного ресета используется асинхронный ресет через флоп (к примеру). Отсюда так же будет влияние на количество компонентов.

И последнее но не маловажное: Новая версия "ласково" подталкивает на переход на новую платформу ибо производителю выгодно, чтобы Вы покупали больше новых компонентов, чем сидели на куче старых. Это может быть скрыто, но проанализировав выходной схематик, наверное можно будет понять где добавляется что-то новое и не совсем нужное.

Share this post


Link to post
Share on other sites
3 hours ago, Raven said:

Я имел в виду - вывести на печать и сравнить все относящиеся к делу значения внутренних переменных Quartus, а не настройки qsf-файла. Мы это одинаково поняли?

Не совсем понял, что вы подразумеваете под внутренними переменными Quartus.

Настройки QSF файлов сравнил, все одинаково, кроме

set_global_assignment -name LL_ROOT_REGION ON -section_id "Root Region"
set_global_assignment -name LL_MEMBER_STATE LOCKED -section_id "Root Region"

которые были в 9, но не было в 13. Добавил, эффекта нет.

Share this post


Link to post
Share on other sites
2 hours ago, Nick_K said:

Из упомянутого могло закрутить критические пути, но чтобы обойти их или соседние соединения не пострадали появляется дублирование компонентов, которое отражается на Утилизации. Ещё момент про Эррату - возможно какие-то комбинации и правду стают запрещёнными и вместо синхронного ресета используется асинхронный ресет через флоп (к примеру). Отсюда так же будет влияние на количество компонентов.

И как можно это компенсировать настройками, и какими? Что хоть потыкать, для эксперименту?

 

1 hour ago, Leka said:

Кстати, в этом файле приводится список изменений настроек по версиям Квартуса.

Почему-то этот файл был только в варианте проекта для Q13.1. В проекте 9.0 его не было, подсунул из 13 - ничего не изменилось

Share this post


Link to post
Share on other sites
1 hour ago, Restinstage said:

Почему-то этот файл был только в варианте проекта для Q13.1. В проекте 9.0 его не было, подсунул из 13 - ничего не изменилось

После установки 9.0 был в папке quartus/bin. Скорее, надо не из 13.1 подсовывать в 9.0, а попробовать выключить новые опции в 13.1, которых не было в 9.0.

Емнип, с 9.0sp1 сразу перешел на 13.1, ухудшения синтеза не заметил (раньше всегда предварительно делал свою оценку требуемых ресурсов, и сравнивал с результатом синтеза, при значительных расхождениях разбирался в причинах).

Share this post


Link to post
Share on other sites
18 minutes ago, Leka said:

После установки 9.0 был в папке quartus/bin. Скорее, надо не из 13.1 подсовывать в 9.0, а попробовать выключить новые опции в 13.1, которых не было в 9.0.

Емнип, с 9.0sp1 сразу перешел на 13.1, ухудшения синтеза не заметил (раньше всегда предварительно делал свою оценку требуемых ресурсов, и сравнивал с результатом синтеза, при значительных расхождениях разбирался в причинах).

Все, увидел. В шапке обоих файлов есть # Default value changes, и там для 9.0 только

# In 9.0, the default value of assignment ENABLE_BENEFICIAL_SKEW_OPTIMIZATION has changed to "On".

Но они и так в обоих файлах "On".

SYNTH_TIMING_DRIVEN_SYNTHESIS в 9.0 "Off", в 13.1  "On", поменял, не повлияло.

Больше описанных отличий не нашел, очень уж много там.

Share this post


Link to post
Share on other sites
3 hours ago, Restinstage said:

Что хоть потыкать, для эксперименту?

Попробуйте вкл/выкл register duplication и register balancing, Первое точно для размножения, второе влияет на логику больше.

Share this post


Link to post
Share on other sites
15 hours ago, Nick_K said:

Попробуйте вкл/выкл register duplication и register balancing, Первое точно для размножения, второе влияет на логику больше.

Попробовал On/Off register duplication, Logic Cell Insertion - Logic Duplication, register balancing не нашел. Не изменилось.

Share this post


Link to post
Share on other sites
2 minutes ago, Restinstage said:

Попробовал On/Off register duplication, Logic Cell Insertion - Logic Duplication, register balancing не нашел. Не изменилось.

Пардон, привык к номенклатуре Xilinx. У Альтеры эта функция называется register retiming.

Share this post


Link to post
Share on other sites

да смысл в слепую настройки перебирать. Надо взять вьюверы и посмотреть что добавилось в 13.1 и какой именно момент не нравится. Все. Тогда станет точно известно что именно там не так. Может быть там описание памяти, паттерн которого уточнили в 13.1 и написанный код не подходит. Вот и накидывается нехило ресурса.

Share this post


Link to post
Share on other sites
8 hours ago, des00 said:

да смысл в слепую настройки перебирать. Надо взять вьюверы и посмотреть что добавилось в 13.1 и какой именно момент не нравится. Все. Тогда станет точно известно что именно там не так. Может быть там описание памяти, паттерн которого уточнили в 13.1 и написанный код не подходит. Вот и накидывается нехило ресурса.

Посмотрел RTL viewer, одно существенное отличие - в 13.1 мультиплексоры все единичные, из-за этого схема на 20 страниц больше, а в 9.0 объединенные в несколько символов(там у меня выход с больших регистров).

Share this post


Link to post
Share on other sites
17 hours ago, Restinstage said:

Посмотрел RTL viewer, одно существенное отличие - в 13.1 мультиплексоры все единичные, из-за этого схема на 20 страниц больше, а в 9.0 объединенные в несколько символов(там у меня выход с больших регистров).

надо не RTL вьвер смотреть, он там работает в своем собственном мире, а Technology map viewer.

и слева будет список: цепи, регистры. Вот туда и смотрите, ищите лишние сущности. тогда станет понятно что добавлено. А потом уже выяснить почему дело простое

Share this post


Link to post
Share on other sites
On 5/28/2021 at 9:03 AM, des00 said:

надо не RTL вьвер смотреть, он там работает в своем собственном мире, а Technology map viewer.

и слева будет список: цепи, регистры. Вот туда и смотрите, ищите лишние сущности. тогда станет понятно что добавлено. А потом уже выяснить почему дело простое

Ну да, по Technology map viewer примерно та же картина, мультиплексоров в 13.1 он наплодил намного больше, остальное плюс-минус так же.

Причина мне непонятна.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.