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

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

16 hours ago, Restinstage said:

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

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

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


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

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.

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


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

20 hours ago, Restinstage said:

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

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

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

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


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

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. Добавил, эффекта нет.

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


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

5 hours ago, andrew_b said:

assignment_defaults.qdf

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

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


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

2 hours ago, Nick_K said:

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

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

 

1 hour ago, Leka said:

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

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

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


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

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, ухудшения синтеза не заметил (раньше всегда предварительно делал свою оценку требуемых ресурсов, и сравнивал с результатом синтеза, при значительных расхождениях разбирался в причинах).

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


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

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", поменял, не повлияло.

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

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


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

3 hours ago, Restinstage said:

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

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

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


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

15 hours ago, Nick_K said:

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

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

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


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

2 minutes ago, Restinstage said:

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

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

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


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

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

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


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

8 hours ago, des00 said:

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

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

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


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

17 hours ago, Restinstage said:

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

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

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

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


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

On 5/28/2021 at 9:03 AM, des00 said:

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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