systemc: Add some nonstandard cthread related sc_module functions.
authorGabe Black <gabeblack@google.com>
Sat, 16 Jun 2018 01:43:14 +0000 (18:43 -0700)
committerGabe Black <gabeblack@google.com>
Wed, 22 Aug 2018 01:07:24 +0000 (01:07 +0000)
Change-Id: I73f9868b80f9b75e7bd90df6e894daea60a203a1
Reviewed-on: https://gem5-review.googlesource.com/11268
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/systemc/core/sc_module.cc
src/systemc/ext/core/sc_module.hh

index 7e6b0597605a9432e498cce592901eac7bf62e73..a461022a3e1722cb7ffb2c8eae196ee4678456bf 100644 (file)
@@ -376,6 +376,30 @@ sc_module::halt()
     warn("%s not implemented.\n", __PRETTY_FUNCTION__);
 }
 
+void
+sc_module::at_posedge(const sc_signal_in_if<bool> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_module::at_posedge(const sc_signal_in_if<sc_dt::sc_logic> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_module::at_negedge(const sc_signal_in_if<bool> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_module::at_negedge(const sc_signal_in_if<sc_dt::sc_logic> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
 
 void
 next_trigger()
@@ -534,6 +558,30 @@ halt()
     warn("%s not implemented.\n", __PRETTY_FUNCTION__);
 }
 
+void
+at_posedge(const sc_signal_in_if<bool> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+at_posedge(const sc_signal_in_if<sc_dt::sc_logic> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+at_negedge(const sc_signal_in_if<bool> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+at_negedge(const sc_signal_in_if<sc_dt::sc_logic> &)
+{
+    warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
 const char *
 sc_gen_unique_name(const char *)
 {
index 931eb3a86d4a779eb3683df3f72edfe5d1edc608..25053dfa1233e3facce7476ad6da3fe6dbfb4354 100644 (file)
 #include "sc_sensitive.hh"
 #include "sc_time.hh"
 
+namespace sc_dt
+{
+
+class sc_logic;
+
+} // namespace sc_dt
+
 namespace sc_core
 {
 
@@ -186,7 +193,12 @@ class sc_module : public sc_object
     void wait(const sc_time &, const sc_event_and_list &);
     void wait(double, sc_time_unit, const sc_event_and_list &);
 
+    // Nonstandard
     void halt();
+    void at_posedge(const sc_signal_in_if<bool> &);
+    void at_posedge(const sc_signal_in_if<sc_dt::sc_logic> &);
+    void at_negedge(const sc_signal_in_if<bool> &);
+    void at_negedge(const sc_signal_in_if<sc_dt::sc_logic> &);
 
     virtual void before_end_of_elaboration() {}
     virtual void end_of_elaboration() {}
@@ -243,6 +255,10 @@ void wait(double, sc_time_unit, const sc_event_and_list &);
 // stop the currently executing cthread, or if a cthread isn't running report
 // an error.
 void halt();
+void at_posedge(const sc_signal_in_if<bool> &);
+void at_posedge(const sc_signal_in_if<sc_dt::sc_logic> &);
+void at_negedge(const sc_signal_in_if<bool> &);
+void at_negedge(const sc_signal_in_if<sc_dt::sc_logic> &);
 
 const char *sc_gen_unique_name(const char *);