Aleksei_Rostov 0 11 марта, 2018 Опубликовано 11 марта, 2018 · Жалоба Добрый день! Кто использует при разработке на FPGA tcl скрипты, поделитесь пожалуйста опытом, какие преимущества можно получить за счет использования tcl. Пока обнаружил только преимущество перед gui в виде автоматизации при переносе проектов с одного кристалла на другой. Если можно конкретные примеры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 6 12 марта, 2018 Опубликовано 12 марта, 2018 (изменено) · Жалоба Добрый день! Кто использует при разработке на FPGA tcl скрипты, поделитесь пожалуйста опытом, какие преимущества можно получить за счет использования tcl. Пока обнаружил только преимущество перед gui в виде автоматизации при переносе проектов с одного кристалла на другой. Если можно конкретные примеры. Ну то, что вы уже описали. Плюс инструменты функциональной, статической и формальной верификации тоже управляются tcl - скриптами, поэтому можно создать набор целей и провести анализ на эти цели, просто запустив скрипт, в симуляторах gui тоже управляется с помощью tcl, поэтому очень удобно создавать виды осциллограмм, и сохранять их в tcl, а также обрабатывать сигналы, например, группировать их, именовать группы или же сами сигналы (например, разбить регистр на поля), назначать radix'ы, и т.п. Можно также сделать небольшой декодер, например, чтобы вместо 00 отображалось OK, вместо 01 - ERROR. Изменено 12 марта, 2018 пользователем one_eight_seven Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 12 марта, 2018 Опубликовано 12 марта, 2018 · Жалоба Пока обнаружил только преимущество перед gui в виде автоматизации при переносе проектов с одного кристалла на другой. Работаю в Windows, gui использую очень редко (только чтобы посмотреть распределение ЛЕ по модулям), для синтеза/анализа/прошивки запускаю *.bat файлы, tcl не использую - очень не нравится язык. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 7 12 марта, 2018 Опубликовано 12 марта, 2018 · Жалоба vivado принуждает юзеров использовать tcl - через gui в нем некоторые операции отсутствуют, ну или достаточно неудобны (у меня, например, в текстовом редакторе набор каких-то tcl-ных команд, которые я копи-пастю в среду) для asic-ов tcl стандарт, скрипты только на нем - полагаю по мере роста сложности FPGA-шных проектов, то есть количества людей, работающих над одним проектом, будет все меньше gui, все больше tcl сами скрипты обычно простые - сложнее foreach редко что нужно, ну и иногда функцией (proc) какие-то повторяющиеся последовательности команд объединяются Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 33 12 марта, 2018 Опубликовано 12 марта, 2018 · Жалоба Приветствую! Tcl почти что стандарт для контроля FPGA-шного софта. С помощью tcl много чего можно накрутить под себя. Например в Vivado у меня и автоматизация подключения debug-point для ChipScope, и авто генерация даты/ревизии git/ при компиляции и последующе генерация bit/mcs c правильным именем в нужной папке и с инфо-файлом, и.т.д. И работа с JTAG-AXI для быстрой отладки периферии без ожидания вечно занятого програмиста. Для Synplyfy помню извращался с парсингом логов синтеза и автогенерацией xilinx ip корок с требуемыми параметрами. Поищите я на форуме приводил примеры. Ну а ModelSim так это сплошной tcl/tk :) например мой скрипт парсит Vivado-вский скрипт для симуляции .bd чтобы компилировалось так как мне надо а не так хочет Vivado. Или например автоматом расставлять сигналы AXI шины на wave чтобы было как в армии все под линейку красиво было :) Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 12 марта, 2018 Опубликовано 12 марта, 2018 · Жалоба Или например автоматом расставлять сигналы AXI шины на wave чтобы было как в армии все под линейку красиво было :) Не только расставлять сигналы, но и красить их в разные нескучные цвета (использую https://www.random.org/colors/hex ). Только ради одной этой функции уже стоит tcl хотя бы минимально изучить, хотя на этом уровне даже языка не видно - обычные команды и аргументы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 33 12 марта, 2018 Опубликовано 12 марта, 2018 · Жалоба Приветствую! Я еще хотел эту раставлялку (и не только) внедрить в интерфейс ModelSim чтобы во всплывающей менюшке были мои custom команды. Но лень ковырять tcl так глубоко поборола лень делать это через скрипт ручками :laughing: . Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 13 марта, 2018 Опубликовано 13 марта, 2018 · Жалоба Еще повод для Tcl - использование virtual JTAG вместо UART и тп для самопального терминала. Но терминал получается ооочень медленным (по сравнению с uart). Зато ног/проводов меньше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 22 марта, 2018 Опубликовано 22 марта, 2018 · Жалоба Еще повод для Tcl - использование virtual JTAG вместо UART и тп для самопального терминала. Но терминал получается ооочень медленным (по сравнению с uart). Зато ног/проводов меньше. Не хватило usb-uart моста, пришлось доделывать терминал (добавил FIFO в virtual JTAG), чтобы поднять скорость. Удивляет, что много фирменных китов идут с внешними usb-uart мостами - вместо примеров использования jtag. :maniac: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksei_Rostov 0 23 марта, 2018 Опубликовано 23 марта, 2018 · Жалоба Не хватило usb-uart моста, пришлось доделывать терминал (добавил FIFO в virtual JTAG), чтобы поднять скорость. Удивляет, что много фирменных китов идут с внешними usb-uart мостами - вместо примеров использования jtag. :maniac: Вероятно проще поставить драйвер usb-uart для com порта, чем под jtag, если я вас правильно понял. То есть вы используете jtag для информационного обмена ПК-плата? Как FIFO позволяет увеличить скорость, это же просто буфер? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GriXa 0 23 марта, 2018 Опубликовано 23 марта, 2018 · Жалоба В своих проектах использую tcl скрипты для автоматического добавления номера версии и времени компиляции проекта. К примеру, в регистре сохраняется версия прошивки и дата-время компиляции. Для golden и working версии она может быть разная. Пример такого файла на vhdl -- created at 07/Dec/2017-13:15:15 -- DO NOT EDIT THIS FILE library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; package compile_time_pkg is constant VER_VALUE : string := "30"; constant COMPILE_TIME : integer := 1512648915; end package compile_time_pkg; Скрипт создает этот файл, потом запускает компиляцию. При каждой последующей компиляции увеличивает, к примеру, счетчик версий и изменяет время на текущее. После успешной компиляции - копирует текущую прошивку в отдельную папку с названием, соответствующим данной прошивке. Что-то типа name_working_v12.bit Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 23 марта, 2018 Опубликовано 23 марта, 2018 · Жалоба То есть вы используете jtag для информационного обмена ПК-плата? Как FIFO позволяет увеличить скорость, это же просто буфер? ПК используется как текстовый терминал. Бодовая скорость большая, средняя - маленькая. FIFO позволяет снять ограничение на бодовую скорость. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AnatolySh 0 28 марта, 2018 Опубликовано 28 марта, 2018 · Жалоба Если можно конкретные примеры. Мой пример в виде проекта для Modelsim-a (проверял на 10.1d Altera Starter Edition) - в скрепке. cd_ARINC_freq_divider_Modelsim.tcl кладём в корень Modelsim-a (у меня d:\altera\13.0sp1\modelsim_ase\win32aloem) Из той же папки стартуем Modelsim (d:\altera\13.0sp1\modelsim_ase\win32aloem\modelsim.exe). После выдачи приглашения Modelsim> запускаем этот скрипт: набираем do cd_ARINC_freq_divider_Modelsim.tcl (переходим в папку проекта). (если скрипт cd_* поместили правильно, то уже после набора do cd Modelsim в строке выше сам покажет имя скрипта). Выполнили скрипт (перешли в папку проекта). А там уже выполняем Modelsim> do ARINC_freq_divider_simulate.tcl Примечание скрипт conf_wave_window.tcl использует переменную окружения ... сами найдёте и создадите. И подкорректируете всё и вся под себя. Вопросы и замечания по проекту очень сильно приветствуются. ARINC_freq_divider.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AnatolySh 0 4 апреля, 2018 Опубликовано 4 апреля, 2018 · Жалоба Вот ещё статья по теме: Использование TCL в разработке на FPGA Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 5 апреля, 2018 Опубликовано 5 апреля, 2018 · Жалоба В догонку от того же товарища на гитхабе: TCL scripts for FPGA (Xilinx) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться