des00 25 5 марта, 2014 Опубликовано 5 марта, 2014 · Жалоба Добрый день! Подскажите как сделать следующее : есть tb, в котором прописано несколько возможных сценариев моделирования. Выбор конкретного сценария сделан через параметры запуска моделирования и $value$plusargs. Нужно последовательно перебрать все сценарии моделирования, желательно автоматически. Для этого была написана tcl процедура запуска моделировния do_test(args), в которую параметрами передаются нужные аргументы. Казалось бы, перебрать сценарии, можно кодом onbreak {resume} do_test(arg1) run -all do_test(arg2) run -all do_test(arg3) run -all do_test(arg4) run -all Но такое работает, если в тесте не было ошибок, на которых нужно остановиться. Если я хочу, что бы при ошибке моделирование останавливалось, то получается бред. Вместо остановки на ошибке тест идет дальше (оно и понятно). Поиск в документации ответа как определить именно окончание моделирования (пусть и командами отличными от $stop) результата не дал. Сделать менеджер сценариев на языке в tb можно, но хотелось бы этого не делать. Может быть есть какой то общепринятый способ? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 5 марта, 2014 Опубликовано 5 марта, 2014 · Жалоба А onerror вместе с resume/abort не поможет? Например, установить внутри onerror / onbreak какую нибудь переменную-флаг и сделать resume, а перед следующим run ее проверить, и если установлена, выйти. Или вообще абортнуться сразу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 5 марта, 2014 Опубликовано 5 марта, 2014 · Жалоба А onerror вместе с resume/abort не поможет? Например, установить внутри onerror / onbreak какую нибудь переменную-флаг и сделать resume, а перед следующим run ее проверить, и если установлена, выйти. Или вообще абортнуться сразу. судя по поведению onerror относиться к ошибкам исполнения самого do файла. например отсутствие файла при компиляции. про переменную думал, но нужно передать состояние переменной tb в скрип для проверки. из скрипта в tb можно сигналами подергать, но вот есть ли обратный маршрут из документации не понял. сразу абортнуьтся можно, но тогда получается не удобно. Что бы потом пронаблюдать ошибку, нужно будет заново прогонять моделирование с тем же sv_seed Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
o_khavin 0 5 марта, 2014 Опубликовано 5 марта, 2014 (изменено) · Жалоба А поиграть на разнице между $stop и $finish никак? ...а, уже написали :) P.S. в аналогичной ситуации я пользовался системным скриптом (а иногда и просто bat-файлом), который запускал N раз моделсим и просто сохранял нужные файлы (в т.ч. и wlf) для "неудачных" кейсов. Но у меня можно было определить удачность/неудачность по неким сохраняемым бинарным файлам, которые банально сравнивались с референсом по завершении каждого кейса. Изменено 5 марта, 2014 пользователем o_khavin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 5 марта, 2014 Опубликовано 5 марта, 2014 · Жалоба А всякие там "assertion fail" случаем не реагируют на assertions из SV? Можно брейк устроить по assertion fail. Добраться до значений внутри модулей можно командой examine Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kreakozeablik 0 6 марта, 2014 Опубликовано 6 марта, 2014 · Жалоба из скрипта в tb можно сигналами подергать, но вот есть ли обратный маршрут из документации не понял. А комманду "examine " не смотрели? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 4 мая, 2014 Опубликовано 4 мая, 2014 · Жалоба Добраться до значений внутри модулей можно командой examine А комманду "examine " не смотрели? Спасибо, забыл про нее, все было хорошо, пока не запустил моделирование с оптимизацией (с оптимизацией оно занимает где то часов 6), без нее намного дольше. Тогда сигнал tb_done был с оптимизирован и естественно не сработала ловушка. В итоге сделал запуску каждого теста свой файл логов ошибок и результатов, в случае завершения с ошибкой, он пишет всю информцию о контексте теста (что бы можно было повторить) и месте ошибки (для диагностики). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться