58 std::string
name =
p->name();
73 std::string
name =
p->name();
88 std::string
name =
p->name();
95 p->dontInitialize(
true);
107 _interface(&_interface), _port(nullptr)
111 _interface(nullptr), _port(&_port)
119 fatal(
"%s does not have any port named %s\n",
name(), if_name);
191 auto insert = [&proxies](const ::sc_core::sc_bind_proxy &
p) ->
bool {
192 if (!
p.port() && !
p.interface())
194 proxies.push_back(&
p);
197 insert(p001) && insert(p002) && insert(p003) && insert(p004) &&
198 insert(p005) && insert(p006) && insert(p007) && insert(p008) &&
199 insert(p009) && insert(p010) && insert(p011) && insert(p012) &&
200 insert(p013) && insert(p014) && insert(p015) && insert(p016) &&
201 insert(p017) && insert(p018) && insert(p019) && insert(p020) &&
202 insert(p021) && insert(p022) && insert(p023) && insert(p024) &&
203 insert(p025) && insert(p026) && insert(p027) && insert(p028) &&
204 insert(p029) && insert(p030) && insert(p031) && insert(p032) &&
205 insert(p033) && insert(p034) && insert(p035) && insert(p036) &&
206 insert(p037) && insert(p038) && insert(p039) && insert(p040) &&
207 insert(p041) && insert(p042) && insert(p043) && insert(p044) &&
208 insert(p045) && insert(p046) && insert(p047) && insert(p048) &&
209 insert(p049) && insert(p050) && insert(p051) && insert(p052) &&
210 insert(p053) && insert(p054) && insert(p055) && insert(p056) &&
211 insert(p057) && insert(p058) && insert(p059) && insert(p060) &&
212 insert(p061) && insert(p062) && insert(p063) && insert(p064);
341 p->dontInitialize(
true);
632 return p->timedOut();
644 "\n in SC_METHODs use next_trigger() instead");
656 if (waitErrorCheck(
p))
679 if (waitErrorCheck(
p))
690 if (waitErrorCheck(
p))
701 if (waitErrorCheck(
p))
712 if (waitErrorCheck(
p))
729 if (waitErrorCheck(
p))
746 if (waitErrorCheck(
p))
763 if (waitErrorCheck(
p))
780 throw ::sc_gem5::ScHalt();
822 if (!seed || seed[0] ==
'\0') {
829 return mod->uniqueName(seed);
833 return p->uniqueName(seed);
861 modules.emplace_back(
mod);
Ports are used to interface objects to each other.
void operator()(const sc_bind_proxy &p001, const sc_bind_proxy &p002=SC_BIND_PROXY_NIL, const sc_bind_proxy &p003=SC_BIND_PROXY_NIL, const sc_bind_proxy &p004=SC_BIND_PROXY_NIL, const sc_bind_proxy &p005=SC_BIND_PROXY_NIL, const sc_bind_proxy &p006=SC_BIND_PROXY_NIL, const sc_bind_proxy &p007=SC_BIND_PROXY_NIL, const sc_bind_proxy &p008=SC_BIND_PROXY_NIL, const sc_bind_proxy &p009=SC_BIND_PROXY_NIL, const sc_bind_proxy &p010=SC_BIND_PROXY_NIL, const sc_bind_proxy &p011=SC_BIND_PROXY_NIL, const sc_bind_proxy &p012=SC_BIND_PROXY_NIL, const sc_bind_proxy &p013=SC_BIND_PROXY_NIL, const sc_bind_proxy &p014=SC_BIND_PROXY_NIL, const sc_bind_proxy &p015=SC_BIND_PROXY_NIL, const sc_bind_proxy &p016=SC_BIND_PROXY_NIL, const sc_bind_proxy &p017=SC_BIND_PROXY_NIL, const sc_bind_proxy &p018=SC_BIND_PROXY_NIL, const sc_bind_proxy &p019=SC_BIND_PROXY_NIL, const sc_bind_proxy &p020=SC_BIND_PROXY_NIL, const sc_bind_proxy &p021=SC_BIND_PROXY_NIL, const sc_bind_proxy &p022=SC_BIND_PROXY_NIL, const sc_bind_proxy &p023=SC_BIND_PROXY_NIL, const sc_bind_proxy &p024=SC_BIND_PROXY_NIL, const sc_bind_proxy &p025=SC_BIND_PROXY_NIL, const sc_bind_proxy &p026=SC_BIND_PROXY_NIL, const sc_bind_proxy &p027=SC_BIND_PROXY_NIL, const sc_bind_proxy &p028=SC_BIND_PROXY_NIL, const sc_bind_proxy &p029=SC_BIND_PROXY_NIL, const sc_bind_proxy &p030=SC_BIND_PROXY_NIL, const sc_bind_proxy &p031=SC_BIND_PROXY_NIL, const sc_bind_proxy &p032=SC_BIND_PROXY_NIL, const sc_bind_proxy &p033=SC_BIND_PROXY_NIL, const sc_bind_proxy &p034=SC_BIND_PROXY_NIL, const sc_bind_proxy &p035=SC_BIND_PROXY_NIL, const sc_bind_proxy &p036=SC_BIND_PROXY_NIL, const sc_bind_proxy &p037=SC_BIND_PROXY_NIL, const sc_bind_proxy &p038=SC_BIND_PROXY_NIL, const sc_bind_proxy &p039=SC_BIND_PROXY_NIL, const sc_bind_proxy &p040=SC_BIND_PROXY_NIL, const sc_bind_proxy &p041=SC_BIND_PROXY_NIL, const sc_bind_proxy &p042=SC_BIND_PROXY_NIL, const sc_bind_proxy &p043=SC_BIND_PROXY_NIL, const sc_bind_proxy &p044=SC_BIND_PROXY_NIL, const sc_bind_proxy &p045=SC_BIND_PROXY_NIL, const sc_bind_proxy &p046=SC_BIND_PROXY_NIL, const sc_bind_proxy &p047=SC_BIND_PROXY_NIL, const sc_bind_proxy &p048=SC_BIND_PROXY_NIL, const sc_bind_proxy &p049=SC_BIND_PROXY_NIL, const sc_bind_proxy &p050=SC_BIND_PROXY_NIL, const sc_bind_proxy &p051=SC_BIND_PROXY_NIL, const sc_bind_proxy &p052=SC_BIND_PROXY_NIL, const sc_bind_proxy &p053=SC_BIND_PROXY_NIL, const sc_bind_proxy &p054=SC_BIND_PROXY_NIL, const sc_bind_proxy &p055=SC_BIND_PROXY_NIL, const sc_bind_proxy &p056=SC_BIND_PROXY_NIL, const sc_bind_proxy &p057=SC_BIND_PROXY_NIL, const sc_bind_proxy &p058=SC_BIND_PROXY_NIL, const sc_bind_proxy &p059=SC_BIND_PROXY_NIL, const sc_bind_proxy &p060=SC_BIND_PROXY_NIL, const sc_bind_proxy &p061=SC_BIND_PROXY_NIL, const sc_bind_proxy &p062=SC_BIND_PROXY_NIL, const sc_bind_proxy &p063=SC_BIND_PROXY_NIL, const sc_bind_proxy &p064=SC_BIND_PROXY_NIL)
virtual const std::vector< sc_object * > & get_child_objects() const
void async_reset_signal_is(const sc_in< bool > &, bool)
virtual const std::vector< sc_event * > & get_child_events() const
void set_stack_size(size_t)
void reset_signal_is(const sc_in< bool > &, bool)
void at_posedge(const sc_signal_in_if< bool > &)
sc_module & operator<<(sc_interface &)
sc_gem5::Module * _gem5_module
virtual gem5::Port & gem5_getPort(const std::string &if_name, int idx=-1)
sc_module & operator,(sc_interface &)
void at_negedge(const sc_signal_in_if< bool > &)
const char * name() const
static bool endOfSimulationComplete()
static bool startOfSimulationComplete()
void deprecatedConstructor()
void bindPorts(std::vector< const ::sc_core::sc_bind_proxy * > &proxies)
const std::vector< sc_core::sc_event * > & get_child_events() const
const std::vector< sc_core::sc_object * > & get_child_objects() const
static Process * newest()
void setStackSize(size_t size)
const char * gen(std::string seed)
#define fatal(...)
This implements a cprintf based fatal() function.
std::string csprintf(const char *format, const Args &...args)
bool sc_start_of_simulation_invoked()
const sc_bind_proxy SC_BIND_PROXY_NIL
sc_module * sc_module_sc_new(sc_module *mod)
void at_negedge(const sc_signal_in_if< bool > &s)
bool sc_end_of_simulation_invoked()
void wait(double d, sc_time_unit u, const sc_event_and_list &eal)
const char SC_ID_WAIT_NOT_ALLOWED_[]
void at_negedge(const sc_signal_in_if< sc_dt::sc_logic > &s)
void next_trigger(double d, sc_time_unit u, const sc_event_and_list &eal)
void at_posedge(const sc_signal_in_if< sc_dt::sc_logic > &s)
const char SC_ID_GEN_UNIQUE_NAME_[]
const char SC_ID_INSERT_MODULE_[]
const char SC_ID_WAIT_N_INVALID_[]
void at_posedge(const sc_signal_in_if< bool > &s)
bool sc_hierarchical_name_exists(const char *name)
const char SC_ID_BAD_SC_MODULE_CONSTRUCTOR_[]
const char SC_ID_DONT_INITIALIZE_[]
const char * sc_gen_unique_name(const char *seed)
const char SC_ID_MODULE_THREAD_AFTER_START_[]
const char SC_ID_MODULE_METHOD_AFTER_START_[]
const char SC_ID_MODULE_CTHREAD_AFTER_START_[]
UniqueNameGen globalNameGen
static Module * pickParentModule()
void newReset(const sc_core::sc_port_base *pb, Process *p, bool s, bool v)
void newDynamicSensitivityEvent(Process *p, const sc_core::sc_event *e)
sc_core::sc_object * findObject(const char *name, const Objects &objects)
void newDynamicSensitivityEventAndList(Process *p, const sc_core::sc_event_and_list *eal)
Process * newCThreadProcess(const char *name, ProcessFuncWrapper *func)
Process * newMethodProcess(const char *name, ProcessFuncWrapper *func)
void newDynamicSensitivityEventOrList(Process *p, const sc_core::sc_event_or_list *eol)
Module * newModuleChecked()
Process * newThreadProcess(const char *name, ProcessFuncWrapper *func)
EventsIt findEvent(const std::string &name)
#define SC_REPORT_WARNING(msg_type, msg)
#define SC_REPORT_ERROR(msg_type, msg)
const std::string & name()