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

3 minutes ago, 5EN5E said:

Как будет понимание и реальные результаты, поделюсь. Задал вопрос на Реддите, пока ответов по существу нет.

Ну попробуйте через мастер скрипт всё сделать. Уверен так будет проще всего.

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


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

1 minute ago, Nick_K said:

Ну попробуйте через мастер скрипт всё сделать. Уверен так будет проще всего.

Я бы хотел сборку осуществлять по дизайн флоу, как в Vivado, т.е. по шагам. У меня для каждого этапа написан скрипт, а вот запуском скриптов управляют taskи vscodа. У меня собсно вопрос по написанию этих самих taskов, т.к. у меня не получается передать следующий скрипт в уже запущенный Shell Vivado. Мастер скрипт просто прогонит все нужные мне скрипты за раз, а это не то что мне нужно.

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


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

36 minutes ago, 5EN5E said:

Я бы хотел сборку осуществлять по дизайн флоу, как в Vivado, т.е. по шагам. У меня для каждого этапа написан скрипт, а вот запуском скриптов управляют taskи vscodа. У меня собсно вопрос по написанию этих самих taskов, т.к. у меня не получается передать следующий скрипт в уже запущенный Shell Vivado. Мастер скрипт просто прогонит все нужные мне скрипты за раз, а это не то что мне нужно.

Немного не согласен. Мастер скрипт будет вызывать нужные скрипты один за другим в соответствии с вышеупомянутым флоу при этом дожидаясь выполнения соответствующего шага.

Грубо говоря мастер скрипт состоит из:

source synthesis.tcl
source place.tcl
source route.tcl
source program.tcl

соответственно каждый скрипт будет запущен по очереди и только после завершения предыдущего (при условии что в скрипте синтеза есть команда запуска собственно синтеза launch_runs synth_1 и т.д.).

Сложности начнутся, когда нужно сделать только синтез, к примеру. Тогда придётся городить скрипт с аргументами запуска.

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


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

1 minute ago, Nick_K said:

Немного не согласен. Мастер скрипт будет вызывать нужные скрипты один за другим в соответствии с вышеупомянутым флоу при этом дожидаясь выполнения соответствующего шага.

Грубо говоря мастер скрипт состоит из:


source synthesis.tcl
source place.tcl
source route.tcl
source program.tcl

соответственно каждый скрипт будет запущен по очереди и только после завершения предыдущего (при условии что в скрипте синтеза есть команда запуска собственно синтеза launch_runs synth_1 и т.д.).

Сложности начнутся, когда нужно сделать только синтез, к примеру. Тогда придётся городить скрипт с аргументами запуска.

При Вашем подходе получается сквозной маршрут сборки, т.е. если мне нужно сделать place, то обязательно выполнится этап синтеза. Я бы хотел отсинтезировать проект, запустить ГУЙ, поковырять DEBUG, поиграться с репортами, выйти из ГУЯ. Если все ок, то запустить сборку следующего этапа.

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


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

3 minutes ago, 5EN5E said:

При Вашем подходе получается сквозной маршрут сборки, т.е. если мне нужно сделать place, то обязательно выполнится этап синтеза. Я бы хотел отсинтезировать проект, запустить ГУЙ, поковырять DEBUG, поиграться с репортами, выйти из ГУЯ. Если все ок, то запустить сборку следующего этапа.

Это то, что я указал последним. Придётся добавлять аргументы на запуск мастер скрипта (по крайней мере у нас так сделано) и получится нечто:

set run_step=place // выполнить присвоение в обычной консоли или через bash/bat скрипт

// Далее идёт вместимость собственно мастер скрипта
if { $env(run_step) == all } {
  source synthesis.tcl
  source place.tcl
  source route.tcl
  source program.tcl
} elsif { $env(run_step) == syn } {
  source synthesis.tcl
} elsif { $env(run_step) == place } {
  source place.tcl
} elsif { $env(run_step) == route } {
  source route.tcl
} elsif { $env(run_step) == program } {
  source program.tcl
} else {
  puts "Uncorrect argument passed"
}

 

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


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

25 minutes ago, Nick_K said:

Это то, что я указал последним. Придётся добавлять аргументы на запуск мастер скрипта (по крайней мере у нас так сделано) и получится нечто:


set run_step=place // выполнить присвоение в обычной консоли или через bash/bat скрипт

// Далее идёт вместимость собственно мастер скрипта
if { $env(run_step) == all } {
  source synthesis.tcl
  source place.tcl
  source route.tcl
  source program.tcl
} elsif { $env(run_step) == syn } {
  source synthesis.tcl
} elsif { $env(run_step) == place } {
  source place.tcl
} elsif { $env(run_step) == route } {
  source route.tcl
} elsif { $env(run_step) == program } {
  source program.tcl
} else {
  puts "Uncorrect argument passed"
}

 

Спасибо за идею. 

Тогда остается вопрос по написанию taskов в vscode, чтоб этот же скрипт с новыми параметрами передать в существующий shell. 

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


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

10 minutes ago, 5EN5E said:

Тогда остается вопрос по написанию taskов в vscode, чтоб этот же скрипт с новыми параметрами передать в существующий shell.

Вот у меня был собственно вопрос как эти самые task'и создавать. Может и себе смогу чего оптимизировать в процессе.

Это скорее уточнение предыдущего вопроса.

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


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

25 minutes ago, Nick_K said:

Вот у меня был собственно вопрос как эти самые task'и создавать. Может и себе смогу чего оптимизировать в процессе.

Это скорее уточнение предыдущего вопроса.

При написании taskов я руководствовался приведенной ниже документацией:

https://code.visualstudio.com/docs/editor/tasks#_custom-tasks

Моей фантазии хватило разве что на это (кусок task.json):

{
            "label": "viv: Synthesis Project",
            "type": "shell",
            "command": "vivado -mode tcl -source c:/utils/nonproject/synth_step.tcl"
}

 

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

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


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

Спасибо. По сути это и есть интересный мне момент.

От себя добавлю, возможно изменив команду с добавлением $arg получится запускать Виваду и передавать ей нужные аргументы:

58 minutes ago, 5EN5E said:

"command": "vivado -mode tcl -source c:/utils/nonproject/synth_step.tcl $arg"

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


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

Люди добрые, помогите, пожалуйста. Мелочь, а неприятно.

Если сначала запустить FAR, а потом Visual Studio Code, то рушатся оба. Если наоборот, то оба нормально работают. Win 10, и на работе, и дома. Кто-нибудь знает, как это можно поправить?

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


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

В 17.01.2023 в 15:49, DSIoffe сказал:

Если сначала запустить FAR, а потом Visual Studio Code, то рушатся оба.

В свойствах ярлыка Far есть настройки совместимости, попробовать их покрутить.

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


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

В 24.01.2022 в 14:43, 5EN5E сказал:

При написании taskов я руководствовался приведенной ниже документацией:

https://code.visualstudio.com/docs/editor/tasks#_custom-tasks

Моей фантазии хватило разве что на это (кусок task.json):

{
            "label": "viv: Synthesis Project",
            "type": "shell",
            "command": "vivado -mode tcl -source c:/utils/nonproject/synth_step.tcl"
}

 

 

А зачем усложнять себе жизнь, применяя VSCODE? Почему не применить Make, где, как говорится, всё просто и знакомо? Вот пример. Как вариант можно наплодить таргетов под каждую отдельную задачу, а потом либо вызывать их в нужной последовательности самому, либо с помощью другого таргета.

P.S. Всё уже изобретено...

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


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

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

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

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

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

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

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

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

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

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