Krys 2 18 сентября, 2017 Опубликовано 18 сентября, 2017 · Жалоба Здравствуйте. Вопрос такой. Есть у нас в 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 из них. Так вот проблема в том, что очерёдность выполнения какая-то произвольная. Есть ли способ жёстко указать, какая очерёдность? Дело в том, что мне хотелось бы некоторые запуски выполнить вперёд, а некоторые после, если уж не будет результата у первых. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Raven 11 18 сентября, 2017 Опубликовано 18 сентября, 2017 · Жалоба Первое, что приходит в голову: отправлять на исполнение impl'ы нужными порциями, а затем ставить вызов ожидания на завершение соответствующих частей. Вернее, в общем случае, скомбинировать скриптик из запусков порций, ожиданий их исполнения и ветвлений для последующих порций запусков и ожиданий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 19 сентября, 2017 Опубликовано 19 сентября, 2017 · Жалоба Спасибо, тоже думал над таким же решением. Если я Вас правильно понял, то Вы предлагаете сделать примерно так: 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 предыдущие будут закончены. А у них время выполнения у каждого разное, поэтому некоторое время процессор будет недонагружен, когда некоторые из задач уже закончились, но не все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
warrior-2001 0 19 сентября, 2017 Опубликовано 19 сентября, 2017 · Жалоба Пока выходит так, что невозможно в полуавтоматическом режиме держать процессор загруженным на 100%. Либо поставил и забыл и пусть САПР сам думает, либо порциями. О последовательности выполнения скриптов лучше запросить саппорт! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Raven 11 19 сентября, 2017 Опубликовано 19 сентября, 2017 · Жалоба Думаю все же, что можно запустить первую порцию в нужном порядке в соотвествии с вашими приоритетами, например 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 в помощь, как говорится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 22 сентября, 2017 Опубликовано 22 сентября, 2017 · Жалоба Raven, спасибо за подсказки. Надо будет попробовать. Только небольшая поправочка: у меня не вивадо, а планахед. Это несколько более печально )) И ещё вопросик: когда я запущу несколько команд в скрипте в разных линиях launch impl_1 launch impl_4 launch impl_6 launch impl_2 то по-моему, он будет дожидаться выполнения каждой, а затем переходить к следующей. Не так ли? Или как-то можно сделать, чтобы он выполнил запуск и, не дожидаясь завершения, перешёл к следующей команде? (извиняюсь, в tcl не силён). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Raven 11 22 сентября, 2017 Опубликовано 22 сентября, 2017 · Жалоба Про PlanAhead не скажу, а в Vivado команда launch неблокирующая, т.е., запустил - и пошел дальше. Во всяком случае, иначе не требовалась бы команда wait_on_run. И, кстати, дело здесь не в Tcl как таковом, а в Vivado'вских долнительных командах (таких, как launch), в их реализации в данном EDA. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба Спасибо, действительно, я заблуждался. wait on run есть и в планахеде. Так что моя задача действительно реализуема Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться