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