Pull to refresh

Comments 19

« Мы не хотим логи и путсы, мы хотим пошаговую отладку с брекпойнтами!» - неправильно ты, Дядя Федор, бутерброд ешь….

Console log - наше все.
С TCL давно не работал, но после erlang, pl/Sql, pg/Sql понимаешь что писать в лог единственный способ отладки . Особенно кое-где код многопоточный

Я в своих самых свежих скриптах, остановился на своем варианте dputs.

namespace eval tardil {
    # debug verbosity
    variable debug 0
}

proc ::tardil::dbg_puts {args} {
    variable debug
    if { ${debug} >= [expr [info level]-1] } {
        array set inf [info frame -1]
        set empty_prefix ""
        for {set i 0} {${i}<[expr [info level]-1]} {incr i} {
            set empty_prefix "  ${empty_prefix}"
        }
        puts "${empty_prefix}\[$inf(proc)\] [lindex ${args} 0]"
    }
}

# Устанавливаем глубину на которых будут работать dbg_puts
set ::tardil::debug 99

Данный вариант позволяет контролировать глубину стека вызовов процедур, на котором срабатывает эта dbg_puts. В вывод dbg_puts добавляется префикс в виде пробела (в зависимости от глубины стека) и имени процедуры из которой была вызвана dbg_puts с аргументами. Правда, только сейчас заметил, что это справедливо, когда руками вызываю в консоли Vivado, а если из скрипта вызвана (который запущен как source ./path_script.tcl ), то что то идет не так ..

Мы пробовали автоматизировать процессы разработки проектов для ПЛИС на tcl скриптах. Потом достаточно быстро ушли от него, подглядев некоторые решения у программистов.

Сборка и компиляция проекта у нас идёт через Conan. Симуляция с помощью VUnit.

GUI открывается только в редких случаях для отладки.

Для того, чтобы собрать проект на локальном компьютере в консольке запускаются три команда "git clone","conan install" и "conan build".

Как показала практика, писать скрипты на питоне значительно приятнее, чем на tcl.

Мы пробовали автоматизировать процессы разработки проектов для ПЛИС на tcl скриптах

Ну сборка проекта и запуск остального это всего лишь малая часть. Я больше занимаюсь анализом нетлистов и мне приходится писать много процедур со всякими get_cells, get_nets и тд. Как это делать без Tcl я себе мало представляю.

Сборка и компиляция проекта у нас идёт через Conan. 

Спасибо, посмотрю что это такое, никогда об этом не слышал

Как показала практика, писать скрипты на питоне значительно приятнее, чем на tcl.

Ну тут у каждого свои тараканы, у меня с точностью да наоборот

Ну сборка проекта и запуск остального это всего лишь малая часть. Я больше занимаюсь анализом нетлистов и мне приходится писать много процедур со всякими get_cells, get_nets и тд.

Кстати, SDC это тоже tcl.

Вместо Conan, рекомендую смотреть в сторону старого доброго make. Который вроде как благодаря go переживает второе рождение.

Если не заморачиваться с автоматическими правилами, то все достаточно просто.

Плюс стандартная тулза. Проверено временем :)

Дальше к ней можете скрипты на чем хотите прикручивать. Хоть на bash хоть на tcl.

Просто супер!

Для начинающих (а может и не только) в начале пути можно порекомендовать использование пакета tclcon с напуском GUI:

package require Tk
package require tkcon
tkcon Init

Лично я предпочитаю использовать tclexecomp:

За статью огромное спасибо.

Супер. Но есть проблема которую я описал. Не самая простая задача (если вообще выполнимая) команды наших сред разработки сделать видимыми для этих интерпретаторов или пробросить вызов Tk из интерпретаторов наших сред.

К сожалению, мне это пока не удалось. Но за наводку большое спасибо, изучу этот вопрос

А где про телевизор ? :)

(Шутка юмора)

Не выкупил прикола, про гараж бы выкупил, а про телевизор нет

Ааааааа, всё, дошло xD

Единственное что смущает в статье- почему она в блоге «ненормальное программирование»? tcl это как раз про нормальное программирование, ненормальное это js и иже с ними :)

почему она в блоге «ненормальное программирование»?

Штобы питоняшки не набросились со своими советами xD

Спасибо, зело полезная статья

UPD: Все же удалось это все дело запустить и в гуишной консоли вивады. Правда без излишеств, но уже что-то. И пользовательский ввод тоже оказывается был доступен в гуишной консоли, но еще пойди попробуй догадаться каким образом :)

Так што путь к пошаговой отладке Tcl-скриптов полностью открыт, пользуйтесь xD

Ну ты еще про NanoXplore напиши, и вивадо уже туда идет, а когда она туда придет, нас тут уже не будет

Sign up to leave a comment.

Articles