gem5  v21.2.0.0
sc_signal.hh
Go to the documentation of this file.
1 /*
2  * Copyright 2018 Google, Inc.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met: redistributions of source code must retain the above copyright
7  * notice, this list of conditions and the following disclaimer;
8  * redistributions in binary form must reproduce the above copyright
9  * notice, this list of conditions and the following disclaimer in the
10  * documentation and/or other materials provided with the distribution;
11  * neither the name of the copyright holders nor the names of its
12  * contributors may be used to endorse or promote products derived from
13  * this software without specific prior written permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 #ifndef __SYSTEMC_EXT_CHANNEL_SC_SIGNAL_HH__
29 #define __SYSTEMC_EXT_CHANNEL_SC_SIGNAL_HH__
30 
31 #include <iostream>
32 #include <string>
33 #include <vector>
34 
35 #include "../core/sc_event.hh"
36 #include "../core/sc_module.hh" // for sc_gen_unique_name
37 #include "../core/sc_prim.hh"
38 #include "../dt/bit/sc_logic.hh"
39 #include "sc_signal_inout_if.hh"
40 
41 namespace sc_core
42 {
43 
44 class sc_port_base;
45 
46 } // namespace sc_core
47 
48 namespace sc_gem5
49 {
50 
51 class Process;
52 class Reset;
53 
55 {
56  public:
57  virtual const char *kind() const { return "sc_signal"; }
58 
59  protected:
60  ScSignalBase(const char *_name);
61  virtual ~ScSignalBase();
62 
63  const sc_core::sc_event &defaultEvent() const;
64  const sc_core::sc_event &valueChangedEvent() const;
65 
66  bool event() const;
67 
68  void _signalChange();
69 
70  virtual sc_core::sc_writer_policy get_writer_policy() const = 0;
71 
73  uint64_t _changeStamp;
75 };
76 
78 {
79  protected:
80  ScSignalBaseBinary(const char *_name);
81 
84  void _signalReset();
85 
86  const sc_core::sc_event &posedgeEvent() const;
87  const sc_core::sc_event &negedgeEvent() const;
88 
89  bool posedge() const;
90  bool negedge() const;
91 
94 
95  uint64_t _posStamp;
96  uint64_t _negStamp;
97 
98  void _signalPosedge();
99  void _signalNegedge();
100 };
101 
102 template <class T>
104 {
105  protected:
106  ScSignalBasePicker(const char *_name) : ScSignalBase(_name) {}
107 };
108 
109 template <>
111 {
112  protected:
113  ScSignalBasePicker(const char *_name) : ScSignalBaseBinary(_name) {}
114 };
115 
116 template <>
117 class ScSignalBasePicker<sc_dt::sc_logic> : public ScSignalBaseBinary
118 {
119  protected:
120  ScSignalBasePicker(const char *_name) : ScSignalBaseBinary(_name) {}
121 };
122 
123 template <sc_core::sc_writer_policy WRITER_POLICY>
125 
126 template <>
128 {
129  public:
130  WriteChecker(ScSignalBase *_sig);
131 
132  void checkPort(sc_core::sc_port_base &port,
133  std::string iface_type_name, std::string out_name);
134  void checkWriter();
135 
136  private:
140  uint64_t writeStamp;
141 };
142 
143 template <>
145 {
146  public:
147  WriteChecker(ScSignalBase *_sig);
148 
149  void checkPort(sc_core::sc_port_base &port,
150  std::string iface_type_name, std::string out_name);
151  void checkWriter();
152 
153  private:
156  uint64_t writeStamp;
157 };
158 
159 template <class T, sc_core::sc_writer_policy WRITER_POLICY>
162 {
163  public:
164  ScSignalBaseT(const char *_name) :
165  ScSignalBasePicker<T>(_name), m_cur_val(T()), m_new_val(T()),
166  _checker(this)
167  {}
168  ScSignalBaseT(const char *_name, const T &initial_value) :
169  ScSignalBasePicker<T>(_name), m_cur_val(initial_value),
170  m_new_val(initial_value), _checker(this)
171  {}
172  virtual ~ScSignalBaseT() {}
173 
174  virtual void
175  register_port(sc_core::sc_port_base &port, const char *iface_type_name)
176  {
177 # if !defined(SC_NO_WRITE_CHECK)
178  {
179  _checker.checkPort(port, iface_type_name,
181  }
182 # endif
183  }
184 
185  virtual const T &read() const { return m_cur_val; }
186  operator const T&() const { return read(); }
187 
188  virtual void
189  write(const T &t)
190  {
191 # if !defined(SC_NO_WRITE_CHECK)
192  {
193  _checker.checkWriter();
194  }
195 # endif
196  m_new_val = t;
197  bool changed = !(m_cur_val == m_new_val);
198  if (changed)
199  this->request_update();
200  }
201 
202  virtual const sc_core::sc_event &
204  {
206  }
207 
208  virtual const sc_core::sc_event &
210  {
212  }
213 
214  virtual void print(std::ostream &os=std::cout) const { os << m_cur_val; }
215  virtual void
216  dump(std::ostream &os=std::cout) const
217  {
218  os << " name = " << this->name() << ::std::endl;
219  os << " value = " << m_cur_val << ::std::endl;
220  os << "new value = " << m_new_val << ::std::endl;
221  }
222 
223  virtual bool event() const { return ScSignalBase::event(); }
224 
227  {
228  return WRITER_POLICY;
229  }
230 
231  protected:
232  // These members which store the current and future value of the signal
233  // are not specified in the standard but are referred to directly by one
234  // of the tests.
237 
239 };
240 
241 template <typename T, sc_core::sc_writer_policy WRITER_POLICY>
242 class ScSignalBinary : public ScSignalBaseT<T, WRITER_POLICY>
243 {
244  public:
245  ScSignalBinary(const char *_name) : ScSignalBaseT<T, WRITER_POLICY>(_name)
246  {}
247  ScSignalBinary(const char *_name, const T& initial_value) :
248  ScSignalBaseT<T, WRITER_POLICY>(_name, initial_value)
249  {}
250 
251  const sc_core::sc_event &
253  {
255  }
256  const sc_core::sc_event &
258  {
260  }
261 
262  bool posedge() const { return ScSignalBaseBinary::posedge(); }
263  bool negedge() const { return ScSignalBaseBinary::negedge(); }
264 };
265 
266 } // namespace sc_gem5
267 
268 namespace sc_core
269 {
270 
271 template <class T, sc_writer_policy WRITER_POLICY=SC_ONE_WRITER>
272 class sc_signal : public sc_gem5::ScSignalBaseT<T, WRITER_POLICY>
273 {
274  public:
275  sc_signal() : sc_gem5::ScSignalBaseT<T, WRITER_POLICY>(
276  sc_gen_unique_name("signal"))
277  {}
278  explicit sc_signal(const char *name) :
279  sc_gem5::ScSignalBaseT<T, WRITER_POLICY>(name)
280  {}
281  explicit sc_signal(const char *name, const T &initial_value) :
282  sc_gem5::ScSignalBaseT<T, WRITER_POLICY>(name, initial_value)
283  {}
284  virtual ~sc_signal() {}
285 
287  operator = (const T &t)
288  {
289  this->write(t);
290  return *this;
291  }
294  {
295  this->write(s.read());
296  return *this;
297  }
298 
299  protected:
300  virtual void
302  {
303  if (this->m_new_val == this->m_cur_val)
304  return;
305 
306  this->m_cur_val = this->m_new_val;
307  this->_signalChange();
308  }
309 
310  private:
311  // Disabled
313 };
314 
315 template <class T, sc_writer_policy WRITER_POLICY>
316 inline std::ostream &
318 {
319  os << s.read();
320  return os;
321 }
322 
323 template <sc_writer_policy WRITER_POLICY>
324 class sc_signal<bool, WRITER_POLICY> :
325  public sc_gem5::ScSignalBinary<bool, WRITER_POLICY>
326 {
327  public:
329  sc_gem5::ScSignalBinary<bool, WRITER_POLICY>(
330  sc_gen_unique_name("signal"))
331  {}
332  explicit sc_signal(const char *name) :
333  sc_gem5::ScSignalBinary<bool, WRITER_POLICY>(name)
334  {}
335  explicit sc_signal(const char *name, const bool &initial_value) :
336  sc_gem5::ScSignalBinary<bool, WRITER_POLICY>(name, initial_value)
337  {}
338  virtual ~sc_signal() {}
339 
341  operator = (const bool &b)
342  {
343  this->write(b);
344  return *this;
345  }
348  {
349  this->write(s.read());
350  return *this;
351  }
352 
353  protected:
354  virtual void
356  {
357  if (this->m_new_val == this->m_cur_val)
358  return;
359 
360  this->m_cur_val = this->m_new_val;
361  this->_signalChange();
362  }
363 
364  void
366  {
368  this->_signalReset();
369  if (this->m_cur_val)
370  this->_signalPosedge();
371  else
372  this->_signalNegedge();
373  }
374 
375  private:
376  bool
378  {
379  this->_resets.push_back(reset);
380  return true;
381  }
382 
383  // Disabled
385 };
386 
387 template <sc_writer_policy WRITER_POLICY>
388 class sc_signal<sc_dt::sc_logic, WRITER_POLICY> :
389  public sc_gem5::ScSignalBinary<sc_dt::sc_logic, WRITER_POLICY>
390 {
391  public:
393  sc_gem5::ScSignalBinary<sc_dt::sc_logic, WRITER_POLICY>(
394  sc_gen_unique_name("signal"))
395  {}
396  explicit sc_signal(const char *name) :
397  sc_gem5::ScSignalBinary<sc_dt::sc_logic, WRITER_POLICY>(name)
398  {}
399  explicit sc_signal(const char *name,
400  const sc_dt::sc_logic &initial_value) :
401  sc_gem5::ScSignalBinary<sc_dt::sc_logic, WRITER_POLICY>(
402  name, initial_value)
403  {}
404  virtual ~sc_signal() {}
405 
408  {
409  this->write(l);
410  return *this;
411  }
414  {
415  this->write(s.read());
416  return *this;
417  }
418 
419  protected:
420  virtual void
422  {
423  if (this->m_new_val == this->m_cur_val)
424  return;
425 
426  this->m_cur_val = this->m_new_val;
427  this->_signalChange();
428  }
429 
430  void
432  {
435  if (this->m_cur_val == sc_dt::SC_LOGIC_1)
436  this->_signalPosedge();
437  else if (this->m_cur_val == sc_dt::SC_LOGIC_0)
438  this->_signalNegedge();
439  }
440 
441  private:
442  // Disabled
444 };
445 
446 } // namespace sc_core
447 
448 #endif //__SYSTEMC_EXT_CHANNEL_SC_SIGNAL_HH__
sc_core::sc_signal< bool, WRITER_POLICY >::~sc_signal
virtual ~sc_signal()
Definition: sc_signal.hh:338
sc_core::sc_port_base
Definition: sc_port.hh:74
sc_core::sc_signal< bool, WRITER_POLICY >::_addReset
bool _addReset(sc_gem5::Reset *reset) const
Definition: sc_signal.hh:377
sc_gem5::ScSignalBaseBinary::negedge
bool negedge() const
Definition: sc_signal.cc:182
sc_gem5::ScSignalBase::event
bool event() const
Definition: sc_signal.cc:58
sc_core::sc_signal< bool, WRITER_POLICY >::sc_signal
sc_signal()
Definition: sc_signal.hh:328
sc_gem5::ScSignalBase::kind
virtual const char * kind() const
Definition: sc_signal.hh:57
sc_gem5::ScSignalBaseT::event
virtual bool event() const
Definition: sc_signal.hh:223
sc_gem5::ScSignalBaseBinary::_posedgeEvent
InternalScEvent _posedgeEvent
Definition: sc_signal.hh:92
sc_gem5::ScSignalBaseBinary::ScSignalBaseBinary
ScSignalBaseBinary(const char *_name)
Definition: sc_signal.cc:159
sc_core::sc_signal_inout_if
Definition: sc_signal_inout_if.hh:68
sc_gem5::ScSignalBaseBinary::_signalReset
void _signalReset()
Definition: sc_signal.cc:194
sc_gem5::ScSignalBaseBinary::_signalPosedge
void _signalPosedge()
Definition: sc_signal.cc:71
sc_gem5::WriteChecker< sc_core::SC_MANY_WRITERS >::writeStamp
uint64_t writeStamp
Definition: sc_signal.hh:156
sc_dt
Definition: sc_bit.cc:67
sc_gem5::ScSignalBaseT::print
virtual void print(std::ostream &os=std::cout) const
Definition: sc_signal.hh:214
sc_gem5::ScSignalBasePicker::ScSignalBasePicker
ScSignalBasePicker(const char *_name)
Definition: sc_signal.hh:106
sc_gem5::ScSignalBinary
Definition: sc_signal.hh:242
sc_core
Definition: messages.cc:31
sc_gem5::ScSignalBinary::ScSignalBinary
ScSignalBinary(const char *_name)
Definition: sc_signal.hh:245
sc_gem5::ScSignalBaseBinary::_negedgeEvent
InternalScEvent _negedgeEvent
Definition: sc_signal.hh:93
sc_gem5::ScSignalBaseBinary::_resets
std::vector< sc_gem5::Reset * > _resets
Definition: sc_signal.hh:82
sc_gem5::ScSignalBaseBinary
Definition: sc_signal.hh:77
sc_gem5::ScSignalBase::_changeStamp
uint64_t _changeStamp
Definition: sc_signal.hh:73
sc_gem5::ScSignalBinary::posedge
bool posedge() const
Definition: sc_signal.hh:262
sc_core::sc_signal< sc_dt::sc_logic, WRITER_POLICY >::sc_signal
sc_signal(const char *name)
Definition: sc_signal.hh:396
sc_gem5::ScSignalBaseT::read
virtual const T & read() const
Definition: sc_signal.hh:185
std::vector< sc_gem5::Reset * >
sc_core::sc_signal
Definition: sc_signal.hh:272
sc_dt::sc_logic
Definition: sc_logic.hh:130
sc_gem5::Reset
Definition: process.hh:206
sc_gem5::ScSignalBase::_gem5WriterPort
sc_core::sc_port_base * _gem5WriterPort
Definition: sc_signal.hh:74
sc_gem5::ScSignalBaseBinary::negedgeEvent
const sc_core::sc_event & negedgeEvent() const
Definition: sc_signal.cc:170
sc_core::sc_prim_channel::request_update
void request_update()
Definition: sc_prim.cc:70
sc_gem5::ScSignalBaseT::m_cur_val
T m_cur_val
Definition: sc_signal.hh:235
sc_gem5::ScSignalBaseT::_checker
WriteChecker< WRITER_POLICY > _checker
Definition: sc_signal.hh:238
sc_gem5::ScSignalBaseT::get_writer_policy
virtual sc_core::sc_writer_policy get_writer_policy() const
Definition: sc_signal.hh:226
sc_gem5::ScSignalBinary::posedge_event
const sc_core::sc_event & posedge_event() const
Definition: sc_signal.hh:252
sc_gem5::ScSignalBase::get_writer_policy
virtual sc_core::sc_writer_policy get_writer_policy() const =0
sc_gem5::ScSignalBase::_valueChangedEvent
InternalScEvent _valueChangedEvent
Definition: sc_signal.hh:72
sc_core::SC_MANY_WRITERS
@ SC_MANY_WRITERS
Definition: sc_signal_inout_if.hh:40
sc_core::sc_signal< sc_dt::sc_logic, WRITER_POLICY >
Definition: sc_signal.hh:388
sc_gem5::WriteChecker< sc_core::SC_ONE_WRITER >::firstPort
sc_core::sc_port_base * firstPort
Definition: sc_signal.hh:138
sc_signal_inout_if.hh
gem5::ArmISA::b
Bitfield< 7 > b
Definition: misc_types.hh:382
sc_gem5::InternalScEvent
Definition: sc_event.hh:254
sc_core::SC_ONE_WRITER
@ SC_ONE_WRITER
Definition: sc_signal_inout_if.hh:39
sc_gem5::ScSignalBaseT::value_changed_event
virtual const sc_core::sc_event & value_changed_event() const
Definition: sc_signal.hh:209
sc_gem5::ScSignalBaseT::dump
virtual void dump(std::ostream &os=std::cout) const
Definition: sc_signal.hh:216
sc_gem5::ScSignalBase::defaultEvent
const sc_core::sc_event & defaultEvent() const
Definition: sc_signal.cc:46
sc_gem5::ScSignalBaseT
Definition: sc_signal.hh:160
sc_core::sc_signal< bool, WRITER_POLICY >::update
virtual void update()
Definition: sc_signal.hh:355
sc_core::sc_writer_policy
sc_writer_policy
Definition: sc_signal_inout_if.hh:37
sc_core::sc_event
Definition: sc_event.hh:169
sc_core::sc_signal< sc_dt::sc_logic, WRITER_POLICY >::sc_signal
sc_signal(const char *name, const sc_dt::sc_logic &initial_value)
Definition: sc_signal.hh:399
gem5::ArmISA::s
Bitfield< 4 > s
Definition: misc_types.hh:562
gem5::statistics::reset
void reset()
Definition: statistics.cc:310
sc_core::operator<<
std::ostream & operator<<(std::ostream &os, sc_status s)
Definition: sc_main.cc:178
gem5::MipsISA::l
Bitfield< 5 > l
Definition: pra_constants.hh:323
sc_gem5::ScSignalBaseT::ScSignalBaseT
ScSignalBaseT(const char *_name)
Definition: sc_signal.hh:164
sc_gem5::ScSignalBase::~ScSignalBase
virtual ~ScSignalBase()
Definition: sc_signal.cc:43
sc_gem5::ScSignalBaseT::ScSignalBaseT
ScSignalBaseT(const char *_name, const T &initial_value)
Definition: sc_signal.hh:168
sc_dt::SC_LOGIC_0
const sc_logic SC_LOGIC_0(Log_0)
Definition: sc_logic.hh:399
sc_core::sc_signal< sc_dt::sc_logic, WRITER_POLICY >::~sc_signal
virtual ~sc_signal()
Definition: sc_signal.hh:404
sc_gem5::ScSignalBase::_signalChange
void _signalChange()
Definition: sc_signal.cc:64
sc_core::sc_signal< bool, WRITER_POLICY >
Definition: sc_signal.hh:324
sc_core::sc_gen_unique_name
const char * sc_gen_unique_name(const char *seed)
Definition: sc_module.cc:820
gem5::ArmISA::t
Bitfield< 5 > t
Definition: misc_types.hh:71
sc_gem5::WriteChecker< sc_core::SC_ONE_WRITER >::writeStamp
uint64_t writeStamp
Definition: sc_signal.hh:140
sc_core::sc_signal< sc_dt::sc_logic, WRITER_POLICY >::update
virtual void update()
Definition: sc_signal.hh:421
sc_gem5::Process
Definition: process.hh:62
sc_gem5::ScSignalBaseT::m_new_val
T m_new_val
Definition: sc_signal.hh:236
sc_core::sc_signal::sc_signal
sc_signal(const char *name, const T &initial_value)
Definition: sc_signal.hh:281
sc_gem5::ScSignalBaseT::default_event
virtual const sc_core::sc_event & default_event() const
Definition: sc_signal.hh:203
sc_core::sc_signal< bool, WRITER_POLICY >::_signalChange
void _signalChange()
Definition: sc_signal.hh:365
sc_gem5::WriteChecker< sc_core::SC_ONE_WRITER >::proc
Process * proc
Definition: sc_signal.hh:139
sc_gem5::ScSignalBase
Definition: sc_signal.hh:54
sc_gem5::ScSignalBinary::negedge
bool negedge() const
Definition: sc_signal.hh:263
sc_gem5::ScSignalBaseT::~ScSignalBaseT
virtual ~ScSignalBaseT()
Definition: sc_signal.hh:172
sc_core::sc_signal< bool, WRITER_POLICY >::sc_signal
sc_signal(const char *name, const bool &initial_value)
Definition: sc_signal.hh:335
sc_gem5::ScSignalBinary::ScSignalBinary
ScSignalBinary(const char *_name, const T &initial_value)
Definition: sc_signal.hh:247
gem5::X86ISA::os
Bitfield< 17 > os
Definition: misc.hh:809
sc_core::sc_signal::update
virtual void update()
Definition: sc_signal.hh:301
sc_core::sc_prim_channel
Definition: sc_prim.hh:50
sc_gem5::ScSignalBaseT::write
virtual void write(const T &t)
Definition: sc_signal.hh:189
sc_core::sc_signal< sc_dt::sc_logic, WRITER_POLICY >::sc_signal
sc_signal()
Definition: sc_signal.hh:392
sc_core::sc_object::name
const char * name() const
Definition: sc_object.cc:44
sc_gem5::ScSignalBaseBinary::posedge
bool posedge() const
Definition: sc_signal.cc:176
sc_gem5::ScSignalBasePicker< bool >::ScSignalBasePicker
ScSignalBasePicker(const char *_name)
Definition: sc_signal.hh:113
sc_core::sc_signal< sc_dt::sc_logic, WRITER_POLICY >::_signalChange
void _signalChange()
Definition: sc_signal.hh:431
sc_gem5::ScSignalBinary::negedge_event
const sc_core::sc_event & negedge_event() const
Definition: sc_signal.hh:257
sc_core::sc_signal< bool, WRITER_POLICY >::sc_signal
sc_signal(const char *name)
Definition: sc_signal.hh:332
sc_gem5::ScSignalBaseBinary::posedgeEvent
const sc_core::sc_event & posedgeEvent() const
Definition: sc_signal.cc:164
sc_gem5
Definition: sc_clock.cc:41
sc_gem5::ScSignalBaseT::register_port
virtual void register_port(sc_core::sc_port_base &port, const char *iface_type_name)
Definition: sc_signal.hh:175
sc_core::sc_signal::operator=
sc_signal< T, WRITER_POLICY > & operator=(const T &t)
Definition: sc_signal.hh:287
gem5::ps2::Reset
@ Reset
Definition: types.hh:70
sc_core::sc_signal::sc_signal
sc_signal(const char *name)
Definition: sc_signal.hh:278
sc_gem5::ScSignalBaseBinary::_negStamp
uint64_t _negStamp
Definition: sc_signal.hh:96
sc_gem5::ScSignalBaseBinary::_posStamp
uint64_t _posStamp
Definition: sc_signal.hh:95
sc_gem5::WriteChecker
Definition: sc_signal.hh:124
sc_gem5::WriteChecker< sc_core::SC_MANY_WRITERS >::proc
Process * proc
Definition: sc_signal.hh:155
sc_gem5::ScSignalBaseBinary::_signalNegedge
void _signalNegedge()
Definition: sc_signal.cc:78
sc_gem5::ScSignalBasePicker
Definition: sc_signal.hh:103
sc_gem5::WriteChecker< sc_core::SC_MANY_WRITERS >::sig
ScSignalBase * sig
Definition: sc_signal.hh:154
sc_core::sc_signal::~sc_signal
virtual ~sc_signal()
Definition: sc_signal.hh:284
sc_dt::SC_LOGIC_1
const sc_logic SC_LOGIC_1(Log_1)
Definition: sc_logic.hh:400
sc_core::sc_signal::sc_signal
sc_signal()
Definition: sc_signal.hh:275
sc_gem5::WriteChecker< sc_core::SC_ONE_WRITER >::sig
ScSignalBase * sig
Definition: sc_signal.hh:137
sc_gem5::ScSignalBase::ScSignalBase
ScSignalBase(const char *_name)
Definition: sc_signal.cc:38
sc_gem5::ScSignalBase::valueChangedEvent
const sc_core::sc_event & valueChangedEvent() const
Definition: sc_signal.cc:52
sc_gem5::ScSignalBasePicker< sc_dt::sc_logic >::ScSignalBasePicker
ScSignalBasePicker(const char *_name)
Definition: sc_signal.hh:120

Generated on Tue Dec 21 2021 11:34:36 for gem5 by doxygen 1.8.17