sc_signal.hh revision 12933
1955SN/A/* 2955SN/A * Copyright 2018 Google, Inc. 31762SN/A * 4955SN/A * Redistribution and use in source and binary forms, with or without 5955SN/A * modification, are permitted provided that the following conditions are 6955SN/A * met: redistributions of source code must retain the above copyright 7955SN/A * notice, this list of conditions and the following disclaimer; 8955SN/A * redistributions in binary form must reproduce the above copyright 9955SN/A * notice, this list of conditions and the following disclaimer in the 10955SN/A * documentation and/or other materials provided with the distribution; 11955SN/A * neither the name of the copyright holders nor the names of its 12955SN/A * contributors may be used to endorse or promote products derived from 13955SN/A * this software without specific prior written permission. 14955SN/A * 15955SN/A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16955SN/A * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17955SN/A * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 18955SN/A * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 19955SN/A * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20955SN/A * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 21955SN/A * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22955SN/A * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23955SN/A * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24955SN/A * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25955SN/A * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26955SN/A * 27955SN/A * Authors: Gabe Black 282665Ssaidi@eecs.umich.edu */ 294762Snate@binkert.org 30955SN/A#ifndef __SYSTEMC_EXT_CHANNEL_SC_SIGNAL_HH__ 315522Snate@binkert.org#define __SYSTEMC_EXT_CHANNEL_SC_SIGNAL_HH__ 326143Snate@binkert.org 334762Snate@binkert.org#include <iostream> 345522Snate@binkert.org#include <string> 35955SN/A#include <vector> 365522Snate@binkert.org 37955SN/A#include "../core/sc_module.hh" // for sc_gen_unique_name 385522Snate@binkert.org#include "../core/sc_prim.hh" 394202Sbinkertn@umich.edu#include "sc_signal_inout_if.hh" 405742Snate@binkert.org#include "warn_unimpl.hh" // for warn_unimpl 41955SN/A 424381Sbinkertn@umich.edunamespace sc_core 434381Sbinkertn@umich.edu{ 44955SN/A 45955SN/Aclass sc_port_base; 46955SN/Aclass sc_trace_file; 474202Sbinkertn@umich.edu 48955SN/A// Nonstandard 494382Sbinkertn@umich.edu// Despite having a warning "FOR INTERNAL USE ONLY!" in all caps above this 504382Sbinkertn@umich.edu// class definition in the Accellera implementation, it appears in their 514382Sbinkertn@umich.edu// examples and test programs, and so we need to have it here as well. 526654Snate@binkert.orgstruct sc_trace_params 535517Snate@binkert.org{ 546143Snate@binkert.org sc_trace_file *tf; 556143Snate@binkert.org std::string name; 566143Snate@binkert.org 576143Snate@binkert.org sc_trace_params(sc_trace_file *tf, const std::string &name) : 586143Snate@binkert.org tf(tf), name(name) 596143Snate@binkert.org {} 606143Snate@binkert.org}; 616143Snate@binkert.orgtypedef std::vector<sc_trace_params *> sc_trace_params_vec; 626143Snate@binkert.org 636143Snate@binkert.orgtemplate <class T, sc_writer_policy WRITER_POLICY=SC_ONE_WRITER> 646143Snate@binkert.orgclass sc_signal : public sc_signal_inout_if<T>, 656143Snate@binkert.org public sc_prim_channel 666143Snate@binkert.org{ 676143Snate@binkert.org public: 686143Snate@binkert.org sc_signal() : sc_signal_inout_if<T>(), 694762Snate@binkert.org sc_prim_channel(sc_gen_unique_name("signal")) 706143Snate@binkert.org {} 716143Snate@binkert.org explicit sc_signal(const char *name) : sc_signal_inout_if<T>(), 726143Snate@binkert.org sc_prim_channel(name) 736143Snate@binkert.org {} 746143Snate@binkert.org explicit sc_signal(const char *name, const T &initial_value) : 756143Snate@binkert.org sc_signal_inout_if<T>(), sc_prim_channel(name) 766143Snate@binkert.org { 776143Snate@binkert.org // Need to consume initial_value. 786143Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 796143Snate@binkert.org } 806143Snate@binkert.org virtual ~sc_signal() {} 816143Snate@binkert.org 826143Snate@binkert.org virtual void 836143Snate@binkert.org register_port(sc_port_base &, const char *) 846143Snate@binkert.org { 856143Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 866143Snate@binkert.org } 876143Snate@binkert.org 886143Snate@binkert.org virtual const T& 896143Snate@binkert.org read() const 906143Snate@binkert.org { 916143Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 926143Snate@binkert.org return *(const T *)nullptr; 936143Snate@binkert.org } 946143Snate@binkert.org operator const T&() const 956143Snate@binkert.org { 966143Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 976143Snate@binkert.org return *(const T *)nullptr; 986143Snate@binkert.org } 996143Snate@binkert.org 1006143Snate@binkert.org virtual sc_writer_policy 1016143Snate@binkert.org get_writer_policy() const 1026143Snate@binkert.org { 1036143Snate@binkert.org return WRITER_POLICY; 1046143Snate@binkert.org } 1056143Snate@binkert.org virtual void 1066143Snate@binkert.org write(const T&) 1076143Snate@binkert.org { 1086143Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1096143Snate@binkert.org } 1106143Snate@binkert.org sc_signal<T, WRITER_POLICY> & 1116143Snate@binkert.org operator = (const T&) 1126143Snate@binkert.org { 1135522Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1146143Snate@binkert.org return *this; 1156143Snate@binkert.org } 1166143Snate@binkert.org sc_signal<T, WRITER_POLICY> & 1176143Snate@binkert.org operator = (const sc_signal<T, WRITER_POLICY> &) 1186143Snate@binkert.org { 1196143Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1206143Snate@binkert.org return *this; 1216143Snate@binkert.org } 1226143Snate@binkert.org 1236143Snate@binkert.org virtual const sc_event & 1245522Snate@binkert.org default_event() const 1255522Snate@binkert.org { 1265522Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1275522Snate@binkert.org return *(sc_event *)nullptr; 1285604Snate@binkert.org } 1295604Snate@binkert.org virtual const sc_event & 1306143Snate@binkert.org value_changed_event() const 1316143Snate@binkert.org { 1324762Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1334762Snate@binkert.org return *(sc_event *)nullptr; 1346143Snate@binkert.org } 1356143Snate@binkert.org virtual bool 1366143Snate@binkert.org event() const 1376143Snate@binkert.org { 1384762Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1396143Snate@binkert.org return false; 1406143Snate@binkert.org } 1416143Snate@binkert.org 1426143Snate@binkert.org virtual void 1436143Snate@binkert.org print(std::ostream & =std::cout) const 1446143Snate@binkert.org { 1456143Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1466143Snate@binkert.org } 1475604Snate@binkert.org virtual void 1486143Snate@binkert.org dump(std::ostream & =std::cout) const 1496143Snate@binkert.org { 1506143Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1514762Snate@binkert.org } 1526143Snate@binkert.org virtual const char *kind() const { return "sc_signal"; } 1534762Snate@binkert.org 1544762Snate@binkert.org protected: 1554762Snate@binkert.org virtual void 1566143Snate@binkert.org update() 1576143Snate@binkert.org { 1584762Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1596143Snate@binkert.org } 1606143Snate@binkert.org 1616143Snate@binkert.org private: 1626143Snate@binkert.org // Disabled 1634762Snate@binkert.org sc_signal(const sc_signal<T, WRITER_POLICY> &) : 1646143Snate@binkert.org sc_signal_inout_if<T>(), sc_prim_channel("") 1654762Snate@binkert.org {} 1666143Snate@binkert.org}; 1674762Snate@binkert.org 1686143Snate@binkert.orgtemplate <class T, sc_writer_policy WRITER_POLICY> 1696143Snate@binkert.orginline std::ostream & 1706143Snate@binkert.orgoperator << (std::ostream &os, const sc_signal<T, WRITER_POLICY> &) 1716143Snate@binkert.org{ 1726143Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1736143Snate@binkert.org return os; 1746143Snate@binkert.org} 1756143Snate@binkert.org 1766143Snate@binkert.orgtemplate <sc_writer_policy WRITER_POLICY> 1776143Snate@binkert.orgclass sc_signal<bool, WRITER_POLICY> : 1786143Snate@binkert.org public sc_signal_inout_if<bool>, public sc_prim_channel 1796143Snate@binkert.org{ 1806143Snate@binkert.org public: 181955SN/A sc_signal() 1825584Snate@binkert.org { 1835584Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1845584Snate@binkert.org } 1855584Snate@binkert.org explicit sc_signal(const char *) 1866143Snate@binkert.org { 1876143Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1886143Snate@binkert.org } 1895584Snate@binkert.org explicit sc_signal(const char *name, const bool &initial_value) : 1904382Sbinkertn@umich.edu sc_signal_inout_if<bool>(), sc_prim_channel(name) 1914202Sbinkertn@umich.edu { 1924382Sbinkertn@umich.edu // Need to consume initial_value. 1934382Sbinkertn@umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1944382Sbinkertn@umich.edu } 1955584Snate@binkert.org virtual ~sc_signal() 1964382Sbinkertn@umich.edu { 1974382Sbinkertn@umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1984382Sbinkertn@umich.edu } 1995192Ssaidi@eecs.umich.edu 2005192Ssaidi@eecs.umich.edu virtual void 2015799Snate@binkert.org register_port(sc_port_base &, const char *) 2025799Snate@binkert.org { 2035799Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2045192Ssaidi@eecs.umich.edu } 2055799Snate@binkert.org 2065192Ssaidi@eecs.umich.edu virtual const bool & 2075799Snate@binkert.org read() const 2085799Snate@binkert.org { 2095192Ssaidi@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2105192Ssaidi@eecs.umich.edu return *(const bool *)nullptr; 2115192Ssaidi@eecs.umich.edu } 2125799Snate@binkert.org operator const bool &() const 2135192Ssaidi@eecs.umich.edu { 2145192Ssaidi@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2155192Ssaidi@eecs.umich.edu return *(const bool *)nullptr; 2165192Ssaidi@eecs.umich.edu } 2175192Ssaidi@eecs.umich.edu 2185192Ssaidi@eecs.umich.edu virtual sc_writer_policy 2194382Sbinkertn@umich.edu get_writer_policy() const 2204382Sbinkertn@umich.edu { 2214382Sbinkertn@umich.edu return WRITER_POLICY; 2222667Sstever@eecs.umich.edu } 2232667Sstever@eecs.umich.edu virtual void 2242667Sstever@eecs.umich.edu write(const bool &) 2252667Sstever@eecs.umich.edu { 2262667Sstever@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2272667Sstever@eecs.umich.edu } 2285742Snate@binkert.org sc_signal<bool, WRITER_POLICY> & 2295742Snate@binkert.org operator = (const bool &) 2305742Snate@binkert.org { 2315793Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2325793Snate@binkert.org return *this; 2335793Snate@binkert.org } 2345793Snate@binkert.org sc_signal<bool, WRITER_POLICY> & 2355793Snate@binkert.org operator = (const sc_signal<bool, WRITER_POLICY> &) 2364382Sbinkertn@umich.edu { 2374762Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2385344Sstever@gmail.com return *this; 2394382Sbinkertn@umich.edu } 2405341Sstever@gmail.com 2415742Snate@binkert.org virtual const sc_event & 2425742Snate@binkert.org default_event() const 2435742Snate@binkert.org { 2445742Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2455742Snate@binkert.org return *(sc_event *)nullptr; 2464762Snate@binkert.org } 2475742Snate@binkert.org 2485742Snate@binkert.org virtual const sc_event & 2495742Snate@binkert.org value_changed_event() const 2505742Snate@binkert.org { 2515742Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2525742Snate@binkert.org return *(sc_event *)nullptr; 2535742Snate@binkert.org } 2545341Sstever@gmail.com virtual const sc_event & 2555742Snate@binkert.org posedge_event() const 2565341Sstever@gmail.com { 2574773Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2586108Snate@binkert.org return *(sc_event *)nullptr; 2591858SN/A } 2601085SN/A virtual const sc_event & 2616658Snate@binkert.org negedge_event() const 2626658Snate@binkert.org { 2636658Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2646658Snate@binkert.org return *(sc_event *)nullptr; 2656658Snate@binkert.org } 2666658Snate@binkert.org 2676658Snate@binkert.org virtual bool 2686658Snate@binkert.org event() const 2696658Snate@binkert.org { 2706658Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2716658Snate@binkert.org return false; 2726658Snate@binkert.org } 2736658Snate@binkert.org virtual bool 2746658Snate@binkert.org posedge() const 2756658Snate@binkert.org { 2766658Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2776658Snate@binkert.org return false; 2786658Snate@binkert.org } 2796658Snate@binkert.org virtual bool 2806658Snate@binkert.org negedge() const 2816658Snate@binkert.org { 2826658Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2836658Snate@binkert.org return false; 2846658Snate@binkert.org } 2856658Snate@binkert.org 2864382Sbinkertn@umich.edu virtual void 2874382Sbinkertn@umich.edu print(std::ostream & =std::cout) const 2884762Snate@binkert.org { 2894762Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2904762Snate@binkert.org } 2916654Snate@binkert.org virtual void 2926654Snate@binkert.org dump(std::ostream & =std::cout) const 2935517Snate@binkert.org { 2945517Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 2955517Snate@binkert.org } 2965517Snate@binkert.org virtual const char *kind() const { return "sc_signal"; } 2975517Snate@binkert.org 2985517Snate@binkert.org protected: 2995517Snate@binkert.org virtual void 3005517Snate@binkert.org update() 3015517Snate@binkert.org { 3025517Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3035517Snate@binkert.org } 3045517Snate@binkert.org 3055517Snate@binkert.org private: 3065517Snate@binkert.org // Disabled 3075517Snate@binkert.org sc_signal(const sc_signal<bool, WRITER_POLICY> &) : 3085517Snate@binkert.org sc_signal_inout_if<bool>(), sc_prim_channel("") 3095517Snate@binkert.org {} 3106654Snate@binkert.org}; 3115517Snate@binkert.org 3125517Snate@binkert.orgtemplate <sc_writer_policy WRITER_POLICY> 3135517Snate@binkert.orgclass sc_signal<sc_dt::sc_logic, WRITER_POLICY> : 3145517Snate@binkert.org public sc_signal_inout_if<sc_dt::sc_logic>, public sc_prim_channel 3155517Snate@binkert.org{ 3165517Snate@binkert.org public: 3175517Snate@binkert.org sc_signal() 3185517Snate@binkert.org { 3196143Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3206654Snate@binkert.org } 3215517Snate@binkert.org explicit sc_signal(const char *) 3225517Snate@binkert.org { 3235517Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3245517Snate@binkert.org } 3255517Snate@binkert.org explicit sc_signal(const char *name, 3265517Snate@binkert.org const sc_dt::sc_logic &initial_value) : 3275517Snate@binkert.org sc_signal_inout_if<sc_dt::sc_logic>(), sc_prim_channel(name) 3285517Snate@binkert.org { 3295517Snate@binkert.org // Need to consume initial_value. 3305517Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3315517Snate@binkert.org } 3325517Snate@binkert.org virtual ~sc_signal() 3335517Snate@binkert.org { 3345517Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3356654Snate@binkert.org } 3366654Snate@binkert.org 3375517Snate@binkert.org virtual void 3385517Snate@binkert.org register_port(sc_port_base &, const char *) 3396143Snate@binkert.org { 3406143Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3416143Snate@binkert.org } 3426143Snate@binkert.org 3435517Snate@binkert.org virtual const sc_dt::sc_logic & 3446143Snate@binkert.org read() const 3455517Snate@binkert.org { 3465517Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3475517Snate@binkert.org return *(const sc_dt::sc_logic *)nullptr; 3486654Snate@binkert.org } 3496654Snate@binkert.org operator const sc_dt::sc_logic &() const 3506654Snate@binkert.org { 3516654Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3526654Snate@binkert.org return *(const sc_dt::sc_logic *)nullptr; 3536654Snate@binkert.org } 3545517Snate@binkert.org 3555517Snate@binkert.org virtual sc_writer_policy 3565517Snate@binkert.org get_writer_policy() const 3576143Snate@binkert.org { 3585517Snate@binkert.org return WRITER_POLICY; 3594762Snate@binkert.org } 3605517Snate@binkert.org virtual void 3615517Snate@binkert.org write(const sc_dt::sc_logic &) 3626143Snate@binkert.org { 3636143Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3645517Snate@binkert.org } 3655517Snate@binkert.org sc_signal<sc_dt::sc_logic, WRITER_POLICY> & 3665517Snate@binkert.org operator = (const sc_dt::sc_logic &) 3675517Snate@binkert.org { 3685517Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3695517Snate@binkert.org return *this; 3705517Snate@binkert.org } 3715517Snate@binkert.org sc_signal<sc_dt::sc_logic, WRITER_POLICY> & 3725517Snate@binkert.org operator = (const sc_signal<sc_dt::sc_logic, WRITER_POLICY> &) 3735517Snate@binkert.org { 3746143Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3755517Snate@binkert.org return *this; 3766654Snate@binkert.org } 3776654Snate@binkert.org 3786654Snate@binkert.org virtual const sc_event & 3796654Snate@binkert.org default_event() const 3806654Snate@binkert.org { 3816654Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3825517Snate@binkert.org return *(sc_event *)nullptr; 3835517Snate@binkert.org } 3845517Snate@binkert.org 3855517Snate@binkert.org virtual const sc_event & 3865517Snate@binkert.org value_changed_event() const 3874762Snate@binkert.org { 3884762Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3894762Snate@binkert.org return *(sc_event *)nullptr; 3904762Snate@binkert.org } 3914762Snate@binkert.org virtual const sc_event & 3924762Snate@binkert.org posedge_event() const 3936143Snate@binkert.org { 3944762Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 3954762Snate@binkert.org return *(sc_event *)nullptr; 3964762Snate@binkert.org } 3974762Snate@binkert.org virtual const sc_event & 3984382Sbinkertn@umich.edu negedge_event() const 3994382Sbinkertn@umich.edu { 4005517Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 4016654Snate@binkert.org return *(sc_event *)nullptr; 4025517Snate@binkert.org } 4035798Snate@binkert.org 4046654Snate@binkert.org virtual bool 4056654Snate@binkert.org event() const 4066654Snate@binkert.org { 4076654Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 4086654Snate@binkert.org return false; 4096654Snate@binkert.org } 4106654Snate@binkert.org virtual bool 4116654Snate@binkert.org posedge() const 4126654Snate@binkert.org { 4136654Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 4146654Snate@binkert.org return false; 4156654Snate@binkert.org } 4166654Snate@binkert.org virtual bool 4176654Snate@binkert.org negedge() const 4186654Snate@binkert.org { 4195517Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 4205863Snate@binkert.org return false; 4215798Snate@binkert.org } 4225798Snate@binkert.org 4235798Snate@binkert.org virtual void 4245798Snate@binkert.org print(std::ostream & =std::cout) const 4255517Snate@binkert.org { 4265517Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 4275517Snate@binkert.org } 4285517Snate@binkert.org virtual void 4295517Snate@binkert.org dump(std::ostream & =std::cout) const 4305517Snate@binkert.org { 4315517Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 4325517Snate@binkert.org } 4335798Snate@binkert.org virtual const char *kind() const { return "sc_signal"; } 4345798Snate@binkert.org 4355798Snate@binkert.org protected: 4365798Snate@binkert.org virtual void 4375798Snate@binkert.org update() 4385798Snate@binkert.org { 4395517Snate@binkert.org sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 4405517Snate@binkert.org } 4415517Snate@binkert.org 4425517Snate@binkert.org private: 4435517Snate@binkert.org // Disabled 4445517Snate@binkert.org sc_signal(const sc_signal<sc_dt::sc_logic, WRITER_POLICY> &) : 4455517Snate@binkert.org sc_signal_inout_if<sc_dt::sc_logic>(), sc_prim_channel("") 4465517Snate@binkert.org {} 4475517Snate@binkert.org}; 4484762Snate@binkert.org 4494382Sbinkertn@umich.edu} // namespace sc_core 4506143Snate@binkert.org 4515517Snate@binkert.org#endif //__SYSTEMC_EXT_CHANNEL_SC_SIGNAL_HH__ 4524382Sbinkertn@umich.edu