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

Quartus скриптинг

Приветствую!

Пытаюсь вот вникнуть в нюансы  скриптинга под Qu.  Но что то туго идет - видать грибы в наше местности не такие забористые как у разработчиков :wacko2:

Хочу  сваять скрип который  делает билд несколькими этапами с модификацией настроек между билдами. 
Для этого используя qurtus_sh и в соответствии с наставлениями "Quartus II Scripting Reference Manual"  создаю пустой проект.
Теперь надо бы наполнит его содержимым,  но чтобы опять не набивать лишние  пару тысяч строк настроек можно же использовать source  готовых настроек  

project_new -overwrite -revision $rev $prj
source "project_all_setings.qsf" 
project_close

Вроде  все ок, проект создался  - но  портянка получающаяся  в project.qsf удручает. Думаю, можно же сделать и так 

project_new -overwrite -revision $rev $prj
set_global_assignment -name FAMILY "Stratix V"
set_global_assignment -name DEVICE 5SGXEABK2H40C2
set_global_assignment -name NUM_PARALLEL_PROCESSORS 4
project_close

set fou [open "$rev.qsf" "a"]
puts  $fou "\n"
puts  $fou "#=============================================================================="
puts  $fou "source \"./project_all_setings.qsf\""
puts  $fou "#=============================================================================="
close $fou
...

Тогда  в qsf проекта будет только ссылка/source со всеми настройками   - красота! В GUI это работает и позволяет контролировать бардак в головах  qsf.  И действительно - на диске получается красивый  qsf  

...
set_global_assignment -name TOP_LEVEL_ENTITY top
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 19.1.0
set_global_assignment -name PROJECT_CREATION_TIME_DATE "02:12:09  SEPTEMBER 18, 2020"
set_global_assignment -name LAST_QUARTUS_VERSION "19.1.0 Standard Edition"
set_global_assignment -name NUM_PARALLEL_PROCESSORS 4

#==============================================================================
source "./project_all_setings.qsf"
#============================================================================== 

Как бы ни так (подумали разработчики Qu) - потому как  последующее ...

...
project_open -revision $rev $prj
set_global_assignment -name PARTITION_NETLIST_TYPE EMPTY -section_id id_some_parttion
...
project_close  

... приводит к тому что  добавленные строки с source удаляются! :shok::wacko2: 

Получается что в qurtus_sh  в этом случае команда project_close  ничего не закрывает хотя  файл qsf и обновляется после "закрытия".  А команда  project_open соответсвенно не читает реальное содержимое qsf (а зачем, раз не закрыто то вот же оно, в кэше лежит)?

Может кто проверить,  такое поведение повторяется?

 

Удачи! Rob.

 

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


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

Я бы попробовал после project_close закрыть и quartus_sh. И дальнейшие дествия сделать в другом экземпляре quartus_sh.

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


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

По-моему это стандартное поведение Ква. Они что хотят, то и добавляют/меняют в своих проприетарных файлах. Пока читал, пришла мысль - поменяйте политику для файлов, чтобы сделать его read-only может тогда не будет проблем с чтением, а Квартус высрет создаст свой отдельный файл со своими значениями, который не будет мешать Вам.

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


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

у меня везде есть export_assignments перед запуском

    execute_module -tool map
    execute_module -tool fit
    execute_module -tool asm

 

 

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


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

Приветствую!

On 9/20/2020 at 7:46 AM, Nick_K said:

Пока читал, пришла мысль - поменяйте политику для файлов,

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

On 9/19/2020 at 1:51 PM, pavlovconst said:

Я бы попробовал после project_close закрыть и quartus_sh. И дальнейшие дествия сделать в другом экземпляре quartus_sh.

Ну так фактически пока так и сделал - создал этакого "Франкенштейна",  часть логики  в bash скрипте вызывает функции реализованные в tcl. Осталось java и с python добавить и можно снимать фильм  ужасов   :hang3:

Удачи! Rob.

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


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

Правильно ли я понял, что суть в том, что нужно подключить свой дополнительный qsf файл?

Я тут тоже озадачился, решил автоматически делать свой отдельный qsf с MAX_FANOUT и пробовать подключать. Перерыл альтеровский форум, нашел https://community.intel.com/t5/Intel-Quartus-Prime-Software/Working-with-Multiple-QSF-files/td-p/169366 , якобы альтера посоветовала делать так

set_global_assignment -name SOURCE_TCL_SCRIPT_FILE supplemental.qsf вместо source

 

но еще не попробовал

upd. Проверил. Нормально цепляет второй qsf

Изменено пользователем new123

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


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

Приветствую!

On 9/18/2020 at 1:13 PM, RobFPGA said:

Получается что в qurtus_sh  в этом случае команда project_close  ничего не закрывает хотя  файл qsf и обновляется после "закрытия".  А команда  project_open соответсвенно не читает реальное содержимое qsf (а зачем, раз не закрыто то вот же оно, в кэше лежит)?

Эта же ситуация  повторилась  но теперь непосредственно в GUI  Qu. 
Создал  проект с несколькими LL регионами.  Открыл в GUI Qu, все OK.  Закрыл проект в GUI (не выходя из Qu).  Убрал из файла qsf все настройки LL, удалил все рабочие директории (db, incremental_db, ...). Открываю опять проект в GUI Qu - вижу старые LL регионы! Которые к тому-же опять записываются в  файл qsf если в GUI как то изменить настройки проекта :shok:     
Это чертовщина сохраняется до тех пока пока либо не закроешь Qu либо не откроешь другой проект (даже несуществующий). 

Еще прикол в том что так фантомно LL только сохраняются - то есть когда удаляешь их из закрытого проекта, если же после закрытия в GUI, добавить LL в qsf,  то при открытии все прекрасно добавится.

В общем :diablo: какая-то :unknw:

 

Удачи! Rob. 

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


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

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

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

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

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

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

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

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

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

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