реклама на сайте
подробности

 
 
> как в tcl-скрипте указать приоритет (очерёдность) запуска стратегий, в Planahead есть команда по запуску нескольких запусков (design runs)
Krys
сообщение Sep 18 2017, 08:03
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Здравствуйте. Вопрос такой. Есть у нас в 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 из них. Так вот проблема в том, что очерёдность выполнения какая-то произвольная. Есть ли способ жёстко указать, какая очерёдность? Дело в том, что мне хотелось бы некоторые запуски выполнить вперёд, а некоторые после, если уж не будет результата у первых.
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
Raven
сообщение Sep 18 2017, 19:15
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 491
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987



Первое, что приходит в голову:
отправлять на исполнение impl'ы нужными порциями, а затем ставить вызов ожидания на завершение соответствующих частей. Вернее, в общем случае, скомбинировать скриптик из запусков порций, ожиданий их исполнения и ветвлений для последующих порций запусков и ожиданий.
Go to the top of the page
 
+Quote Post
Krys
сообщение Sep 19 2017, 04:06
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Спасибо, тоже думал над таким же решением. Если я Вас правильно понял, то Вы предлагаете сделать примерно так:
Код
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 предыдущие будут закончены. А у них время выполнения у каждого разное, поэтому некоторое время процессор будет недонагружен, когда некоторые из задач уже закончились, но не все.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Sep 19 2017, 05:03
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



Пока выходит так, что невозможно в полуавтоматическом режиме держать процессор загруженным на 100%. Либо поставил и забыл и пусть САПР сам думает, либо порциями. О последовательности выполнения скриптов лучше запросить саппорт!


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post
Raven
сообщение Sep 19 2017, 19:41
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 491
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987



Думаю все же, что можно запустить первую порцию в нужном порядке в соотвествии с вашими приоритетами, например
Код
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 в помощь, как говорится.
Go to the top of the page
 
+Quote Post
Krys
сообщение Sep 22 2017, 02:38
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Raven, спасибо за подсказки. Надо будет попробовать. Только небольшая поправочка: у меня не вивадо, а планахед. Это несколько более печально ))
И ещё вопросик: когда я запущу несколько команд в скрипте в разных линиях
Код
launch impl_1
launch impl_4
launch impl_6
launch impl_2
то по-моему, он будет дожидаться выполнения каждой, а затем переходить к следующей. Не так ли? Или как-то можно сделать, чтобы он выполнил запуск и, не дожидаясь завершения, перешёл к следующей команде? (извиняюсь, в tcl не силён).


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
Raven
сообщение Sep 22 2017, 18:42
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 491
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987



Про PlanAhead не скажу, а в Vivado команда launch неблокирующая, т.е., запустил - и пошел дальше. Во всяком случае, иначе не требовалась бы команда wait_on_run. И, кстати, дело здесь не в Tcl как таковом, а в Vivado'вских долнительных командах (таких, как launch), в их реализации в данном EDA.
Go to the top of the page
 
+Quote Post
Krys
сообщение Sep 25 2017, 03:49
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Спасибо, действительно, я заблуждался. wait on run есть и в планахеде. Так что моя задача действительно реализуема


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.0145 секунд с 7
ELECTRONIX ©2004-2016