Krys 0 September 18, 2017 Posted September 18, 2017 · Report post Здравствуйте. Вопрос такой. Есть у нас в Planahead несколько запусков имплементации (design runs), как на приложенной картинке. Если их запускать из гуя выбрав все запуски, нажав правой кнопкой и выбрав launch runs, то выполняется такой скрипт: launch_runs impl_1 impl_2 impl_3 impl_4 impl_5 impl_6 impl_7 impl_8 impl_9 impl_10 impl_11 impl_12 impl_13 impl_14 impl_15 impl_16 impl_17 impl_18 impl_19 -jobs 3 Вроде как тут эти запуски перечислены последовательно и говорится, что одновременно запускается 3 из них. Так вот проблема в том, что очерёдность выполнения какая-то произвольная. Есть ли способ жёстко указать, какая очерёдность? Дело в том, что мне хотелось бы некоторые запуски выполнить вперёд, а некоторые после, если уж не будет результата у первых. Quote Share this post Link to post Share on other sites More sharing options...
Raven 0 September 18, 2017 Posted September 18, 2017 · Report post Первое, что приходит в голову: отправлять на исполнение impl'ы нужными порциями, а затем ставить вызов ожидания на завершение соответствующих частей. Вернее, в общем случае, скомбинировать скриптик из запусков порций, ожиданий их исполнения и ветвлений для последующих порций запусков и ожиданий. Quote Share this post Link to post Share on other sites More sharing options...
Krys 0 September 19, 2017 Posted September 19, 2017 · Report post Спасибо, тоже думал над таким же решением. Если я Вас правильно понял, то Вы предлагаете сделать примерно так: launch_runs impl_1 impl_2 impl_3 -jobs 3 launch_runs impl_4 impl_5 impl_6 -jobs 3 launch_runs impl_7 impl_8 impl_9 -jobs 3 и т.д. Ну там условия ещё наворотить о завершении задач... Но мне кажется такое решение не совсем подходит: при запуске согласно строчке из первого сообщения происходит автоматический запуск следующей стратегии, когда предыдущая закончилась. А согласно строчкам выше следующие 3 запуска будут произведены, когда все 3 предыдущие будут закончены. А у них время выполнения у каждого разное, поэтому некоторое время процессор будет недонагружен, когда некоторые из задач уже закончились, но не все. Quote Share this post Link to post Share on other sites More sharing options...
warrior-2001 0 September 19, 2017 Posted September 19, 2017 · Report post Пока выходит так, что невозможно в полуавтоматическом режиме держать процессор загруженным на 100%. Либо поставил и забыл и пусть САПР сам думает, либо порциями. О последовательности выполнения скриптов лучше запросить саппорт! Quote Share this post Link to post Share on other sites More sharing options...
Raven 0 September 19, 2017 Posted September 19, 2017 · Report post Думаю все же, что можно запустить первую порцию в нужном порядке в соотвествии с вашими приоритетами, например launch impl_1 launch impl_4 launch impl_6 launch impl_2 а затем, используя wait_on_run и/или опрос в цикле с использованием чего-то вроде [get_property <NAME_OF_RUN_STATE_PROPERTY> [get_runs impl_1]] где <NAME_OF_RUN_STATE_PROPERTY> - имя подходящего property, какое конкретно - я не смотрел, но должно там быть что-то подходящее, отвечающее за состояние прогона. можно наворотить любой сценарий развития событий, ожидая нужных событий и дозапуская в нужном порядке новые RUN'ы. И вообще, дальше в этом направлении можно творчество развивать по полной программе. Vivado Design Suite Tcl Command Reference Guide в помощь, как говорится. Quote Share this post Link to post Share on other sites More sharing options...
Krys 0 September 22, 2017 Posted September 22, 2017 · Report post Raven, спасибо за подсказки. Надо будет попробовать. Только небольшая поправочка: у меня не вивадо, а планахед. Это несколько более печально )) И ещё вопросик: когда я запущу несколько команд в скрипте в разных линиях launch impl_1 launch impl_4 launch impl_6 launch impl_2 то по-моему, он будет дожидаться выполнения каждой, а затем переходить к следующей. Не так ли? Или как-то можно сделать, чтобы он выполнил запуск и, не дожидаясь завершения, перешёл к следующей команде? (извиняюсь, в tcl не силён). Quote Share this post Link to post Share on other sites More sharing options...
Raven 0 September 22, 2017 Posted September 22, 2017 · Report post Про PlanAhead не скажу, а в Vivado команда launch неблокирующая, т.е., запустил - и пошел дальше. Во всяком случае, иначе не требовалась бы команда wait_on_run. И, кстати, дело здесь не в Tcl как таковом, а в Vivado'вских долнительных командах (таких, как launch), в их реализации в данном EDA. Quote Share this post Link to post Share on other sites More sharing options...
Krys 0 September 25, 2017 Posted September 25, 2017 · Report post Спасибо, действительно, я заблуждался. wait on run есть и в планахеде. Так что моя задача действительно реализуема Quote Share this post Link to post Share on other sites More sharing options...