У меня есть тестовый стенд SystemC (для VHDL DUT, но это сейчас не имеет значения).Мне бы хотелось, чтобы тест завершался с определенным кодом выхода изнутри SC_CTHREAD.Я довольно новичок в SystemC (я в основном парень verilog / sv).
Я попытался просто включить "exit (error_code)", но пока это завершает симуляцию, окончательный код выхода приходит из моегооператор возврата sc_main.Я думаю, это имеет смысл, так как «выход», вероятно, завершает отдельный поток с этим кодом выхода, но не потоком sc_main.
Я пытался вызвать sc_stop перед этим выходом, и обычно получаю ошибку о вызовечисто виртуальный метод (я считаю, что это end_of_simulation, который я не определил .... но это не обязательно, верно?).
Единственный способ повлиять на код выхода процесса - это изменитьоператор возврата sc_main, но он не совсем работает, когда все мои действия происходят в SC_THREAD, созданном где-то конструктором объекта (если это не очевидно, я действительно не понимаю, как SystemC работает очень хорошо, возможно, потому что естьмножество скрытых действий с секретными классами, которые мы не видим, в отличие от verilog, где упорядочение симуляции - все, что есть, при условии, что вы понимаете блокирование / неблокирование).
Есть ли способ для SC_THREADпередать некоторую информацию об ошибках в sc_main?
Примечание: я работаю синструмент коммерческого моделирования, а не чистый C ++.Возможно, там есть ошибка реализации.Я пытаюсь запустить нашу чистую компиляцию C ++, но она, похоже, давно сломалась (я не отвечаю за модель SystemC).