Nick_K 0 January 24, 2022 Posted January 24, 2022 · Report post 3 minutes ago, 5EN5E said: Как будет понимание и реальные результаты, поделюсь. Задал вопрос на Реддите, пока ответов по существу нет. Ну попробуйте через мастер скрипт всё сделать. Уверен так будет проще всего. Quote Share this post Link to post Share on other sites More sharing options...
5EN5E 0 January 24, 2022 Posted January 24, 2022 · Report post 1 minute ago, Nick_K said: Ну попробуйте через мастер скрипт всё сделать. Уверен так будет проще всего. Я бы хотел сборку осуществлять по дизайн флоу, как в Vivado, т.е. по шагам. У меня для каждого этапа написан скрипт, а вот запуском скриптов управляют taskи vscodа. У меня собсно вопрос по написанию этих самих taskов, т.к. у меня не получается передать следующий скрипт в уже запущенный Shell Vivado. Мастер скрипт просто прогонит все нужные мне скрипты за раз, а это не то что мне нужно. Quote Share this post Link to post Share on other sites More sharing options...
Nick_K 0 January 24, 2022 Posted January 24, 2022 · Report post 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 и т.д.). Сложности начнутся, когда нужно сделать только синтез, к примеру. Тогда придётся городить скрипт с аргументами запуска. Quote Share this post Link to post Share on other sites More sharing options...
5EN5E 0 January 24, 2022 Posted January 24, 2022 · Report post 1 minute ago, Nick_K said: Немного не согласен. Мастер скрипт будет вызывать нужные скрипты один за другим в соответствии с вышеупомянутым флоу при этом дожидаясь выполнения соответствующего шага. Грубо говоря мастер скрипт состоит из: source synthesis.tcl source place.tcl source route.tcl source program.tcl соответственно каждый скрипт будет запущен по очереди и только после завершения предыдущего (при условии что в скрипте синтеза есть команда запуска собственно синтеза launch_runs synth_1 и т.д.). Сложности начнутся, когда нужно сделать только синтез, к примеру. Тогда придётся городить скрипт с аргументами запуска. При Вашем подходе получается сквозной маршрут сборки, т.е. если мне нужно сделать place, то обязательно выполнится этап синтеза. Я бы хотел отсинтезировать проект, запустить ГУЙ, поковырять DEBUG, поиграться с репортами, выйти из ГУЯ. Если все ок, то запустить сборку следующего этапа. Quote Share this post Link to post Share on other sites More sharing options...
Nick_K 0 January 24, 2022 Posted January 24, 2022 · Report post 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" } Quote Share this post Link to post Share on other sites More sharing options...
5EN5E 0 January 24, 2022 Posted January 24, 2022 · Report post 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. Quote Share this post Link to post Share on other sites More sharing options...
Nick_K 0 January 24, 2022 Posted January 24, 2022 · Report post 10 minutes ago, 5EN5E said: Тогда остается вопрос по написанию taskов в vscode, чтоб этот же скрипт с новыми параметрами передать в существующий shell. Вот у меня был собственно вопрос как эти самые task'и создавать. Может и себе смогу чего оптимизировать в процессе. Это скорее уточнение предыдущего вопроса. Quote Share this post Link to post Share on other sites More sharing options...
5EN5E 0 January 24, 2022 Posted January 24, 2022 (edited) · Report post 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" } Edited January 24, 2022 by 5EN5E Quote Share this post Link to post Share on other sites More sharing options...
Nick_K 0 January 24, 2022 Posted January 24, 2022 · Report post Спасибо. По сути это и есть интересный мне момент. От себя добавлю, возможно изменив команду с добавлением $arg получится запускать Виваду и передавать ей нужные аргументы: 58 minutes ago, 5EN5E said: "command": "vivado -mode tcl -source c:/utils/nonproject/synth_step.tcl $arg" Quote Share this post Link to post Share on other sites More sharing options...
DSIoffe 1 January 17 Posted January 17 · Report post Люди добрые, помогите, пожалуйста. Мелочь, а неприятно. Если сначала запустить FAR, а потом Visual Studio Code, то рушатся оба. Если наоборот, то оба нормально работают. Win 10, и на работе, и дома. Кто-нибудь знает, как это можно поправить? Quote Share this post Link to post Share on other sites More sharing options...
HardEgor 30 January 17 Posted January 17 · Report post В 17.01.2023 в 15:49, DSIoffe сказал: Если сначала запустить FAR, а потом Visual Studio Code, то рушатся оба. В свойствах ярлыка Far есть настройки совместимости, попробовать их покрутить. Quote Share this post Link to post Share on other sites More sharing options...