summaryrefslogtreecommitdiff
path: root/src/systemc/ext/channel/sc_inout.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/ext/channel/sc_inout.hh')
-rw-r--r--src/systemc/ext/channel/sc_inout.hh19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/systemc/ext/channel/sc_inout.hh b/src/systemc/ext/channel/sc_inout.hh
index 7f19443d5..2973a5414 100644
--- a/src/systemc/ext/channel/sc_inout.hh
+++ b/src/systemc/ext/channel/sc_inout.hh
@@ -33,6 +33,7 @@
#include <string>
#include "../core/sc_event.hh"
+#include "../core/sc_main.hh"
#include "../core/sc_port.hh"
#include "../dt/bit/sc_logic.hh"
#include "../utils/sc_trace_file.hh"
@@ -184,10 +185,10 @@ template <class T>
inline void
sc_trace(sc_trace_file *tf, const sc_inout<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 <>
@@ -357,10 +358,10 @@ template <>
inline void sc_trace<bool>(
sc_trace_file *tf, const sc_inout<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 <>
@@ -549,10 +550,10 @@ inline void
sc_trace<sc_dt::sc_logic>(sc_trace_file *tf,
const sc_inout<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