RobFPGA 27 18 сентября, 2020 Опубликовано 18 сентября, 2020 · Жалоба Приветствую! Пытаюсь вот вникнуть в нюансы скриптинга под Qu. Но что то туго идет - видать грибы в наше местности не такие забористые как у разработчиков . Хочу сваять скрип который делает билд несколькими этапами с модификацией настроек между билдами. Для этого используя 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 удаляются! Получается что в qurtus_sh в этом случае команда project_close ничего не закрывает хотя файл qsf и обновляется после "закрытия". А команда project_open соответсвенно не читает реальное содержимое qsf (а зачем, раз не закрыто то вот же оно, в кэше лежит)? Может кто проверить, такое поведение повторяется? Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pavlovconst 2 19 сентября, 2020 Опубликовано 19 сентября, 2020 · Жалоба Я бы попробовал после project_close закрыть и quartus_sh. И дальнейшие дествия сделать в другом экземпляре quartus_sh. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 20 сентября, 2020 Опубликовано 20 сентября, 2020 · Жалоба По-моему это стандартное поведение Ква. Они что хотят, то и добавляют/меняют в своих проприетарных файлах. Пока читал, пришла мысль - поменяйте политику для файлов, чтобы сделать его read-only может тогда не будет проблем с чтением, а Квартус высрет создаст свой отдельный файл со своими значениями, который не будет мешать Вам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sergey_Bekrenyov 0 21 сентября, 2020 Опубликовано 21 сентября, 2020 · Жалоба у меня везде есть export_assignments перед запуском execute_module -tool map execute_module -tool fit execute_module -tool asm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 22 сентября, 2020 Опубликовано 22 сентября, 2020 · Жалоба Приветствую! 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 добавить и можно снимать фильм ужасов Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 28 сентября, 2020 Опубликовано 28 сентября, 2020 (изменено) · Жалоба Правильно ли я понял, что суть в том, что нужно подключить свой дополнительный 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 Изменено 28 сентября, 2020 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 18 октября, 2020 Опубликовано 18 октября, 2020 · Жалоба Приветствую! 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 как то изменить настройки проекта Это чертовщина сохраняется до тех пока пока либо не закроешь Qu либо не откроешь другой проект (даже несуществующий). Еще прикол в том что так фантомно LL только сохраняются - то есть когда удаляешь их из закрытого проекта, если же после закрытия в GUI, добавить LL в qsf, то при открытии все прекрасно добавится. В общем какая-то Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться