diff options
Diffstat (limited to 'src/systemc/core')
-rw-r--r-- | src/systemc/core/sc_sensitive.cc | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/systemc/core/sc_sensitive.cc b/src/systemc/core/sc_sensitive.cc index b254f6861..9b8ae2de4 100644 --- a/src/systemc/core/sc_sensitive.cc +++ b/src/systemc/core/sc_sensitive.cc @@ -29,6 +29,9 @@ #include "base/logging.hh" #include "systemc/core/process.hh" +#include "systemc/ext/channel/sc_in.hh" +#include "systemc/ext/channel/sc_inout.hh" +#include "systemc/ext/channel/sc_signal_in_if.hh" #include "systemc/ext/core/sc_interface.hh" #include "systemc/ext/core/sc_sensitive.hh" @@ -72,4 +75,51 @@ sc_sensitive::operator << (::sc_gem5::Process *p) return *this; } + +void +sc_sensitive::operator () (::sc_gem5::Process *p, + const sc_signal_in_if<bool> &i) +{ + sc_gem5::newStaticSensitivityEvent(p, &i.posedge_event()); +} + +void +sc_sensitive::operator () (::sc_gem5::Process *p, + const sc_signal_in_if<sc_dt::sc_logic> &i) +{ + sc_gem5::newStaticSensitivityEvent(p, &i.posedge_event()); +} + +void +sc_sensitive::operator () (::sc_gem5::Process *p, const sc_in<bool> &port) +{ + sc_gem5::newStaticSensitivityFinder(p, &port.pos()); +} + +void +sc_sensitive::operator () (::sc_gem5::Process *p, + const sc_in<sc_dt::sc_logic> &port) +{ + sc_gem5::newStaticSensitivityFinder(p, &port.pos()); +} + +void +sc_sensitive::operator () (::sc_gem5::Process *p, const sc_inout<bool> &port) +{ + sc_gem5::newStaticSensitivityFinder(p, &port.pos()); +} + +void +sc_sensitive::operator () (::sc_gem5::Process *p, + const sc_inout<sc_dt::sc_logic> &port) +{ + sc_gem5::newStaticSensitivityFinder(p, &port.pos()); +} + +void +sc_sensitive::operator () (::sc_gem5::Process *p, sc_event_finder &f) +{ + sc_gem5::newStaticSensitivityFinder(p, &f); +} + } // namespace sc_core |