diff options
Diffstat (limited to 'src/systemc/ext/channel/sc_in.hh')
-rw-r--r-- | src/systemc/ext/channel/sc_in.hh | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/systemc/ext/channel/sc_in.hh b/src/systemc/ext/channel/sc_in.hh index a76840161..3fea8a803 100644 --- a/src/systemc/ext/channel/sc_in.hh +++ b/src/systemc/ext/channel/sc_in.hh @@ -33,6 +33,7 @@ #include <string> #include "../core/sc_event.hh" +#include "../core/sc_main.hh" #include "../core/sc_port.hh" #include "../utils/sc_trace_file.hh" #include "sc_signal_in_if.hh" @@ -155,10 +156,10 @@ template <class T> inline void sc_trace(sc_trace_file *tf, const sc_in<T> &i, const std::string &name) { - if (i.size()) - sc_trace(tf, i->read(), name); - else + if (::sc_core::sc_get_status() < ::sc_core::SC_START_OF_SIMULATION) i.add_trace(tf, name); + else + sc_trace(tf, i->read(), name); } template <> @@ -316,10 +317,10 @@ inline void sc_trace<bool>(sc_trace_file *tf, const sc_in<bool> &i, const std::string &name) { - if (i.size()) - sc_trace(tf, i->read(), name); - else + if (::sc_core::sc_get_status() < ::sc_core::SC_START_OF_SIMULATION) i.add_trace(tf, name); + else + sc_trace(tf, i->read(), name); } template <> @@ -475,10 +476,10 @@ inline void sc_trace<sc_dt::sc_logic>(sc_trace_file *tf, const sc_in<sc_dt::sc_logic> &i, const std::string &name) { - if (i.size()) - sc_trace(tf, i->read(), name); - else + if (::sc_core::sc_get_status() < ::sc_core::SC_START_OF_SIMULATION) i.add_trace(tf, name); + else + sc_trace(tf, i->read(), name); } } // namespace sc_core |