diff options
Diffstat (limited to 'src/systemc/ext/tlm_core/tlm_1/tlm_analysis')
6 files changed, 118 insertions, 135 deletions
diff --git a/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis.h b/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis.h index 777f7141a..661399c60 100644 --- a/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis.h +++ b/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis.h @@ -17,17 +17,13 @@ *****************************************************************************/ -#ifndef __TLM_ANALYSIS_H__ -#define __TLM_ANALYSIS_H__ +#ifndef __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_H__ +#define __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_H__ - -#include "tlm_core/tlm_1/tlm_analysis/tlm_write_if.h" +#include "tlm_core/tlm_1/tlm_analysis/tlm_analysis_fifo.h" #include "tlm_core/tlm_1/tlm_analysis/tlm_analysis_if.h" - -#include "tlm_core/tlm_1/tlm_analysis/tlm_analysis_triple.h" #include "tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h" -#include "tlm_core/tlm_1/tlm_analysis/tlm_analysis_fifo.h" - -#endif - +#include "tlm_core/tlm_1/tlm_analysis/tlm_analysis_triple.h" +#include "tlm_core/tlm_1/tlm_analysis/tlm_write_if.h" +#endif /* __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_H__ */ diff --git a/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_fifo.h b/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_fifo.h index 1f01b2a8e..84807031f 100644 --- a/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_fifo.h +++ b/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_fifo.h @@ -17,38 +17,30 @@ *****************************************************************************/ -#ifndef __TLM_ANALYSIS_FIFO_H__ -#define __TLM_ANALYSIS_FIFO_H__ +#ifndef __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_FIFO_H__ +#define __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_FIFO_H__ -#include "tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo.h" #include "tlm_core/tlm_1/tlm_analysis/tlm_analysis_if.h" #include "tlm_core/tlm_1/tlm_analysis/tlm_analysis_triple.h" +#include "tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo.h" -namespace tlm { - -template< typename T > -class tlm_analysis_fifo : - public tlm_fifo< T > , - public virtual tlm_analysis_if< T > , - public virtual tlm_analysis_if< tlm_analysis_triple< T > > { - - public: - - // analysis fifo is an unbounded tlm_fifo - - tlm_analysis_fifo( const char *nm ) : tlm_fifo<T>( nm , -16 ) {} - tlm_analysis_fifo() : tlm_fifo<T>( -16 ) {} - - void write( const tlm_analysis_triple<T> &t ) { - nb_put( t ); - } - - void write( const T &t ) { - nb_put( t ); - } - +namespace tlm +{ + +template <typename T> +class tlm_analysis_fifo : public tlm_fifo<T>, + public virtual tlm_analysis_if<T>, + public virtual tlm_analysis_if<tlm_analysis_triple<T>> +{ + public: + // analysis fifo is an unbounded tlm_fifo + tlm_analysis_fifo(const char *nm) : tlm_fifo<T>(nm, -16) {} + tlm_analysis_fifo() : tlm_fifo<T>(-16) {} + + void write(const tlm_analysis_triple<T> &t) { nb_put(t); } + void write(const T &t) { nb_put(t); } }; } // namespace tlm -#endif +#endif /* __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_FIFO_H__ */ diff --git a/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_if.h b/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_if.h index bc24fee54..d1b91effc 100644 --- a/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_if.h +++ b/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_if.h @@ -17,23 +17,22 @@ *****************************************************************************/ -#ifndef __TLM_ANALYSIS_IF_H__ -#define __TLM_ANALYSIS_IF_H__ +#ifndef __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_IF_H__ +#define __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_IF_H__ #include "tlm_core/tlm_1/tlm_analysis/tlm_write_if.h" -namespace tlm { +namespace tlm +{ -template < typename T > +template <typename T> class tlm_analysis_if : public virtual tlm_write_if<T> -{ -}; +{}; -template < typename T > +template <typename T> class tlm_delayed_analysis_if : public virtual tlm_delayed_write_if<T> -{ -}; +{}; } // namespace tlm -#endif +#endif /* __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_IF_H__ */ diff --git a/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h b/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h index 999092538..5195417a8 100644 --- a/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h +++ b/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h @@ -17,68 +17,62 @@ *****************************************************************************/ -#ifndef __TLM_ANALYSIS_PORT_H__ -#define __TLM_ANALYSIS_PORT_H__ +#ifndef __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_PORT_H__ +#define __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_PORT_H__ -#include "tlm_core/tlm_1/tlm_analysis/tlm_analysis_if.h" -#include <deque> #include <algorithm> +#include <deque> -namespace tlm { - +#include "tlm_core/tlm_1/tlm_analysis/tlm_analysis_if.h" -template < typename T> -class tlm_analysis_port : - public sc_core::sc_object , - public virtual tlm_analysis_if< T > +namespace tlm { - public: - tlm_analysis_port() : sc_core::sc_object() {} - tlm_analysis_port( const char *nm ) : sc_core::sc_object( nm ) {} - // bind and () work for both interfaces and analysis ports, since - // analysis ports implement the analysis interface - - virtual void bind( tlm_analysis_if<T> &_if ) { - m_interfaces.push_back( &_if ); - } - - void operator() ( tlm_analysis_if<T> &_if ) { bind( _if ); } - - virtual bool unbind( tlm_analysis_if<T> &_if ) { +template <typename T> +class tlm_analysis_port : public sc_core::sc_object, + public virtual tlm_analysis_if<T> +{ + public: + tlm_analysis_port() : sc_core::sc_object() {} + tlm_analysis_port(const char *nm) : sc_core::sc_object(nm) {} - typename std::deque< tlm_analysis_if<T> * >::iterator i - = std::remove( m_interfaces.begin(), m_interfaces.end(), &_if ); + // bind and () work for both interfaces and analysis ports, since + // analysis ports implement the analysis interface. - if( i != m_interfaces.end() ) { - m_interfaces.erase(i, m_interfaces.end() ); - return 1; + virtual void + bind(tlm_analysis_if<T> &_if) + { + m_interfaces.push_back(&_if); } - return 0; - - } - - void write( const T &t ) { - typename std::deque< tlm_analysis_if<T> * >::iterator i; - - for( i = m_interfaces.begin(); - i != m_interfaces.end(); - i++ ) { - - (*i)->write( t ); - + void operator() (tlm_analysis_if<T> &_if) { bind(_if); } + virtual bool + unbind(tlm_analysis_if<T> &_if) + { + typename std::deque<tlm_analysis_if<T> *>::iterator i = + std::remove(m_interfaces.begin(), m_interfaces.end(), &_if); + + if (i != m_interfaces.end()) { + m_interfaces.erase(i, m_interfaces.end()); + return 1; + } + return 0; } - } + void + write(const T &t) + { + typename std::deque<tlm_analysis_if<T> *>::iterator i; - private: - std::deque< tlm_analysis_if<T> * > m_interfaces; + for (i = m_interfaces.begin(); i != m_interfaces.end(); i++) { + (*i)->write(t); + } + } + private: + std::deque<tlm_analysis_if<T> *> m_interfaces; }; } // namespace tlm -#endif - - +#endif /* __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_PORT_H__ */ diff --git a/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_triple.h b/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_triple.h index f65a25a2e..9727f23e5 100644 --- a/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_triple.h +++ b/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_triple.h @@ -17,37 +17,37 @@ *****************************************************************************/ -#ifndef __TLM_ANALYSIS_TRIPLE_H__ -#define __TLM_ANALYSIS_TRIPLE_H__ - -//#include <systemc> - -namespace tlm { - -template< typename T> -struct tlm_analysis_triple { - - sc_core::sc_time start_time; - T transaction; - sc_core::sc_time end_time; - - tlm_analysis_triple() {} - - tlm_analysis_triple( const tlm_analysis_triple &triple ) { - start_time = triple.start_time; - transaction = triple.transaction; - end_time = triple.end_time; - } - - tlm_analysis_triple( const T &t ) { - transaction = t; - } - - operator T() { return transaction; } - operator const T &() const { return transaction; } - +#ifndef __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_TRIPLE_H__ +#define __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_TRIPLE_H__ + +namespace tlm +{ + +template <typename T> +struct tlm_analysis_triple +{ + sc_core::sc_time start_time; + T transaction; + sc_core::sc_time end_time; + + tlm_analysis_triple() {} + + tlm_analysis_triple(const tlm_analysis_triple &triple) + { + start_time = triple.start_time; + transaction = triple.transaction; + end_time = triple.end_time; + } + + tlm_analysis_triple(const T &t) + { + transaction = t; + } + + operator T() { return transaction; } + operator const T &() const { return transaction; } }; } // namespace tlm -#endif +#endif /* __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_TRIPLE_H__ */ diff --git a/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_write_if.h b/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_write_if.h index b66a591bc..3d77f880d 100644 --- a/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_write_if.h +++ b/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_write_if.h @@ -17,26 +17,28 @@ *****************************************************************************/ -#ifndef __TLM_WRITE_IF_H__ -#define __TLM_WRITE_IF_H__ +#ifndef __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_WRITE_IF_H__ +#define __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_WRITE_IF_H__ #include <systemc> -namespace tlm { +namespace tlm +{ template <typename T> -class tlm_write_if : public virtual sc_core::sc_interface { -public: - virtual void write(const T& t) = 0; +class tlm_write_if : public virtual sc_core::sc_interface +{ + public: + virtual void write(const T &t) = 0; }; template <typename T> -class tlm_delayed_write_if : public virtual sc_core::sc_interface { -public: - virtual void write(const T& t, const sc_core::sc_time& time) = 0; +class tlm_delayed_write_if : public virtual sc_core::sc_interface +{ + public: + virtual void write(const T &t, const sc_core::sc_time &time) = 0; }; } // namespace tlm - -#endif +#endif /* __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_WRITE_IF_H__ */ |