sc_in.hh revision 12841:22aa7ba47bf9
15086Sgblack@eecs.umich.edu/* 25086Sgblack@eecs.umich.edu * Copyright 2018 Google, Inc. 38466Snilay@cs.wisc.edu * 45086Sgblack@eecs.umich.edu * Redistribution and use in source and binary forms, with or without 55086Sgblack@eecs.umich.edu * modification, are permitted provided that the following conditions are 67087Snate@binkert.org * met: redistributions of source code must retain the above copyright 77087Snate@binkert.org * notice, this list of conditions and the following disclaimer; 87087Snate@binkert.org * redistributions in binary form must reproduce the above copyright 97087Snate@binkert.org * notice, this list of conditions and the following disclaimer in the 107087Snate@binkert.org * documentation and/or other materials provided with the distribution; 117087Snate@binkert.org * neither the name of the copyright holders nor the names of its 127087Snate@binkert.org * contributors may be used to endorse or promote products derived from 137087Snate@binkert.org * this software without specific prior written permission. 145086Sgblack@eecs.umich.edu * 157087Snate@binkert.org * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 167087Snate@binkert.org * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 177087Snate@binkert.org * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 187087Snate@binkert.org * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 197087Snate@binkert.org * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 207087Snate@binkert.org * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 217087Snate@binkert.org * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 227087Snate@binkert.org * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 235086Sgblack@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 247087Snate@binkert.org * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 255086Sgblack@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 265086Sgblack@eecs.umich.edu * 275086Sgblack@eecs.umich.edu * Authors: Gabe Black 285086Sgblack@eecs.umich.edu */ 295086Sgblack@eecs.umich.edu 305086Sgblack@eecs.umich.edu#ifndef __SYSTEMC_EXT_CHANNEL_SC_IN_HH__ 315086Sgblack@eecs.umich.edu#define __SYSTEMC_EXT_CHANNEL_SC_IN_HH__ 325086Sgblack@eecs.umich.edu 335086Sgblack@eecs.umich.edu#include <string> 345086Sgblack@eecs.umich.edu 355086Sgblack@eecs.umich.edu#include "../core/sc_port.hh" 365086Sgblack@eecs.umich.edu#include "sc_signal_in_if.hh" 375086Sgblack@eecs.umich.edu#include "sc_signal_inout_if.hh" 385086Sgblack@eecs.umich.edu#include "warn_unimpl.hh" 395086Sgblack@eecs.umich.edu 405086Sgblack@eecs.umich.edunamespace sc_core 415647Sgblack@eecs.umich.edu{ 428466Snilay@cs.wisc.edu 438466Snilay@cs.wisc.educlass sc_event; 445086Sgblack@eecs.umich.educlass sc_event_finder; 455135Sgblack@eecs.umich.educlass sc_trace_file; 465647Sgblack@eecs.umich.edu 479889Sandreas@sandberg.pp.setemplate <class T> 485234Sgblack@eecs.umich.educlass sc_in : public sc_port<sc_signal_in_if<T>, 1> 495086Sgblack@eecs.umich.edu{ 505086Sgblack@eecs.umich.edu public: 515086Sgblack@eecs.umich.edu sc_in() : sc_port<sc_signal_in_if<T>, 1>() {} 527707Sgblack@eecs.umich.edu explicit sc_in(const char *name) : sc_port<sc_signal_in_if<T>, 1>(name) {} 537707Sgblack@eecs.umich.edu virtual ~sc_in() {} 547707Sgblack@eecs.umich.edu 559887Sandreas@sandberg.pp.se virtual void 569887Sandreas@sandberg.pp.se bind(const sc_signal_in_if<T> &) 579887Sandreas@sandberg.pp.se { 589887Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 599887Sandreas@sandberg.pp.se } 609887Sandreas@sandberg.pp.se void 619887Sandreas@sandberg.pp.se operator () (const sc_signal_in_if<T> &) 629887Sandreas@sandberg.pp.se { 639887Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 649887Sandreas@sandberg.pp.se } 659887Sandreas@sandberg.pp.se 669887Sandreas@sandberg.pp.se virtual void 679887Sandreas@sandberg.pp.se bind(sc_port<sc_signal_in_if<T>, 1> &) 689887Sandreas@sandberg.pp.se { 699887Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 709887Sandreas@sandberg.pp.se } 719887Sandreas@sandberg.pp.se void 729887Sandreas@sandberg.pp.se operator () (sc_port<sc_signal_in_if<T>, 1> &) 739887Sandreas@sandberg.pp.se { 745086Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 755135Sgblack@eecs.umich.edu } 765135Sgblack@eecs.umich.edu 775135Sgblack@eecs.umich.edu virtual void 786048Sgblack@eecs.umich.edu bind(sc_port<sc_signal_inout_if<T>, 1> &) 796048Sgblack@eecs.umich.edu { 806048Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 816048Sgblack@eecs.umich.edu } 826048Sgblack@eecs.umich.edu void 836048Sgblack@eecs.umich.edu operator () (sc_port<sc_signal_inout_if<T>, 1> &) 847720Sgblack@eecs.umich.edu { 857720Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 867720Sgblack@eecs.umich.edu } 877720Sgblack@eecs.umich.edu 885135Sgblack@eecs.umich.edu virtual void 895135Sgblack@eecs.umich.edu end_of_elaboration() 905135Sgblack@eecs.umich.edu { 915135Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 925135Sgblack@eecs.umich.edu } 935135Sgblack@eecs.umich.edu 945135Sgblack@eecs.umich.edu const T & 955135Sgblack@eecs.umich.edu read() const 965135Sgblack@eecs.umich.edu { 975135Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 985135Sgblack@eecs.umich.edu return *(const T *)nullptr; 995135Sgblack@eecs.umich.edu } 1005135Sgblack@eecs.umich.edu operator const T& () const 1015135Sgblack@eecs.umich.edu { 1025135Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1035135Sgblack@eecs.umich.edu return *(const T *)nullptr; 1045135Sgblack@eecs.umich.edu } 1055264Sgblack@eecs.umich.edu 1065135Sgblack@eecs.umich.edu const sc_event & 1075135Sgblack@eecs.umich.edu default_event() const 1085135Sgblack@eecs.umich.edu { 1095135Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1105141Sgblack@eecs.umich.edu return *(const sc_event *)nullptr; 1115141Sgblack@eecs.umich.edu } 1125141Sgblack@eecs.umich.edu const sc_event & 1135141Sgblack@eecs.umich.edu value_changed_event() const 1145141Sgblack@eecs.umich.edu { 1155141Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1165141Sgblack@eecs.umich.edu return *(const sc_event *)nullptr; 1175141Sgblack@eecs.umich.edu } 1185141Sgblack@eecs.umich.edu bool 1195182Sgblack@eecs.umich.edu event() const 1205141Sgblack@eecs.umich.edu { 1215141Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1225141Sgblack@eecs.umich.edu return false; 1235141Sgblack@eecs.umich.edu } 1245141Sgblack@eecs.umich.edu sc_event_finder & 1255141Sgblack@eecs.umich.edu value_changed() const 1265135Sgblack@eecs.umich.edu { 1275141Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1285141Sgblack@eecs.umich.edu return *(sc_event_finder *)nullptr; 1295141Sgblack@eecs.umich.edu } 1305141Sgblack@eecs.umich.edu 1315141Sgblack@eecs.umich.edu virtual const char *kind() const { return "sc_in"; } 1325141Sgblack@eecs.umich.edu 1335141Sgblack@eecs.umich.edu private: 1345141Sgblack@eecs.umich.edu // Disabled 1355141Sgblack@eecs.umich.edu sc_in(const sc_in<T> &) : sc_port<sc_signal_in_if<T>, 1>() {} 1365141Sgblack@eecs.umich.edu sc_in<T> &operator = (const sc_in<T> &) { return *this; } 1375141Sgblack@eecs.umich.edu}; 1385141Sgblack@eecs.umich.edu 1395135Sgblack@eecs.umich.edutemplate <class T> 1405141Sgblack@eecs.umich.eduinline void 1415141Sgblack@eecs.umich.edusc_trace(sc_trace_file *, const sc_in<T> &, const std::string &) 1425135Sgblack@eecs.umich.edu{ 1435141Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1445141Sgblack@eecs.umich.edu} 1455141Sgblack@eecs.umich.edu 1465141Sgblack@eecs.umich.edutemplate <> 1475135Sgblack@eecs.umich.educlass sc_in<bool> : public sc_port<sc_signal_in_if<bool>, 1> 1485141Sgblack@eecs.umich.edu{ 1495141Sgblack@eecs.umich.edu public: 1505141Sgblack@eecs.umich.edu sc_in() : sc_port<sc_signal_in_if<bool>, 1>() {} 1515141Sgblack@eecs.umich.edu explicit sc_in(const char *name) : 1525141Sgblack@eecs.umich.edu sc_port<sc_signal_in_if<bool>, 1>(name) {} 1535141Sgblack@eecs.umich.edu virtual ~sc_in() {} 1545141Sgblack@eecs.umich.edu 1555141Sgblack@eecs.umich.edu virtual void 1565141Sgblack@eecs.umich.edu bind(const sc_signal_in_if<bool> &) 1575141Sgblack@eecs.umich.edu { 1585141Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1595141Sgblack@eecs.umich.edu } 1605264Sgblack@eecs.umich.edu void 1615141Sgblack@eecs.umich.edu operator () (const sc_signal_in_if<bool> &) 1625141Sgblack@eecs.umich.edu { 1635141Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1645141Sgblack@eecs.umich.edu } 1655141Sgblack@eecs.umich.edu 1665141Sgblack@eecs.umich.edu virtual void 1675141Sgblack@eecs.umich.edu bind(sc_port<sc_signal_in_if<bool>, 1> &) 1685141Sgblack@eecs.umich.edu { 1695141Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1705141Sgblack@eecs.umich.edu } 1715141Sgblack@eecs.umich.edu void 1725141Sgblack@eecs.umich.edu operator () (sc_port<sc_signal_in_if<bool>, 1> &) 1735141Sgblack@eecs.umich.edu { 1745141Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1755141Sgblack@eecs.umich.edu } 1765141Sgblack@eecs.umich.edu 1775141Sgblack@eecs.umich.edu virtual void 1785135Sgblack@eecs.umich.edu bind(sc_port<sc_signal_inout_if<bool>, 1> &) 1795135Sgblack@eecs.umich.edu { 1805135Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1815360Sgblack@eecs.umich.edu } 1825360Sgblack@eecs.umich.edu void 1835360Sgblack@eecs.umich.edu operator () (sc_port<sc_signal_inout_if<bool>, 1> &) 1845360Sgblack@eecs.umich.edu { 1855360Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1865360Sgblack@eecs.umich.edu } 1875647Sgblack@eecs.umich.edu 1885647Sgblack@eecs.umich.edu virtual void 1895647Sgblack@eecs.umich.edu end_of_elaboration() 1905360Sgblack@eecs.umich.edu { 1915647Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1925647Sgblack@eecs.umich.edu } 1935647Sgblack@eecs.umich.edu 1949157Sandreas.hansson@arm.com const bool & 1955141Sgblack@eecs.umich.edu read() const 1965141Sgblack@eecs.umich.edu { 1975141Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1985141Sgblack@eecs.umich.edu return *(const bool *)nullptr; 1995141Sgblack@eecs.umich.edu } 2005141Sgblack@eecs.umich.edu operator const bool& () const 2015135Sgblack@eecs.umich.edu { 2025135Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2035135Sgblack@eecs.umich.edu return *(const bool *)nullptr; 2045135Sgblack@eecs.umich.edu } 2058768Sgblack@eecs.umich.edu 2069180Sandreas.hansson@arm.com const sc_event & 2075135Sgblack@eecs.umich.edu default_event() const 2085135Sgblack@eecs.umich.edu { 2095135Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2105135Sgblack@eecs.umich.edu return *(const sc_event *)nullptr; 2119180Sandreas.hansson@arm.com } 2125135Sgblack@eecs.umich.edu const sc_event & 2135135Sgblack@eecs.umich.edu value_changed_event() const 2145135Sgblack@eecs.umich.edu { 2156329Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2166329Sgblack@eecs.umich.edu return *(const sc_event *)nullptr; 2176329Sgblack@eecs.umich.edu } 2188466Snilay@cs.wisc.edu const sc_event & 2198466Snilay@cs.wisc.edu posedge_event() const 2208466Snilay@cs.wisc.edu { 2216329Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2226329Sgblack@eecs.umich.edu return *(const sc_event *)nullptr; 2236329Sgblack@eecs.umich.edu } 2246329Sgblack@eecs.umich.edu const sc_event & 2256329Sgblack@eecs.umich.edu negedge_event() const 2266329Sgblack@eecs.umich.edu { 2276329Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2286329Sgblack@eecs.umich.edu return *(const sc_event *)nullptr; 2298466Snilay@cs.wisc.edu } 2309751Sandreas@sandberg.pp.se 2319751Sandreas@sandberg.pp.se bool 2329751Sandreas@sandberg.pp.se event() const 2339751Sandreas@sandberg.pp.se { 2349423SAndreas.Sandberg@arm.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2359423SAndreas.Sandberg@arm.com return false; 2366329Sgblack@eecs.umich.edu } 2376329Sgblack@eecs.umich.edu bool 2386329Sgblack@eecs.umich.edu posedge() const 2396329Sgblack@eecs.umich.edu { 2406329Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2416329Sgblack@eecs.umich.edu return false; 2428466Snilay@cs.wisc.edu } 2438466Snilay@cs.wisc.edu bool 2446329Sgblack@eecs.umich.edu negedge() const 2458466Snilay@cs.wisc.edu { 2468466Snilay@cs.wisc.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2479921Syasuko.eckert@amd.com return false; 2489921Syasuko.eckert@amd.com } 2499921Syasuko.eckert@amd.com 2506329Sgblack@eecs.umich.edu sc_event_finder & 2517720Sgblack@eecs.umich.edu value_changed() const 2526329Sgblack@eecs.umich.edu { 2536329Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2547693SAli.Saidi@ARM.com return *(sc_event_finder *)nullptr; 2557693SAli.Saidi@ARM.com } 2567693SAli.Saidi@ARM.com sc_event_finder & 2577693SAli.Saidi@ARM.com pos() const 2587693SAli.Saidi@ARM.com { 2597693SAli.Saidi@ARM.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2609759Sandreas@sandberg.pp.se return *(sc_event_finder *)nullptr; 2619759Sandreas@sandberg.pp.se } 2629759Sandreas@sandberg.pp.se sc_event_finder & 2639759Sandreas@sandberg.pp.se neg() const 2649921Syasuko.eckert@amd.com { 2659921Syasuko.eckert@amd.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2669921Syasuko.eckert@amd.com return *(sc_event_finder *)nullptr; 2679759Sandreas@sandberg.pp.se } 2689759Sandreas@sandberg.pp.se 2699759Sandreas@sandberg.pp.se virtual const char *kind() const { return "sc_in"; } 2709759Sandreas@sandberg.pp.se 2719759Sandreas@sandberg.pp.se private: 2729759Sandreas@sandberg.pp.se // Disabled 2739759Sandreas@sandberg.pp.se sc_in(const sc_in<bool> &) : sc_port<sc_signal_in_if<bool>, 1>() {} 2749759Sandreas@sandberg.pp.se sc_in<bool> &operator = (const sc_in<bool> &) { return *this; } 2759759Sandreas@sandberg.pp.se}; 2769759Sandreas@sandberg.pp.se 2779759Sandreas@sandberg.pp.setemplate <> 2789759Sandreas@sandberg.pp.seinline void 2799921Syasuko.eckert@amd.comsc_trace<bool>(sc_trace_file *, const sc_in<bool> &, const std::string &) 2809921Syasuko.eckert@amd.com{ 2819921Syasuko.eckert@amd.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2829759Sandreas@sandberg.pp.se} 2839759Sandreas@sandberg.pp.se 2849921Syasuko.eckert@amd.comtemplate <> 2859921Syasuko.eckert@amd.comclass sc_in<sc_dt::sc_logic> : 2869759Sandreas@sandberg.pp.se public sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> 2879759Sandreas@sandberg.pp.se{ 2889759Sandreas@sandberg.pp.se public: 2899759Sandreas@sandberg.pp.se sc_in() : sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>() {} 2909759Sandreas@sandberg.pp.se explicit sc_in(const char *name) : 2917693SAli.Saidi@ARM.com sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(name) 2929880Sandreas@sandberg.pp.se {} 2939880Sandreas@sandberg.pp.se virtual ~sc_in() {} 2949880Sandreas@sandberg.pp.se 2959880Sandreas@sandberg.pp.se virtual void 2969880Sandreas@sandberg.pp.se bind(const sc_signal_in_if<sc_dt::sc_logic> &) 2979880Sandreas@sandberg.pp.se { 2989880Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2999880Sandreas@sandberg.pp.se } 3009880Sandreas@sandberg.pp.se void 3019880Sandreas@sandberg.pp.se operator () (const sc_signal_in_if<sc_dt::sc_logic> &) 3029880Sandreas@sandberg.pp.se { 3039880Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3049880Sandreas@sandberg.pp.se } 3059880Sandreas@sandberg.pp.se 3069880Sandreas@sandberg.pp.se virtual void 3079880Sandreas@sandberg.pp.se bind(sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> &) 3089880Sandreas@sandberg.pp.se { 3099880Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3109880Sandreas@sandberg.pp.se } 3119880Sandreas@sandberg.pp.se void 3129880Sandreas@sandberg.pp.se operator () (sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> &) 3139880Sandreas@sandberg.pp.se { 3149880Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3159880Sandreas@sandberg.pp.se } 3169880Sandreas@sandberg.pp.se 3179880Sandreas@sandberg.pp.se virtual void 3189880Sandreas@sandberg.pp.se bind(sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1> &) 3199880Sandreas@sandberg.pp.se { 3209880Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3219880Sandreas@sandberg.pp.se } 3229880Sandreas@sandberg.pp.se void 3239880Sandreas@sandberg.pp.se operator () (sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1> &) 3249880Sandreas@sandberg.pp.se { 3259880Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3269880Sandreas@sandberg.pp.se } 3279880Sandreas@sandberg.pp.se 3289880Sandreas@sandberg.pp.se virtual void 3299880Sandreas@sandberg.pp.se end_of_elaboration() 3309880Sandreas@sandberg.pp.se { 3319880Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3329880Sandreas@sandberg.pp.se } 3339880Sandreas@sandberg.pp.se 3349880Sandreas@sandberg.pp.se const sc_dt::sc_logic & 3359880Sandreas@sandberg.pp.se read() const 3369880Sandreas@sandberg.pp.se { 3379880Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3389765Sandreas@sandberg.pp.se return *(const sc_dt::sc_logic *)nullptr; 3399765Sandreas@sandberg.pp.se } 3409765Sandreas@sandberg.pp.se operator const sc_dt::sc_logic& () const 3419765Sandreas@sandberg.pp.se { 3429765Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3439765Sandreas@sandberg.pp.se return *(const sc_dt::sc_logic *)nullptr; 3449765Sandreas@sandberg.pp.se } 3459765Sandreas@sandberg.pp.se 3469765Sandreas@sandberg.pp.se const sc_event & 3479765Sandreas@sandberg.pp.se default_event() const 3489765Sandreas@sandberg.pp.se { 3499765Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3509765Sandreas@sandberg.pp.se return *(const sc_event *)nullptr; 3519765Sandreas@sandberg.pp.se } 3529765Sandreas@sandberg.pp.se const sc_event & 3539765Sandreas@sandberg.pp.se value_changed_event() const 3549765Sandreas@sandberg.pp.se { 3559765Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3569765Sandreas@sandberg.pp.se return *(const sc_event *)nullptr; 3579765Sandreas@sandberg.pp.se } 3589889Sandreas@sandberg.pp.se const sc_event & 3599889Sandreas@sandberg.pp.se posedge_event() const 3609889Sandreas@sandberg.pp.se { 3619889Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3629889Sandreas@sandberg.pp.se return *(const sc_event *)nullptr; 3639889Sandreas@sandberg.pp.se } 3649889Sandreas@sandberg.pp.se const sc_event & 3659889Sandreas@sandberg.pp.se negedge_event() const 3669889Sandreas@sandberg.pp.se { 3679889Sandreas@sandberg.pp.se sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3689889Sandreas@sandberg.pp.se return *(const sc_event *)nullptr; 3699889Sandreas@sandberg.pp.se } 3709889Sandreas@sandberg.pp.se 3719889Sandreas@sandberg.pp.se bool 3729889Sandreas@sandberg.pp.se event() const 3739889Sandreas@sandberg.pp.se { 3747811Ssteve.reinhardt@amd.com sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 375 return false; 376 } 377 bool 378 posedge() const 379 { 380 sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 381 return false; 382 } 383 bool 384 negedge() const 385 { 386 sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 387 return false; 388 } 389 390 sc_event_finder & 391 value_changed() const 392 { 393 sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 394 return *(sc_event_finder *)nullptr; 395 } 396 sc_event_finder & 397 pos() const 398 { 399 sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 400 return *(sc_event_finder *)nullptr; 401 } 402 sc_event_finder & 403 neg() const 404 { 405 sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 406 return *(sc_event_finder *)nullptr; 407 } 408 409 virtual const char *kind() const { return "sc_in"; } 410 411 private: 412 // Disabled 413 sc_in(const sc_in<sc_dt::sc_logic> &) : 414 sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>() 415 {} 416 sc_in<sc_dt::sc_logic> & 417 operator = (const sc_in<sc_dt::sc_logic> &) 418 { 419 return *this; 420 } 421}; 422 423template <> 424inline void 425sc_trace<sc_dt::sc_logic>( 426 sc_trace_file *, const sc_in<sc_dt::sc_logic> &, const std::string &) 427{ 428 sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 429} 430 431} // namespace sc_core 432 433#endif //__SYSTEMC_EXT_CHANNEL_SC_IN_HH__ 434