sc_inout_resolved.cc (12841:22aa7ba47bf9) sc_inout_resolved.cc (13201:200a488db61f)
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

--- 15 unchanged lines hidden (view full) ---

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 * Authors: Gabe Black
28 */
29
30#include "base/logging.hh"
31#include "systemc/ext/channel/sc_inout_resolved.hh"
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

--- 15 unchanged lines hidden (view full) ---

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 * Authors: Gabe Black
28 */
29
30#include "base/logging.hh"
31#include "systemc/ext/channel/sc_inout_resolved.hh"
32#include "systemc/ext/channel/sc_signal_resolved.hh"
33#include "systemc/ext/utils/sc_report_handler.hh"
32
33namespace sc_core
34{
35
36sc_inout_resolved::sc_inout_resolved() : sc_inout<sc_dt::sc_logic>() {}
37
38sc_inout_resolved::sc_inout_resolved(const char *name) :
39 sc_inout<sc_dt::sc_logic>(name)
40{}
41
42sc_inout_resolved::~sc_inout_resolved() {}
43
34
35namespace sc_core
36{
37
38sc_inout_resolved::sc_inout_resolved() : sc_inout<sc_dt::sc_logic>() {}
39
40sc_inout_resolved::sc_inout_resolved(const char *name) :
41 sc_inout<sc_dt::sc_logic>(name)
42{}
43
44sc_inout_resolved::~sc_inout_resolved() {}
45
44void sc_inout_resolved::end_of_elaboration() {}
46void
47sc_inout_resolved::end_of_elaboration()
48{
49 sc_inout<sc_dt::sc_logic>::end_of_elaboration();
50 if (!dynamic_cast<sc_signal_resolved *>(get_interface())) {
51 std::string msg = csprintf("%s (%s)", name(), kind());
52 SC_REPORT_ERROR("(E117) resolved port not bound to resolved signal",
53 msg.c_str());
54 }
55}
45
46sc_inout_resolved &
56
57sc_inout_resolved &
47sc_inout_resolved::operator = (const sc_dt::sc_logic &)
58sc_inout_resolved::operator = (const sc_dt::sc_logic &l)
48{
59{
49 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
60 (*this)->write(l);
50 return *this;
51}
52
53sc_inout_resolved &
61 return *this;
62}
63
64sc_inout_resolved &
54sc_inout_resolved::operator = (const sc_signal_in_if &)
65sc_inout_resolved::operator = (const sc_signal_in_if<sc_dt::sc_logic> &i)
55{
66{
56 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
67 (*this)->write(i.read());
57 return *this;
58}
59
60sc_inout_resolved &
61sc_inout_resolved::operator = (
68 return *this;
69}
70
71sc_inout_resolved &
72sc_inout_resolved::operator = (
62 const sc_port, 1> &)
73 const sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> &p)
63{
74{
64 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
75 (*this)->write(p->read());
65 return *this;
66}
67
68sc_inout_resolved &
69sc_inout_resolved::operator = (
76 return *this;
77}
78
79sc_inout_resolved &
80sc_inout_resolved::operator = (
70 const sc_port, 1> &)
81 const sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1> &p)
71{
82{
72 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
83 (*this)->write(p->read());
73 return *this;
74}
75
76sc_inout_resolved &
84 return *this;
85}
86
87sc_inout_resolved &
77sc_inout_resolved::operator = (const sc_inout_resolved &)
88sc_inout_resolved::operator = (const sc_inout_resolved &p)
78{
89{
79 warn("%s not implemented.\n", __PRETTY_FUNCTION__);
90 (*this)->write(p->read());
80 return *this;
81}
82
91 return *this;
92}
93
83const char *sc_inout_resolved::kind() const { return "sc_inout_resolved"; }
84
85} // namespace sc_core
94} // namespace sc_core