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,
81 sc_core::sc_object* obj =
nullptr);
89 dump_file_name = file_name;
90 this->with_description = with_description;
101 template <
typename T>
void set_value(std::string
const& hier_name, T value) {
set_value(hier_name, cci::cci_value(value)); }
118 SCCFATAL() <<
"No configurer instantiated when using it";
123 unsigned const config_phases;
124 std::string dump_file_name{
""};
125 bool with_description{
false};
126 configurer(std::string
const& filename,
unsigned sc_attr_config_phases, sc_core::sc_module_name nm);
128 void before_end_of_elaboration()
override {
129 if(config_phases & BEFORE_END_OF_ELABORATION)
132 void end_of_elaboration()
override {
133 if(config_phases & END_OF_ELABORATION)
136 void start_of_simulation()
override;
138 void set_value(
const std::string& hier_name, cci::cci_value value);
139 cci_param_cln cci2sc_attr;
140 cci::cci_originator cci_originator;
141 std::unique_ptr<ConfigHolder> root;