From 80a4ebbd7ecf96b649f9ce9fc7f2c11333a4605f Mon Sep 17 00:00:00 2001 From: Eugene Cohen Date: Mon, 9 Feb 2026 12:15:12 -0800 Subject: [PATCH] core_complex: add finish_condition cci var Add CCI variable to hold the finish condition enumeration value and apply it to the ISS. --- src/sysc/core_complex.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/sysc/core_complex.h b/src/sysc/core_complex.h index caecfcf..74b48eb 100644 --- a/src/sysc/core_complex.h +++ b/src/sysc/core_complex.h @@ -112,6 +112,8 @@ class core_complex : public sc_core::sc_module, public scc::traceable, public co cci::cci_param reset_address{"reset_address", 0ULL}; + cci::cci_param finish_condition{"finish_condition", static_cast(iss::finish_cond_e::NONE)}; + cci::cci_param core_type{"core_type", "rv32imac_m"}; cci::cci_param backend{"backend", "interp"}; @@ -270,7 +272,7 @@ class core_complex : public sc_core::sc_module, public scc::traceable, public co core->setup_mt(); quantum_keeper.check_and_sync(sc_core::SC_ZERO_TIME); quantum_keeper.run_thread([this]() { - vm->start(std::numeric_limits::max(), dump_ir); + vm->start(std::numeric_limits::max(), dump_ir, static_cast(finish_condition.get_value())); return quantum_keeper.get_local_absolute_time(); }); } @@ -295,7 +297,7 @@ class core_complex : public sc_core::sc_module, public scc::traceable, public co f(); } template typename std::enable_if::value>::type run_iss() { - vm->start(std::numeric_limits::max(), dump_ir); + vm->start(std::numeric_limits::max(), dump_ir, static_cast(finish_condition.get_value())); } /////////////////////////////////////////////////////////////////////////////// //