sc_inout.hh revision 12841
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_INOUT_HH__ 3112841Sgabeblack@google.com#define __SYSTEMC_EXT_CHANNEL_SC_INOUT_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_inout_if.hh" 3712841Sgabeblack@google.com#include "warn_unimpl.hh" 3812841Sgabeblack@google.com 3912841Sgabeblack@google.comnamespace sc_dt 4012841Sgabeblack@google.com{ 4112841Sgabeblack@google.com 4212841Sgabeblack@google.comclass sc_logic; 4312841Sgabeblack@google.com 4412841Sgabeblack@google.com} // namespace sc_dt 4512841Sgabeblack@google.com 4612841Sgabeblack@google.comnamespace sc_core 4712841Sgabeblack@google.com{ 4812841Sgabeblack@google.com 4912841Sgabeblack@google.comclass sc_event; 5012841Sgabeblack@google.comclass sc_event_finder; 5112841Sgabeblack@google.comclass sc_trace_file; 5212841Sgabeblack@google.com 5312841Sgabeblack@google.comtemplate <class T> 5412841Sgabeblack@google.comclass sc_inout : public sc_port<sc_signal_inout_if<T>, 1> 5512841Sgabeblack@google.com{ 5612841Sgabeblack@google.com public: 5712841Sgabeblack@google.com sc_inout() : sc_port<sc_signal_inout_if<T>, 1>() {} 5812841Sgabeblack@google.com explicit sc_inout(const char *name) : 5912841Sgabeblack@google.com sc_port<sc_signal_inout_if<T>, 1>(name) 6012841Sgabeblack@google.com {} 6112841Sgabeblack@google.com virtual ~sc_inout() {} 6212841Sgabeblack@google.com 6312841Sgabeblack@google.com void 6412841Sgabeblack@google.com initialize(const T &) 6512841Sgabeblack@google.com { 6612841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 6712841Sgabeblack@google.com } 6812841Sgabeblack@google.com void 6912841Sgabeblack@google.com initialize(const sc_signal_in_if<T> &) 7012841Sgabeblack@google.com { 7112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 7212841Sgabeblack@google.com } 7312841Sgabeblack@google.com 7412841Sgabeblack@google.com virtual void end_of_elaboration() {} 7512841Sgabeblack@google.com 7612841Sgabeblack@google.com const T & 7712841Sgabeblack@google.com read() const 7812841Sgabeblack@google.com { 7912841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 8012841Sgabeblack@google.com return *(const T *)nullptr; 8112841Sgabeblack@google.com } 8212841Sgabeblack@google.com operator const T& () const 8312841Sgabeblack@google.com { 8412841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 8512841Sgabeblack@google.com return *(const T *)nullptr; 8612841Sgabeblack@google.com } 8712841Sgabeblack@google.com 8812841Sgabeblack@google.com void 8912841Sgabeblack@google.com write(const T &) 9012841Sgabeblack@google.com { 9112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 9212841Sgabeblack@google.com } 9312841Sgabeblack@google.com sc_inout<T> & 9412841Sgabeblack@google.com operator = (const T &) 9512841Sgabeblack@google.com { 9612841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 9712841Sgabeblack@google.com return *(sc_inout<T> *)nullptr; 9812841Sgabeblack@google.com } 9912841Sgabeblack@google.com sc_inout<T> & 10012841Sgabeblack@google.com operator = (const sc_signal_in_if<T> &) 10112841Sgabeblack@google.com { 10212841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 10312841Sgabeblack@google.com return *(sc_inout<T> *)nullptr; 10412841Sgabeblack@google.com } 10512841Sgabeblack@google.com sc_inout<T> & 10612841Sgabeblack@google.com operator = (const sc_port<sc_signal_in_if<T>, 1> &) 10712841Sgabeblack@google.com { 10812841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 10912841Sgabeblack@google.com return *(sc_inout<T> *)nullptr; 11012841Sgabeblack@google.com } 11112841Sgabeblack@google.com sc_inout<T> & 11212841Sgabeblack@google.com operator = (const sc_port<sc_signal_inout_if<T>, 1> &) 11312841Sgabeblack@google.com { 11412841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 11512841Sgabeblack@google.com return *(sc_inout<T> *)nullptr; 11612841Sgabeblack@google.com } 11712841Sgabeblack@google.com sc_inout<T> & 11812841Sgabeblack@google.com operator = (const sc_inout<T> &) 11912841Sgabeblack@google.com { 12012841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 12112841Sgabeblack@google.com return *(sc_inout<T> *)nullptr; 12212841Sgabeblack@google.com } 12312841Sgabeblack@google.com 12412841Sgabeblack@google.com const sc_event & 12512841Sgabeblack@google.com default_event() const 12612841Sgabeblack@google.com { 12712841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 12812841Sgabeblack@google.com return *(sc_event *)nullptr; 12912841Sgabeblack@google.com } 13012841Sgabeblack@google.com const sc_event & 13112841Sgabeblack@google.com value_changed_event() const 13212841Sgabeblack@google.com { 13312841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 13412841Sgabeblack@google.com return *(sc_event *)nullptr; 13512841Sgabeblack@google.com } 13612841Sgabeblack@google.com bool 13712841Sgabeblack@google.com event() const 13812841Sgabeblack@google.com { 13912841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 14012841Sgabeblack@google.com return false; 14112841Sgabeblack@google.com } 14212841Sgabeblack@google.com sc_event_finder & 14312841Sgabeblack@google.com value_changed() const 14412841Sgabeblack@google.com { 14512841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 14612841Sgabeblack@google.com return *(sc_event_finder *)nullptr; 14712841Sgabeblack@google.com } 14812841Sgabeblack@google.com 14912841Sgabeblack@google.com virtual const char *kind() const { return "sc_inout"; } 15012841Sgabeblack@google.com 15112841Sgabeblack@google.com private: 15212841Sgabeblack@google.com // Disabled 15312841Sgabeblack@google.com sc_inout(const sc_inout<T> &) : sc_port<sc_signal_inout_if<T>, 1>() {} 15412841Sgabeblack@google.com}; 15512841Sgabeblack@google.com 15612841Sgabeblack@google.comtemplate <class T> 15712841Sgabeblack@google.cominline void 15812841Sgabeblack@google.comsc_trace(sc_trace_file *, const sc_inout<T> &, const std::string &) 15912841Sgabeblack@google.com{ 16012841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 16112841Sgabeblack@google.com} 16212841Sgabeblack@google.com 16312841Sgabeblack@google.comtemplate <> 16412841Sgabeblack@google.comclass sc_inout<bool> : public sc_port<sc_signal_inout_if<bool>, 1> 16512841Sgabeblack@google.com{ 16612841Sgabeblack@google.com public: 16712841Sgabeblack@google.com sc_inout() : sc_port<sc_signal_inout_if<bool>, 1>() {} 16812841Sgabeblack@google.com explicit sc_inout(const char *name) : 16912841Sgabeblack@google.com sc_port<sc_signal_inout_if<bool>, 1>(name) 17012841Sgabeblack@google.com {} 17112841Sgabeblack@google.com virtual ~sc_inout() {} 17212841Sgabeblack@google.com 17312841Sgabeblack@google.com void 17412841Sgabeblack@google.com initialize(const bool &) 17512841Sgabeblack@google.com { 17612841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 17712841Sgabeblack@google.com } 17812841Sgabeblack@google.com void 17912841Sgabeblack@google.com initialize(const sc_signal_in_if<bool> &) 18012841Sgabeblack@google.com { 18112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 18212841Sgabeblack@google.com } 18312841Sgabeblack@google.com 18412841Sgabeblack@google.com virtual void end_of_elaboration() {} 18512841Sgabeblack@google.com 18612841Sgabeblack@google.com const bool & 18712841Sgabeblack@google.com read() const 18812841Sgabeblack@google.com { 18912841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 19012841Sgabeblack@google.com return *(bool *)nullptr; 19112841Sgabeblack@google.com } 19212841Sgabeblack@google.com operator const bool& () const 19312841Sgabeblack@google.com { 19412841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 19512841Sgabeblack@google.com return *(bool *)nullptr; 19612841Sgabeblack@google.com } 19712841Sgabeblack@google.com 19812841Sgabeblack@google.com void 19912841Sgabeblack@google.com write(const bool &) 20012841Sgabeblack@google.com { 20112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 20212841Sgabeblack@google.com } 20312841Sgabeblack@google.com sc_inout<bool> & 20412841Sgabeblack@google.com operator = (const bool &) 20512841Sgabeblack@google.com { 20612841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 20712841Sgabeblack@google.com return *(sc_inout<bool> *)nullptr; 20812841Sgabeblack@google.com } 20912841Sgabeblack@google.com sc_inout<bool> & 21012841Sgabeblack@google.com operator = (const sc_signal_in_if<bool> &) 21112841Sgabeblack@google.com { 21212841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 21312841Sgabeblack@google.com return *(sc_inout<bool> *)nullptr; 21412841Sgabeblack@google.com } 21512841Sgabeblack@google.com sc_inout<bool> & 21612841Sgabeblack@google.com operator = (const sc_port<sc_signal_in_if<bool>, 1> &) 21712841Sgabeblack@google.com { 21812841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 21912841Sgabeblack@google.com return *(sc_inout<bool> *)nullptr; 22012841Sgabeblack@google.com } 22112841Sgabeblack@google.com sc_inout<bool> & 22212841Sgabeblack@google.com operator = (const sc_port<sc_signal_inout_if<bool>, 1> &) 22312841Sgabeblack@google.com { 22412841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 22512841Sgabeblack@google.com return *(sc_inout<bool> *)nullptr; 22612841Sgabeblack@google.com } 22712841Sgabeblack@google.com sc_inout<bool> & 22812841Sgabeblack@google.com operator = (const sc_inout<bool> &) 22912841Sgabeblack@google.com { 23012841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 23112841Sgabeblack@google.com return *(sc_inout<bool> *)nullptr; 23212841Sgabeblack@google.com } 23312841Sgabeblack@google.com 23412841Sgabeblack@google.com const sc_event & 23512841Sgabeblack@google.com default_event() const 23612841Sgabeblack@google.com { 23712841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 23812841Sgabeblack@google.com return *(sc_event *)nullptr; 23912841Sgabeblack@google.com } 24012841Sgabeblack@google.com const sc_event & 24112841Sgabeblack@google.com value_changed_event() const 24212841Sgabeblack@google.com { 24312841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 24412841Sgabeblack@google.com return *(sc_event *)nullptr; 24512841Sgabeblack@google.com } 24612841Sgabeblack@google.com const sc_event & 24712841Sgabeblack@google.com posedge_event() const 24812841Sgabeblack@google.com { 24912841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 25012841Sgabeblack@google.com return *(sc_event *)nullptr; 25112841Sgabeblack@google.com } 25212841Sgabeblack@google.com const sc_event & 25312841Sgabeblack@google.com negedge_event() const 25412841Sgabeblack@google.com { 25512841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 25612841Sgabeblack@google.com return *(sc_event *)nullptr; 25712841Sgabeblack@google.com } 25812841Sgabeblack@google.com 25912841Sgabeblack@google.com bool 26012841Sgabeblack@google.com event() const 26112841Sgabeblack@google.com { 26212841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 26312841Sgabeblack@google.com return false; 26412841Sgabeblack@google.com } 26512841Sgabeblack@google.com bool 26612841Sgabeblack@google.com posedge() const 26712841Sgabeblack@google.com { 26812841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 26912841Sgabeblack@google.com return false; 27012841Sgabeblack@google.com } 27112841Sgabeblack@google.com bool 27212841Sgabeblack@google.com negedge() const 27312841Sgabeblack@google.com { 27412841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 27512841Sgabeblack@google.com return false; 27612841Sgabeblack@google.com } 27712841Sgabeblack@google.com 27812841Sgabeblack@google.com sc_event_finder & 27912841Sgabeblack@google.com value_changed() const 28012841Sgabeblack@google.com { 28112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 28212841Sgabeblack@google.com return *(sc_event_finder *)nullptr; 28312841Sgabeblack@google.com } 28412841Sgabeblack@google.com sc_event_finder & 28512841Sgabeblack@google.com pos() const 28612841Sgabeblack@google.com { 28712841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 28812841Sgabeblack@google.com return *(sc_event_finder *)nullptr; 28912841Sgabeblack@google.com } 29012841Sgabeblack@google.com sc_event_finder & 29112841Sgabeblack@google.com neg() 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 29712841Sgabeblack@google.com virtual const char *kind() const { return "sc_inout"; } 29812841Sgabeblack@google.com 29912841Sgabeblack@google.com private: 30012841Sgabeblack@google.com // Disabled 30112841Sgabeblack@google.com sc_inout(const sc_inout<bool> &) : 30212841Sgabeblack@google.com sc_port<sc_signal_inout_if<bool>, 1>() {} 30312841Sgabeblack@google.com}; 30412841Sgabeblack@google.com 30512841Sgabeblack@google.comtemplate <> 30612841Sgabeblack@google.cominline void sc_trace<bool>( 30712841Sgabeblack@google.com sc_trace_file *, const sc_inout<bool> &, const std::string &) 30812841Sgabeblack@google.com{ 30912841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 31012841Sgabeblack@google.com} 31112841Sgabeblack@google.com 31212841Sgabeblack@google.comtemplate <> 31312841Sgabeblack@google.comclass sc_inout<sc_dt::sc_logic> : 31412841Sgabeblack@google.com public sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1> 31512841Sgabeblack@google.com{ 31612841Sgabeblack@google.com public: 31712841Sgabeblack@google.com sc_inout() : sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1>() {} 31812841Sgabeblack@google.com explicit sc_inout(const char *name) : 31912841Sgabeblack@google.com sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1>(name) 32012841Sgabeblack@google.com {} 32112841Sgabeblack@google.com virtual ~sc_inout() {} 32212841Sgabeblack@google.com 32312841Sgabeblack@google.com void 32412841Sgabeblack@google.com initialize(const sc_dt::sc_logic &) 32512841Sgabeblack@google.com { 32612841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 32712841Sgabeblack@google.com } 32812841Sgabeblack@google.com void 32912841Sgabeblack@google.com initialize(const sc_signal_in_if<sc_dt::sc_logic> &) 33012841Sgabeblack@google.com { 33112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 33212841Sgabeblack@google.com } 33312841Sgabeblack@google.com 33412841Sgabeblack@google.com virtual void end_of_elaboration() {} 33512841Sgabeblack@google.com 33612841Sgabeblack@google.com const sc_dt::sc_logic & 33712841Sgabeblack@google.com read() const 33812841Sgabeblack@google.com { 33912841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 34012841Sgabeblack@google.com return *(const sc_dt::sc_logic *)nullptr; 34112841Sgabeblack@google.com } 34212841Sgabeblack@google.com operator const sc_dt::sc_logic& () const 34312841Sgabeblack@google.com { 34412841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 34512841Sgabeblack@google.com return *(const sc_dt::sc_logic *)nullptr; 34612841Sgabeblack@google.com } 34712841Sgabeblack@google.com 34812841Sgabeblack@google.com void 34912841Sgabeblack@google.com write(const sc_dt::sc_logic &) 35012841Sgabeblack@google.com { 35112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 35212841Sgabeblack@google.com } 35312841Sgabeblack@google.com sc_inout<sc_dt::sc_logic> & 35412841Sgabeblack@google.com operator = (const sc_dt::sc_logic &) 35512841Sgabeblack@google.com { 35612841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 35712841Sgabeblack@google.com return *(sc_inout<sc_dt::sc_logic> *)nullptr; 35812841Sgabeblack@google.com } 35912841Sgabeblack@google.com sc_inout<sc_dt::sc_logic> & 36012841Sgabeblack@google.com operator = (const sc_signal_in_if<sc_dt::sc_logic> &) 36112841Sgabeblack@google.com { 36212841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 36312841Sgabeblack@google.com return *(sc_inout<sc_dt::sc_logic> *)nullptr; 36412841Sgabeblack@google.com } 36512841Sgabeblack@google.com sc_inout<sc_dt::sc_logic> & 36612841Sgabeblack@google.com operator = (const sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> &) 36712841Sgabeblack@google.com { 36812841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 36912841Sgabeblack@google.com return *(sc_inout<sc_dt::sc_logic> *)nullptr; 37012841Sgabeblack@google.com } 37112841Sgabeblack@google.com sc_inout<sc_dt::sc_logic> & 37212841Sgabeblack@google.com operator = (const sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1> &) 37312841Sgabeblack@google.com { 37412841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 37512841Sgabeblack@google.com return *(sc_inout<sc_dt::sc_logic> *)nullptr; 37612841Sgabeblack@google.com } 37712841Sgabeblack@google.com sc_inout<sc_dt::sc_logic> & 37812841Sgabeblack@google.com operator = (const sc_inout<sc_dt::sc_logic> &) 37912841Sgabeblack@google.com { 38012841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 38112841Sgabeblack@google.com return *(sc_inout<sc_dt::sc_logic> *)nullptr; 38212841Sgabeblack@google.com } 38312841Sgabeblack@google.com 38412841Sgabeblack@google.com const sc_event & 38512841Sgabeblack@google.com default_event() const 38612841Sgabeblack@google.com { 38712841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 38812841Sgabeblack@google.com return *(sc_event *)nullptr; 38912841Sgabeblack@google.com } 39012841Sgabeblack@google.com const sc_event & 39112841Sgabeblack@google.com value_changed_event() const 39212841Sgabeblack@google.com { 39312841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 39412841Sgabeblack@google.com return *(sc_event *)nullptr; 39512841Sgabeblack@google.com } 39612841Sgabeblack@google.com const sc_event & 39712841Sgabeblack@google.com posedge_event() const 39812841Sgabeblack@google.com { 39912841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 40012841Sgabeblack@google.com return *(sc_event *)nullptr; 40112841Sgabeblack@google.com } 40212841Sgabeblack@google.com const sc_event & 40312841Sgabeblack@google.com negedge_event() const 40412841Sgabeblack@google.com { 40512841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 40612841Sgabeblack@google.com return *(sc_event *)nullptr; 40712841Sgabeblack@google.com } 40812841Sgabeblack@google.com 40912841Sgabeblack@google.com bool 41012841Sgabeblack@google.com event() const 41112841Sgabeblack@google.com { 41212841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 41312841Sgabeblack@google.com return false; 41412841Sgabeblack@google.com } 41512841Sgabeblack@google.com bool 41612841Sgabeblack@google.com posedge() const 41712841Sgabeblack@google.com { 41812841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 41912841Sgabeblack@google.com return false; 42012841Sgabeblack@google.com } 42112841Sgabeblack@google.com bool 42212841Sgabeblack@google.com negedge() const 42312841Sgabeblack@google.com { 42412841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 42512841Sgabeblack@google.com return false; 42612841Sgabeblack@google.com } 42712841Sgabeblack@google.com 42812841Sgabeblack@google.com sc_event_finder & 42912841Sgabeblack@google.com value_changed() const 43012841Sgabeblack@google.com { 43112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 43212841Sgabeblack@google.com return *(sc_event_finder *)nullptr; 43312841Sgabeblack@google.com } 43412841Sgabeblack@google.com sc_event_finder & 43512841Sgabeblack@google.com pos() const 43612841Sgabeblack@google.com { 43712841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 43812841Sgabeblack@google.com return *(sc_event_finder *)nullptr; 43912841Sgabeblack@google.com } 44012841Sgabeblack@google.com sc_event_finder & 44112841Sgabeblack@google.com neg() const 44212841Sgabeblack@google.com { 44312841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 44412841Sgabeblack@google.com return *(sc_event_finder *)nullptr; 44512841Sgabeblack@google.com } 44612841Sgabeblack@google.com 44712841Sgabeblack@google.com virtual const char *kind() const { return "sc_inout"; } 44812841Sgabeblack@google.com 44912841Sgabeblack@google.com private: 45012841Sgabeblack@google.com // Disabled 45112841Sgabeblack@google.com sc_inout(const sc_inout<sc_dt::sc_logic> &) : 45212841Sgabeblack@google.com sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1>() 45312841Sgabeblack@google.com {} 45412841Sgabeblack@google.com}; 45512841Sgabeblack@google.com 45612841Sgabeblack@google.comtemplate <> 45712841Sgabeblack@google.cominline void 45812841Sgabeblack@google.comsc_trace<sc_dt::sc_logic>(sc_trace_file *, const sc_inout<sc_dt::sc_logic> &, 45912841Sgabeblack@google.com const std::string &) 46012841Sgabeblack@google.com{ 46112841Sgabeblack@google.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 46212841Sgabeblack@google.com} 46312841Sgabeblack@google.com 46412841Sgabeblack@google.com} // namespace sc_core 46512841Sgabeblack@google.com 46612841Sgabeblack@google.com#endif //__SYSTEMC_EXT_CHANNEL_SC_INOUT_HH__ 467