17 #ifndef _SYSC_CONFIGURER_H_
18 #define _SYSC_CONFIGURER_H_
21 #include "utilities.h"
22 #include <cci_configuration>
32 bool init_cci(std::string name =
"Global Broker");
45 using base_type = sc_core::sc_module;
46 using broker_t = cci::cci_broker_handle;
47 using cci_param_cln = std::vector<std::pair<cci::cci_param_post_write_callback_untyped, std::unique_ptr<cci::cci_param_untyped>>>;
48 enum { NEVER = 0, BEFORE_END_OF_ELABORATION = 1, END_OF_ELABORATION = 2, START_OF_SIMULATION = 4 };
54 configurer(std::string
const& filename,
unsigned sc_attr_config_phases = BEFORE_END_OF_ELABORATION);
68 void read_input_file(std::string
const& filename);
80 void dump_configuration(std::ostream& os = std::cout,
bool as_yaml =
true,
bool with_description =
false,
bool complete =
true,
81 sc_core::sc_object* obj =
nullptr);
88 void dump_configuration(std::string
const& file_name,
bool with_description =
false,
bool complete =
true,
89 std::vector<std::string> stop_list = std::vector<std::string>{}) {
90 dump_file_name = file_name;
91 this->with_description = with_description;
92 this->stop_list = stop_list;
93 this->complete = complete;
104 template <
typename T>
void set_value(std::string
const& hier_name, T value) {
set_value(hier_name, cci::cci_value(value)); }
133 SCCFATAL() <<
"No configurer instantiated when using it";
138 unsigned const config_phases;
139 std::string dump_file_name{
""};
140 bool with_description{
false};
142 std::vector<std::string> stop_list{};
143 configurer(std::string
const& filename,
unsigned sc_attr_config_phases, sc_core::sc_module_name nm);
145 void before_end_of_elaboration()
override {
146 if(config_phases & BEFORE_END_OF_ELABORATION)
149 void end_of_elaboration()
override {
150 if(config_phases & END_OF_ELABORATION)
153 void start_of_simulation()
override;
155 void set_value(
const std::string& hier_name, cci::cci_value value);
156 cci_param_cln cci2sc_attr;
157 cci::cci_originator cci_originator;
158 std::unique_ptr<ConfigHolder> root;