systemc: Add a nonstandard sc_signal constructor.
authorGabe Black <gabeblack@google.com>
Sat, 16 Jun 2018 01:07:43 +0000 (18:07 -0700)
committerGabe Black <gabeblack@google.com>
Wed, 22 Aug 2018 01:05:59 +0000 (01:05 +0000)
This constructor takes an initial value to set the sc_signal to, and
is used in the tests.

Change-Id: I197218846d9a79f9237238c78b1bbd8a7f55443f
Reviewed-on: https://gem5-review.googlesource.com/11266
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/systemc/ext/channel/sc_signal.hh

index e1ed619bf8b0313b7e104cefdc30df9b2ba925c0..de571b23e208887ba33a268949ae95af32b5d438 100644 (file)
@@ -53,6 +53,12 @@ class sc_signal : public sc_signal_inout_if<T>,
     explicit sc_signal(const char *name) : sc_signal_inout_if<T>(),
                                            sc_prim_channel(name)
     {}
+    explicit sc_signal(const char *name, const T &initial_value) :
+        sc_signal_inout_if<T>(), sc_prim_channel(name)
+    {
+        // Need to consume initial_value.
+        sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
+    }
     virtual ~sc_signal() {}
 
     virtual void
@@ -162,6 +168,12 @@ class sc_signal<bool, WRITER_POLICY> :
     {
         sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
     }
+    explicit sc_signal(const char *name, const bool &initial_value) :
+        sc_signal_inout_if<bool>(), sc_prim_channel(name)
+    {
+        // Need to consume initial_value.
+        sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
+    }
     virtual ~sc_signal()
     {
         sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
@@ -292,6 +304,13 @@ class sc_signal<sc_dt::sc_logic, WRITER_POLICY> :
     {
         sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
     }
+    explicit sc_signal(const char *name,
+            const sc_dt::sc_logic &initial_value) :
+        sc_signal_inout_if<sc_dt::sc_logic>(), sc_prim_channel(name)
+    {
+        // Need to consume initial_value.
+        sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
+    }
     virtual ~sc_signal()
     {
         sc_channel_warn_unimpl(__PRETTY_FUNCTION__);