#include "top_module.h" #include #include #include #include #include #include #include #include using namespace scc; using namespace sc_core; jmp_buf abrt; void ABRThandler(int sig) { longjmp(abrt, 1); } int sc_main(int argc, char* argv[]) { signal(SIGABRT, ABRThandler); auto my_name = util::split(argv[0], '/').back(); auto level = "7"; // getenv("SCC_TEST_VERBOSE"); auto log_lvl = level ? static_cast(std::min(strtoul(level, nullptr, 10) + 4, 7UL)) : log::FATAL; scc::init_logging(LogConfig().logLevel(log_lvl).logAsync(false).msgTypeFieldWidth(35)); scc::configurer cfg(""); // create tracer if environment variable SCC_TEST_TRACE is defined std::unique_ptr tracer; if(auto* test_trace = getenv("SCC_TEST_TRACE")) { tracer = std::make_unique(my_name, scc::tracer::ENABLE, scc::tracer::ENABLE); cfg.set_value("scc_tracer.default_trace_enable", true); } int result = -1; if(setjmp(abrt) == 0) { // instantiate design(s) top_module top_mod("top_module_inst"); // Start the simulation sc_core::sc_start(1140, sc_core::SC_NS); } return result; }