gem5 v24.0.0.0
Loading...
Searching...
No Matches
sc_signal_in_if.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_IN_IF_HH__
29#define __SYSTEMC_EXT_CHANNEL_SC_SIGNAL_IN_IF_HH__
30
32
33namespace sc_dt
34{
35
36class sc_logic;
37
38};
39
40namespace sc_gem5
41{
42
43class Reset;
44
45} // namespace sc_gem5
46
47namespace sc_core
48{
49
50class sc_event;
51
52template <class T>
53class sc_signal_in_if : virtual public sc_interface
54{
55 public:
56 virtual const T &read() const = 0;
57 virtual const sc_event &value_changed_event() const = 0;
58 virtual bool event() const = 0;
59
60 protected:
62
63 private:
64 // Disabled
68 {
69 return *this;
70 }
71};
72
73template <>
74class sc_signal_in_if<bool> : virtual public sc_interface
75{
76 public:
77 virtual const bool &read() const = 0;
78
79 virtual const sc_event &value_changed_event() const = 0;
80 virtual const sc_event &posedge_event() const = 0;
81 virtual const sc_event &negedge_event() const = 0;
82
83 virtual bool event() const = 0;
84 virtual bool posedge() const = 0;
85 virtual bool negedge() const = 0;
86
87 protected:
89
90 private:
91 friend class sc_gem5::Reset;
92 virtual bool
94 {
95 return false;
96 }
97
98 // Disabled
102 {
103 return *this;
104 }
105};
106
107template <>
108class sc_signal_in_if<sc_dt::sc_logic> : virtual public sc_interface
109{
110 public:
111 virtual const sc_dt::sc_logic &read() const = 0;
112
113 virtual const sc_event &value_changed_event() const = 0;
114 virtual const sc_event &posedge_event() const = 0;
115 virtual const sc_event &negedge_event() const = 0;
116
117 virtual bool event() const = 0;
118 virtual bool posedge() const = 0;
119 virtual bool negedge() const = 0;
120
121 protected:
123
124 private:
125 // Disabled
131 {
132 return *this;
133 }
134};
135
136} // namespace sc_core
137
138#endif //__SYSTEMC_EXT_CHANNEL_SC_SIGNAL_IN_IF_HH__
virtual const bool & read() const =0
virtual bool event() const =0
virtual const sc_event & value_changed_event() const =0
virtual const sc_event & posedge_event() const =0
virtual bool posedge() const =0
virtual bool negedge() const =0
sc_signal_in_if(const sc_signal_in_if< bool > &)
virtual const sc_event & negedge_event() const =0
virtual bool _addReset(sc_gem5::Reset *reset) const
virtual const sc_event & value_changed_event() const =0
virtual const sc_event & negedge_event() const =0
sc_signal_in_if(const sc_signal_in_if< sc_dt::sc_logic > &)
virtual const sc_dt::sc_logic & read() const =0
virtual const sc_event & posedge_event() const =0
virtual const sc_event & value_changed_event() const =0
sc_signal_in_if< T > & operator=(const sc_signal_in_if< T > &)
sc_signal_in_if(const sc_signal_in_if< T > &)
virtual bool event() const =0
virtual const T & read() const =0
@ Reset
Definition types.hh:69

Generated on Tue Jun 18 2024 16:24:06 for gem5 by doxygen 1.11.0