Перейти к содержанию
    

Последовательный автоматический запуск моделирования в менторе

Добрый день!

 

Подскажите как сделать следующее :

есть 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 можно, но хотелось бы этого не делать. Может быть есть какой то общепринятый способ?

 

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А onerror вместе с resume/abort не поможет?

 

Например, установить внутри onerror / onbreak какую нибудь переменную-флаг и сделать resume, а перед следующим run ее проверить, и если установлена, выйти.

 

Или вообще абортнуться сразу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А onerror вместе с resume/abort не поможет?

 

Например, установить внутри onerror / onbreak какую нибудь переменную-флаг и сделать resume, а перед следующим run ее проверить, и если установлена, выйти.

 

Или вообще абортнуться сразу.

судя по поведению onerror относиться к ошибкам исполнения самого do файла. например отсутствие файла при компиляции.

 

про переменную думал, но нужно передать состояние переменной tb в скрип для проверки. из скрипта в tb можно сигналами подергать, но вот есть ли обратный маршрут из документации не понял.

 

сразу абортнуьтся можно, но тогда получается не удобно. Что бы потом пронаблюдать ошибку, нужно будет заново прогонять моделирование с тем же sv_seed

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А поиграть на разнице между $stop и $finish никак?

 

...а, уже написали :)

 

P.S. в аналогичной ситуации я пользовался системным скриптом (а иногда и просто bat-файлом), который запускал N раз моделсим и просто сохранял нужные файлы (в т.ч. и wlf) для "неудачных" кейсов. Но у меня можно было определить удачность/неудачность по неким сохраняемым бинарным файлам, которые банально сравнивались с референсом по завершении каждого кейса.

Изменено пользователем o_khavin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А всякие там "assertion fail" случаем не реагируют на assertions из SV? Можно брейк устроить по assertion fail.

 

Добраться до значений внутри модулей можно командой examine

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

из скрипта в tb можно сигналами подергать, но вот есть ли обратный маршрут из документации не понял.

 

А комманду "examine " не смотрели?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добраться до значений внутри модулей можно командой examine

 

А комманду "examine " не смотрели?

Спасибо, забыл про нее, все было хорошо, пока не запустил моделирование с оптимизацией (с оптимизацией оно занимает где то часов 6), без нее намного дольше. Тогда сигнал tb_done был с оптимизирован и естественно не сработала ловушка.

 

В итоге сделал запуску каждого теста свой файл логов ошибок и результатов, в случае завершения с ошибкой, он пишет всю информцию о контексте теста (что бы можно было повторить) и месте ошибки (для диагностики).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...