sc_in.hh revision 12868
112841Sgabeblack@google.com/* 212841Sgabeblack@google.com * Copyright 2018 Google, Inc. 312841Sgabeblack@google.com * 412841Sgabeblack@google.com * Redistribution and use in source and binary forms, with or without 512841Sgabeblack@google.com * modification, are permitted provided that the following conditions are 612841Sgabeblack@google.com * met: redistributions of source code must retain the above copyright 712841Sgabeblack@google.com * notice, this list of conditions and the following disclaimer; 812841Sgabeblack@google.com * redistributions in binary form must reproduce the above copyright 912841Sgabeblack@google.com * notice, this list of conditions and the following disclaimer in the 1012841Sgabeblack@google.com * documentation and/or other materials provided with the distribution; 1112841Sgabeblack@google.com * neither the name of the copyright holders nor the names of its 1212841Sgabeblack@google.com * contributors may be used to endorse or promote products derived from 1312841Sgabeblack@google.com * this software without specific prior written permission. 1412841Sgabeblack@google.com * 1512841Sgabeblack@google.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1612841Sgabeblack@google.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1712841Sgabeblack@google.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1812841Sgabeblack@google.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1912841Sgabeblack@google.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2012841Sgabeblack@google.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2112841Sgabeblack@google.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2212841Sgabeblack@google.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2312841Sgabeblack@google.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2412841Sgabeblack@google.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2512841Sgabeblack@google.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2612841Sgabeblack@google.com * 2712841Sgabeblack@google.com * Authors: Gabe Black 2812841Sgabeblack@google.com */ 2912841Sgabeblack@google.com 3012841Sgabeblack@google.com#ifndef __SYSTEMC_EXT_CHANNEL_SC_IN_HH__ 3112841Sgabeblack@google.com#define __SYSTEMC_EXT_CHANNEL_SC_IN_HH__ 3212841Sgabeblack@google.com 3312841Sgabeblack@google.com#include <string> 3412841Sgabeblack@google.com 3512841Sgabeblack@google.com#include "../core/sc_port.hh" 3612841Sgabeblack@google.com#include "sc_signal_in_if.hh" 3712841Sgabeblack@google.com#include "sc_signal_inout_if.hh" 3812841Sgabeblack@google.com#include "warn_unimpl.hh" 3912841Sgabeblack@google.com 4012841Sgabeblack@google.comnamespace sc_core 4112841Sgabeblack@google.com{ 4212841Sgabeblack@google.com 4312841Sgabeblack@google.comclass sc_event; 4412841Sgabeblack@google.comclass sc_event_finder; 4512841Sgabeblack@google.comclass sc_trace_file; 4612841Sgabeblack@google.com 4712841Sgabeblack@google.comtemplate <class T> 4812841Sgabeblack@google.comclass sc_in : public sc_port<sc_signal_in_if<T>, 1> 4912841Sgabeblack@google.com{ 5012841Sgabeblack@google.com public: 5112841Sgabeblack@google.com sc_in() : sc_port<sc_signal_in_if<T>, 1>() {} 5212841Sgabeblack@google.com explicit sc_in(const char *name) : sc_port<sc_signal_in_if<T>, 1>(name) {} 5312841Sgabeblack@google.com virtual ~sc_in() {} 5412841Sgabeblack@google.com 5512868Sgabeblack@google.com // Deprecated binding constructors. 5612868Sgabeblack@google.com explicit sc_in(const sc_signal_in_if<T> &interface) : 5712868Sgabeblack@google.com sc_port<sc_signal_in_if<T>, 1>(interface) 5812868Sgabeblack@google.com {} 5912868Sgabeblack@google.com sc_in(const char *name, const sc_signal_in_if<T> &interface) : 6012868Sgabeblack@google.com sc_port<sc_signal_in_if<T>, 1>(name, interface) 6112868Sgabeblack@google.com {} 6212868Sgabeblack@google.com explicit sc_in(sc_port_b<sc_signal_in_if<T> > &parent) : 6312868Sgabeblack@google.com sc_port<sc_signal_in_if<T>, 1>(parent) 6412868Sgabeblack@google.com {} 6512868Sgabeblack@google.com sc_in(const char *name, sc_port_b<sc_signal_in_if<T> > &parent) : 6612868Sgabeblack@google.com sc_port<sc_signal_in_if<T>, 1>(name, parent) 6712868Sgabeblack@google.com {} 6812868Sgabeblack@google.com explicit sc_in(sc_port<sc_signal_in_if<T>, 1> &parent) : 6912868Sgabeblack@google.com sc_port<sc_signal_in_if<T>, 1>(parent) 7012868Sgabeblack@google.com {} 7112868Sgabeblack@google.com sc_in(const char *name, sc_port<sc_signal_in_if<T>, 1> &parent) : 7212868Sgabeblack@google.com sc_port<sc_signal_in_if<T>, 1>(name, parent) 7312868Sgabeblack@google.com {} 7412868Sgabeblack@google.com 7512841Sgabeblack@google.com virtual void 7612841Sgabeblack@google.com bind(const sc_signal_in_if<T> &) 7712841Sgabeblack@google.com { 7812841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 7912841Sgabeblack@google.com } 8012841Sgabeblack@google.com void 8112841Sgabeblack@google.com operator () (const sc_signal_in_if<T> &) 8212841Sgabeblack@google.com { 8312841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 8412841Sgabeblack@google.com } 8512841Sgabeblack@google.com 8612841Sgabeblack@google.com virtual void 8712841Sgabeblack@google.com bind(sc_port<sc_signal_in_if<T>, 1> &) 8812841Sgabeblack@google.com { 8912841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 9012841Sgabeblack@google.com } 9112841Sgabeblack@google.com void 9212841Sgabeblack@google.com operator () (sc_port<sc_signal_in_if<T>, 1> &) 9312841Sgabeblack@google.com { 9412841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 9512841Sgabeblack@google.com } 9612841Sgabeblack@google.com 9712841Sgabeblack@google.com virtual void 9812841Sgabeblack@google.com bind(sc_port<sc_signal_inout_if<T>, 1> &) 9912841Sgabeblack@google.com { 10012841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 10112841Sgabeblack@google.com } 10212841Sgabeblack@google.com void 10312841Sgabeblack@google.com operator () (sc_port<sc_signal_inout_if<T>, 1> &) 10412841Sgabeblack@google.com { 10512841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 10612841Sgabeblack@google.com } 10712841Sgabeblack@google.com 10812841Sgabeblack@google.com virtual void 10912841Sgabeblack@google.com end_of_elaboration() 11012841Sgabeblack@google.com { 11112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 11212841Sgabeblack@google.com } 11312841Sgabeblack@google.com 11412841Sgabeblack@google.com const T & 11512841Sgabeblack@google.com read() const 11612841Sgabeblack@google.com { 11712841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 11812841Sgabeblack@google.com return *(const T *)nullptr; 11912841Sgabeblack@google.com } 12012841Sgabeblack@google.com operator const T& () const 12112841Sgabeblack@google.com { 12212841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 12312841Sgabeblack@google.com return *(const T *)nullptr; 12412841Sgabeblack@google.com } 12512841Sgabeblack@google.com 12612841Sgabeblack@google.com const sc_event & 12712841Sgabeblack@google.com default_event() const 12812841Sgabeblack@google.com { 12912841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 13012841Sgabeblack@google.com return *(const sc_event *)nullptr; 13112841Sgabeblack@google.com } 13212841Sgabeblack@google.com const sc_event & 13312841Sgabeblack@google.com value_changed_event() const 13412841Sgabeblack@google.com { 13512841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 13612841Sgabeblack@google.com return *(const sc_event *)nullptr; 13712841Sgabeblack@google.com } 13812841Sgabeblack@google.com bool 13912841Sgabeblack@google.com event() const 14012841Sgabeblack@google.com { 14112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 14212841Sgabeblack@google.com return false; 14312841Sgabeblack@google.com } 14412841Sgabeblack@google.com sc_event_finder & 14512841Sgabeblack@google.com value_changed() const 14612841Sgabeblack@google.com { 14712841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 14812841Sgabeblack@google.com return *(sc_event_finder *)nullptr; 14912841Sgabeblack@google.com } 15012841Sgabeblack@google.com 15112841Sgabeblack@google.com virtual const char *kind() const { return "sc_in"; } 15212841Sgabeblack@google.com 15312841Sgabeblack@google.com private: 15412841Sgabeblack@google.com // Disabled 15512841Sgabeblack@google.com sc_in(const sc_in<T> &) : sc_port<sc_signal_in_if<T>, 1>() {} 15612841Sgabeblack@google.com sc_in<T> &operator = (const sc_in<T> &) { return *this; } 15712841Sgabeblack@google.com}; 15812841Sgabeblack@google.com 15912841Sgabeblack@google.comtemplate <class T> 16012841Sgabeblack@google.cominline void 16112841Sgabeblack@google.comsc_trace(sc_trace_file *, const sc_in<T> &, const std::string &) 16212841Sgabeblack@google.com{ 16312841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 16412841Sgabeblack@google.com} 16512841Sgabeblack@google.com 16612841Sgabeblack@google.comtemplate <> 16712841Sgabeblack@google.comclass sc_in<bool> : public sc_port<sc_signal_in_if<bool>, 1> 16812841Sgabeblack@google.com{ 16912841Sgabeblack@google.com public: 17012841Sgabeblack@google.com sc_in() : sc_port<sc_signal_in_if<bool>, 1>() {} 17112841Sgabeblack@google.com explicit sc_in(const char *name) : 17212841Sgabeblack@google.com sc_port<sc_signal_in_if<bool>, 1>(name) {} 17312841Sgabeblack@google.com virtual ~sc_in() {} 17412841Sgabeblack@google.com 17512868Sgabeblack@google.com // Deprecated binding constructors. 17612868Sgabeblack@google.com explicit sc_in(const sc_signal_in_if<bool> &interface) : 17712868Sgabeblack@google.com sc_port<sc_signal_in_if<bool>, 1>(interface) 17812868Sgabeblack@google.com {} 17912868Sgabeblack@google.com sc_in(const char *name, const sc_signal_in_if<bool> &interface) : 18012868Sgabeblack@google.com sc_port<sc_signal_in_if<bool>, 1>(name, interface) 18112868Sgabeblack@google.com {} 18212868Sgabeblack@google.com explicit sc_in(sc_port_b<sc_signal_in_if<bool> > &parent) : 18312868Sgabeblack@google.com sc_port<sc_signal_in_if<bool>, 1>(parent) 18412868Sgabeblack@google.com {} 18512868Sgabeblack@google.com sc_in(const char *name, sc_port_b<sc_signal_in_if<bool> > &parent) : 18612868Sgabeblack@google.com sc_port<sc_signal_in_if<bool>, 1>(name, parent) 18712868Sgabeblack@google.com {} 18812868Sgabeblack@google.com explicit sc_in(sc_port<sc_signal_in_if<bool>, 1> &parent) : 18912868Sgabeblack@google.com sc_port<sc_signal_in_if<bool>, 1>(parent) 19012868Sgabeblack@google.com {} 19112868Sgabeblack@google.com sc_in(const char *name, sc_port<sc_signal_in_if<bool>, 1> &parent) : 19212868Sgabeblack@google.com sc_port<sc_signal_in_if<bool>, 1>(name, parent) 19312868Sgabeblack@google.com {} 19412868Sgabeblack@google.com 19512841Sgabeblack@google.com virtual void 19612841Sgabeblack@google.com bind(const sc_signal_in_if<bool> &) 19712841Sgabeblack@google.com { 19812841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 19912841Sgabeblack@google.com } 20012841Sgabeblack@google.com void 20112841Sgabeblack@google.com operator () (const sc_signal_in_if<bool> &) 20212841Sgabeblack@google.com { 20312841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 20412841Sgabeblack@google.com } 20512841Sgabeblack@google.com 20612841Sgabeblack@google.com virtual void 20712841Sgabeblack@google.com bind(sc_port<sc_signal_in_if<bool>, 1> &) 20812841Sgabeblack@google.com { 20912841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 21012841Sgabeblack@google.com } 21112841Sgabeblack@google.com void 21212841Sgabeblack@google.com operator () (sc_port<sc_signal_in_if<bool>, 1> &) 21312841Sgabeblack@google.com { 21412841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 21512841Sgabeblack@google.com } 21612841Sgabeblack@google.com 21712841Sgabeblack@google.com virtual void 21812841Sgabeblack@google.com bind(sc_port<sc_signal_inout_if<bool>, 1> &) 21912841Sgabeblack@google.com { 22012841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 22112841Sgabeblack@google.com } 22212841Sgabeblack@google.com void 22312841Sgabeblack@google.com operator () (sc_port<sc_signal_inout_if<bool>, 1> &) 22412841Sgabeblack@google.com { 22512841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 22612841Sgabeblack@google.com } 22712841Sgabeblack@google.com 22812841Sgabeblack@google.com virtual void 22912841Sgabeblack@google.com end_of_elaboration() 23012841Sgabeblack@google.com { 23112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 23212841Sgabeblack@google.com } 23312841Sgabeblack@google.com 23412841Sgabeblack@google.com const bool & 23512841Sgabeblack@google.com read() const 23612841Sgabeblack@google.com { 23712841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 23812841Sgabeblack@google.com return *(const bool *)nullptr; 23912841Sgabeblack@google.com } 24012841Sgabeblack@google.com operator const bool& () const 24112841Sgabeblack@google.com { 24212841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 24312841Sgabeblack@google.com return *(const bool *)nullptr; 24412841Sgabeblack@google.com } 24512841Sgabeblack@google.com 24612841Sgabeblack@google.com const sc_event & 24712841Sgabeblack@google.com default_event() const 24812841Sgabeblack@google.com { 24912841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 25012841Sgabeblack@google.com return *(const sc_event *)nullptr; 25112841Sgabeblack@google.com } 25212841Sgabeblack@google.com const sc_event & 25312841Sgabeblack@google.com value_changed_event() const 25412841Sgabeblack@google.com { 25512841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 25612841Sgabeblack@google.com return *(const sc_event *)nullptr; 25712841Sgabeblack@google.com } 25812841Sgabeblack@google.com const sc_event & 25912841Sgabeblack@google.com posedge_event() const 26012841Sgabeblack@google.com { 26112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 26212841Sgabeblack@google.com return *(const sc_event *)nullptr; 26312841Sgabeblack@google.com } 26412841Sgabeblack@google.com const sc_event & 26512841Sgabeblack@google.com negedge_event() const 26612841Sgabeblack@google.com { 26712841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 26812841Sgabeblack@google.com return *(const sc_event *)nullptr; 26912841Sgabeblack@google.com } 27012841Sgabeblack@google.com 27112841Sgabeblack@google.com bool 27212841Sgabeblack@google.com event() const 27312841Sgabeblack@google.com { 27412841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 27512841Sgabeblack@google.com return false; 27612841Sgabeblack@google.com } 27712841Sgabeblack@google.com bool 27812841Sgabeblack@google.com posedge() const 27912841Sgabeblack@google.com { 28012841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 28112841Sgabeblack@google.com return false; 28212841Sgabeblack@google.com } 28312841Sgabeblack@google.com bool 28412841Sgabeblack@google.com negedge() const 28512841Sgabeblack@google.com { 28612841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 28712841Sgabeblack@google.com return false; 28812841Sgabeblack@google.com } 28912841Sgabeblack@google.com 29012841Sgabeblack@google.com sc_event_finder & 29112841Sgabeblack@google.com value_changed() const 29212841Sgabeblack@google.com { 29312841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 29412841Sgabeblack@google.com return *(sc_event_finder *)nullptr; 29512841Sgabeblack@google.com } 29612841Sgabeblack@google.com sc_event_finder & 29712841Sgabeblack@google.com pos() const 29812841Sgabeblack@google.com { 29912841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 30012841Sgabeblack@google.com return *(sc_event_finder *)nullptr; 30112841Sgabeblack@google.com } 30212841Sgabeblack@google.com sc_event_finder & 30312841Sgabeblack@google.com neg() const 30412841Sgabeblack@google.com { 30512841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 30612841Sgabeblack@google.com return *(sc_event_finder *)nullptr; 30712841Sgabeblack@google.com } 30812841Sgabeblack@google.com 30912841Sgabeblack@google.com virtual const char *kind() const { return "sc_in"; } 31012841Sgabeblack@google.com 31112841Sgabeblack@google.com private: 31212841Sgabeblack@google.com // Disabled 31312841Sgabeblack@google.com sc_in(const sc_in<bool> &) : sc_port<sc_signal_in_if<bool>, 1>() {} 31412841Sgabeblack@google.com sc_in<bool> &operator = (const sc_in<bool> &) { return *this; } 31512841Sgabeblack@google.com}; 31612841Sgabeblack@google.com 31712841Sgabeblack@google.comtemplate <> 31812841Sgabeblack@google.cominline void 31912841Sgabeblack@google.comsc_trace<bool>(sc_trace_file *, const sc_in<bool> &, const std::string &) 32012841Sgabeblack@google.com{ 32112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 32212841Sgabeblack@google.com} 32312841Sgabeblack@google.com 32412841Sgabeblack@google.comtemplate <> 32512841Sgabeblack@google.comclass sc_in<sc_dt::sc_logic> : 32612841Sgabeblack@google.com public sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> 32712841Sgabeblack@google.com{ 32812841Sgabeblack@google.com public: 32912841Sgabeblack@google.com sc_in() : sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>() {} 33012841Sgabeblack@google.com explicit sc_in(const char *name) : 33112841Sgabeblack@google.com sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(name) 33212841Sgabeblack@google.com {} 33312841Sgabeblack@google.com virtual ~sc_in() {} 33412841Sgabeblack@google.com 33512868Sgabeblack@google.com // Deprecated binding constructors. 33612868Sgabeblack@google.com explicit sc_in(const sc_signal_in_if<sc_dt::sc_logic> &interface) : 33712868Sgabeblack@google.com sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(interface) 33812868Sgabeblack@google.com {} 33912868Sgabeblack@google.com sc_in(const char *name, 34012868Sgabeblack@google.com const sc_signal_in_if<sc_dt::sc_logic> &interface) : 34112868Sgabeblack@google.com sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(name, interface) 34212868Sgabeblack@google.com {} 34312868Sgabeblack@google.com explicit sc_in(sc_port_b<sc_signal_in_if<sc_dt::sc_logic> > &parent) : 34412868Sgabeblack@google.com sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(parent) 34512868Sgabeblack@google.com {} 34612868Sgabeblack@google.com sc_in(const char *name, 34712868Sgabeblack@google.com sc_port_b<sc_signal_in_if<sc_dt::sc_logic> > &parent) : 34812868Sgabeblack@google.com sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(name, parent) 34912868Sgabeblack@google.com {} 35012868Sgabeblack@google.com explicit sc_in(sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> &parent) : 35112868Sgabeblack@google.com sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(parent) 35212868Sgabeblack@google.com {} 35312868Sgabeblack@google.com sc_in(const char *name, 35412868Sgabeblack@google.com sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> &parent) : 35512868Sgabeblack@google.com sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(name, parent) 35612868Sgabeblack@google.com {} 35712868Sgabeblack@google.com 35812841Sgabeblack@google.com virtual void 35912841Sgabeblack@google.com bind(const sc_signal_in_if<sc_dt::sc_logic> &) 36012841Sgabeblack@google.com { 36112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 36212841Sgabeblack@google.com } 36312841Sgabeblack@google.com void 36412841Sgabeblack@google.com operator () (const sc_signal_in_if<sc_dt::sc_logic> &) 36512841Sgabeblack@google.com { 36612841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 36712841Sgabeblack@google.com } 36812841Sgabeblack@google.com 36912841Sgabeblack@google.com virtual void 37012841Sgabeblack@google.com bind(sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> &) 37112841Sgabeblack@google.com { 37212841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 37312841Sgabeblack@google.com } 37412841Sgabeblack@google.com void 37512841Sgabeblack@google.com operator () (sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> &) 37612841Sgabeblack@google.com { 37712841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 37812841Sgabeblack@google.com } 37912841Sgabeblack@google.com 38012841Sgabeblack@google.com virtual void 38112841Sgabeblack@google.com bind(sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1> &) 38212841Sgabeblack@google.com { 38312841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 38412841Sgabeblack@google.com } 38512841Sgabeblack@google.com void 38612841Sgabeblack@google.com operator () (sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1> &) 38712841Sgabeblack@google.com { 38812841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 38912841Sgabeblack@google.com } 39012841Sgabeblack@google.com 39112841Sgabeblack@google.com virtual void 39212841Sgabeblack@google.com end_of_elaboration() 39312841Sgabeblack@google.com { 39412841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 39512841Sgabeblack@google.com } 39612841Sgabeblack@google.com 39712841Sgabeblack@google.com const sc_dt::sc_logic & 39812841Sgabeblack@google.com read() const 39912841Sgabeblack@google.com { 40012841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 40112841Sgabeblack@google.com return *(const sc_dt::sc_logic *)nullptr; 40212841Sgabeblack@google.com } 40312841Sgabeblack@google.com operator const sc_dt::sc_logic& () const 40412841Sgabeblack@google.com { 40512841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 40612841Sgabeblack@google.com return *(const sc_dt::sc_logic *)nullptr; 40712841Sgabeblack@google.com } 40812841Sgabeblack@google.com 40912841Sgabeblack@google.com const sc_event & 41012841Sgabeblack@google.com default_event() const 41112841Sgabeblack@google.com { 41212841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 41312841Sgabeblack@google.com return *(const sc_event *)nullptr; 41412841Sgabeblack@google.com } 41512841Sgabeblack@google.com const sc_event & 41612841Sgabeblack@google.com value_changed_event() const 41712841Sgabeblack@google.com { 41812841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 41912841Sgabeblack@google.com return *(const sc_event *)nullptr; 42012841Sgabeblack@google.com } 42112841Sgabeblack@google.com const sc_event & 42212841Sgabeblack@google.com posedge_event() const 42312841Sgabeblack@google.com { 42412841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 42512841Sgabeblack@google.com return *(const sc_event *)nullptr; 42612841Sgabeblack@google.com } 42712841Sgabeblack@google.com const sc_event & 42812841Sgabeblack@google.com negedge_event() const 42912841Sgabeblack@google.com { 43012841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 43112841Sgabeblack@google.com return *(const sc_event *)nullptr; 43212841Sgabeblack@google.com } 43312841Sgabeblack@google.com 43412841Sgabeblack@google.com bool 43512841Sgabeblack@google.com event() const 43612841Sgabeblack@google.com { 43712841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 43812841Sgabeblack@google.com return false; 43912841Sgabeblack@google.com } 44012841Sgabeblack@google.com bool 44112841Sgabeblack@google.com posedge() const 44212841Sgabeblack@google.com { 44312841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 44412841Sgabeblack@google.com return false; 44512841Sgabeblack@google.com } 44612841Sgabeblack@google.com bool 44712841Sgabeblack@google.com negedge() const 44812841Sgabeblack@google.com { 44912841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 45012841Sgabeblack@google.com return false; 45112841Sgabeblack@google.com } 45212841Sgabeblack@google.com 45312841Sgabeblack@google.com sc_event_finder & 45412841Sgabeblack@google.com value_changed() const 45512841Sgabeblack@google.com { 45612841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 45712841Sgabeblack@google.com return *(sc_event_finder *)nullptr; 45812841Sgabeblack@google.com } 45912841Sgabeblack@google.com sc_event_finder & 46012841Sgabeblack@google.com pos() const 46112841Sgabeblack@google.com { 46212841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 46312841Sgabeblack@google.com return *(sc_event_finder *)nullptr; 46412841Sgabeblack@google.com } 46512841Sgabeblack@google.com sc_event_finder & 46612841Sgabeblack@google.com neg() const 46712841Sgabeblack@google.com { 46812841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 46912841Sgabeblack@google.com return *(sc_event_finder *)nullptr; 47012841Sgabeblack@google.com } 47112841Sgabeblack@google.com 47212841Sgabeblack@google.com virtual const char *kind() const { return "sc_in"; } 47312841Sgabeblack@google.com 47412841Sgabeblack@google.com private: 47512841Sgabeblack@google.com // Disabled 47612841Sgabeblack@google.com sc_in(const sc_in<sc_dt::sc_logic> &) : 47712841Sgabeblack@google.com sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>() 47812841Sgabeblack@google.com {} 47912841Sgabeblack@google.com sc_in<sc_dt::sc_logic> & 48012841Sgabeblack@google.com operator = (const sc_in<sc_dt::sc_logic> &) 48112841Sgabeblack@google.com { 48212841Sgabeblack@google.com return *this; 48312841Sgabeblack@google.com } 48412841Sgabeblack@google.com}; 48512841Sgabeblack@google.com 48612841Sgabeblack@google.comtemplate <> 48712841Sgabeblack@google.cominline void 48812841Sgabeblack@google.comsc_trace<sc_dt::sc_logic>( 48912841Sgabeblack@google.com sc_trace_file *, const sc_in<sc_dt::sc_logic> &, const std::string &) 49012841Sgabeblack@google.com{ 49112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 49212841Sgabeblack@google.com} 49312841Sgabeblack@google.com 49412841Sgabeblack@google.com} // namespace sc_core 49512841Sgabeblack@google.com 49612841Sgabeblack@google.com#endif //__SYSTEMC_EXT_CHANNEL_SC_IN_HH__ 497