Search the Community
Showing results for tags 'dc_shell'.
-
Как известно, tcl-шелл Synopsys DC имеет свое мнение по поводу обработок ошибок. А именно: произошла или нет ошибка в результате исполнения команды можно понять, проанализировав то, что эта самая команда выдала (0 -- ошибка, 1 -- успех). Обработку такого рода ошибок писать очень накладно (это считай каждую команду надо во что-то оборачивать, типа такого proc try {cmd} { set r [uplevel $cmd] if { $r != 1 } { error "Error in $cmd" } } и вызывать уже команды так: try {connect_net netname portname}) А вот нельзя ли как-то указать интерпретатору, что надо останавливать выполнение при первой возникшей ошибке? Иными словами, чтобы команды синопсиса не выделывались, а использовали стандартные тиклевские исключения (error -- catch).
-
Хочу тут немного свой велосипед попиарить. Репорты dc_shell по площади читать уж больно неудобно -- так сразу непонятно, кто больше всего ее отъедает. Наваял тут мелкий инструмент, немного упрощающий жизнь. https://github.com/dmitrodem/sizefs Состоит из двух скриптов. Тот, что на tcl -- запускается из top-level дизайна в dc_shell, на выходе получается json-файл с иерархией (с отмеченными площадями "листьев" -- блоков из библиотеки). Далее этот файл используется питоновским скриптом, реализующим sizefs -- файловую систему в FUSE, единственное назначение которой -- показывать структуру директорий и размеры файлов. Что мне понравилось -- на смонтированную ФС можно натравить утилиты для анализа дискового пространства (мне нравится кдеешный Filelight, но годится и xdiskusage. Да даже обычный du).