Lines Matching refs:sc_dt

22   sc_signal_int.cpp -- The sc_signal<sc_dt::sc_int<W> > implementations.
78 sc_signal_uint.h -- The sc_signal<sc_dt::sc_int<W> > definitions.
153 // data type is sc_dt::sc_int<W>. This class serves as the base class for the
154 // sc_dt::sc_int<W> specialization of the sc_signal_in_if<T> class. The methods
161 // their implementations in sc_signal<sc_dt::sc_int<W> >.
170 virtual sc_dt::sc_int_base* part_read_target();
171 virtual sc_dt::uint64 read_part( int left, int right ) const;
175 virtual void write_part( sc_dt::uint64 v, int left, int right );
184 // CLASS sc_signal_in_if<sc_dt::sc_int<W> >
188 // sc_dt::sc_int<W>, including part access.
192 // their implementations in sc_signal<sc_dt::sc_int<W> >.
195 class sc_signal_in_if<sc_dt::sc_int<W> > : public sc_int_part_if {
198 typedef sc_signal_in_if<sc_dt::sc_int<W> > this_type;
205 virtual const sc_dt::sc_int<W>& read() const = 0;
208 virtual const sc_dt::sc_int<W>& get_data_ref() const = 0;
229 class sc_int_sigref : public sc_dt::sc_int_subref_r
232 sc_int_sigref() : sc_dt::sc_int_subref_r() {}
234 virtual void concat_set(sc_dt::int64 src, int low_i);
235 virtual void concat_set(const sc_dt::sc_signed& src, int low_i);
236 virtual void concat_set(const sc_dt::sc_unsigned& src, int low_i);
237 virtual void concat_set(const sc_dt::sc_lv_base& src, int low_i);
238 virtual void concat_set(sc_dt::uint64 src, int low_i);
244 inline void operator = ( sc_dt::uint64 v );
250 inline void operator = ( sc_dt::int64 v );
254 inline void operator = ( const sc_dt::sc_generic_base<T>& v );
255 inline void operator = ( const sc_dt::sc_signed& v );
256 inline void operator = ( const sc_dt::sc_unsigned& v );
257 inline void operator = ( const sc_dt::sc_bv_base& v );
258 inline void operator = ( const sc_dt::sc_lv_base& v );
274 // CLASS sc_signal<sc_dt::sc_int<W> >
276 // This class implements a signal whose value acts like an sc_dt::sc_int<W> data
278 // implement tailored support for the sc_dt::sc_int<W> class.
285 class sc_signal<sc_dt::sc_int<W> > :
286 public sc_signal_inout_if<sc_dt::sc_int<W> >,
288 public sc_dt::sc_int<W>
291 typedef sc_signal<sc_dt::sc_int<W> > this_type;
300 inline const sc_dt::sc_int<W>& base_read() const;
302 inline void base_write( sc_dt::int64 value );
314 virtual inline sc_dt::sc_int_base* part_read_target();
315 virtual inline sc_dt::uint64 read_part(int left, int right) const;
317 virtual inline void write_part(sc_dt::uint64 v, int left, int right);
321 virtual inline const sc_dt::sc_int<W>& get_data_ref() const;
322 virtual inline sc_signal<sc_dt::sc_int<W> >& get_signal() ;
323 virtual inline const sc_dt::sc_int<W>& read() const;
325 virtual inline void write( const sc_in<sc_dt::sc_int<W> >& value );
326 virtual inline void write( const sc_inout<sc_dt::sc_int<W> >& value );
327 virtual inline void write( const sc_dt::sc_int<W>& value );
336 inline void operator = ( sc_dt::uint64 new_val );
337 inline void operator = ( sc_dt::int64 new_val );
345 inline void operator = ( const sc_dt::sc_generic_base<T>& new_val );
346 inline void operator = ( const sc_dt::sc_signed& new_val );
347 inline void operator = ( const sc_dt::sc_unsigned& new_val );
348 inline void operator = ( const sc_dt::sc_bv_base& new_val );
349 inline void operator = ( const sc_dt::sc_lv_base& new_val );
351 // concatenation methods (we inherit length and gets from sc_dt::sc_int<W>):
353 virtual inline void concat_set(sc_dt::int64 src, int low_i);
354 virtual inline void concat_set(const sc_dt::sc_lv_base& src, int low_i);
355 virtual inline void concat_set(const sc_dt::sc_signed& src, int low_i);
356 virtual inline void concat_set(const sc_dt::sc_unsigned& src, int low_i);
357 virtual inline void concat_set(sc_dt::uint64 src, int low_i);
363 private: // Disabled operations that sc_dt::sc_int<W> supports:
364 sc_signal<sc_dt::sc_int<W> >& operator ++ (); // prefix
365 const sc_signal<sc_dt::sc_int<W> >& operator ++ (int); // postfix
366 sc_signal<sc_dt::sc_int<W> >& operator -- (); // prefix
367 const sc_signal<sc_dt::sc_int<W> >& operator -- (int); // postfix
368 sc_signal<sc_dt::sc_int<W> >& operator += (sc_dt::int_type);
369 sc_signal<sc_dt::sc_int<W> >& operator -= (sc_dt::int_type);
370 sc_signal<sc_dt::sc_int<W> >& operator *= (sc_dt::int_type);
371 sc_signal<sc_dt::sc_int<W> >& operator /= (sc_dt::int_type);
372 sc_signal<sc_dt::sc_int<W> >& operator %= (sc_dt::int_type);
373 sc_signal<sc_dt::sc_int<W> >& operator &= (sc_dt::int_type);
374 sc_signal<sc_dt::sc_int<W> >& operator |= (sc_dt::int_type);
375 sc_signal<sc_dt::sc_int<W> >& operator ^= (sc_dt::int_type);
379 sc_dt::uint64 m_event_delta; // Delta cycle of last event.
380 sc_dt::int64 m_new_val; // New value for this object instance.
387 inline bool sc_signal<sc_dt::sc_int<W> >::base_event() const
393 SC_TEMPLATE // Return this object's sc_dt::sc_int<W> object instance.
394 inline const sc_dt::sc_int<W>& sc_signal<sc_dt::sc_int<W> >::base_read() const
401 inline const sc_event& sc_signal<sc_dt::sc_int<W> >::base_value_changed_event() const
409 inline sc_int_sigref& sc_signal<sc_dt::sc_int<W> >::select_part(int left, int right)
417 SC_TEMPLATE // Write an sc_dt::uint64 value to this object instance.
418 inline void sc_signal<sc_dt::sc_int<W> >::base_write( sc_dt::int64 value )
428 //"sc_signal<sc_dt::sc_int<W> >::check_writer"
434 inline void sc_signal<sc_dt::sc_int<W> >::check_writer()
450 //"sc_signal<sc_dt::sc_int<W> >::concat_set"
460 inline void sc_signal<sc_dt::sc_int<W> >::concat_set(sc_dt::int64 src, int low_i)
473 inline void sc_signal<sc_dt::sc_int<W> >::concat_set(const sc_dt::sc_lv_base& src, int low_i)
475 sc_dt::sc_unsigned tmp(src.length());
481 inline void sc_signal<sc_dt::sc_int<W> >::concat_set(const sc_dt::sc_signed& src, int low_i)
487 inline void sc_signal<sc_dt::sc_int<W> >::concat_set(const sc_dt::sc_unsigned& src, int low_i)
493 inline void sc_signal<sc_dt::sc_int<W> >::concat_set(sc_dt::uint64 src, int low_i)
501 inline const sc_event& sc_signal<sc_dt::sc_int<W> >::default_event() const
506 inline bool sc_signal<sc_dt::sc_int<W> >::event() const
511 inline const sc_dt::sc_int<W>& sc_signal<sc_dt::sc_int<W> >::get_data_ref() const
516 inline sc_signal<sc_dt::sc_int<W> >& sc_signal<sc_dt::sc_int<W> >::get_signal()
521 inline const char* sc_signal<sc_dt::sc_int<W> >::kind() const
535 inline sc_int_sigref& sc_signal<sc_dt::sc_int<W> >::operator () (int left, int right)
552 inline sc_int_sigref& sc_signal<sc_dt::sc_int<W> >::operator [] ( int bit )
559 inline void sc_signal<sc_dt::sc_int<W> >::operator = ( const this_type& new_val )
560 { base_write( (sc_dt::int64)new_val ); }
563 inline void sc_signal<sc_dt::sc_int<W> >::operator = ( const char* new_val )
564 { m_new_val = sc_dt::sc_int<64>(new_val); request_update(); }
567 inline void sc_signal<sc_dt::sc_int<W> >::operator = ( sc_dt::uint64 new_val )
568 { base_write((sc_dt::int64)new_val); }
571 inline void sc_signal<sc_dt::sc_int<W> >::operator = ( sc_dt::int64 new_val )
575 inline void sc_signal<sc_dt::sc_int<W> >::operator = ( int new_val )
576 { base_write((sc_dt::int64)new_val); }
579 inline void sc_signal<sc_dt::sc_int<W> >::operator = ( long new_val )
580 { base_write((sc_dt::int64)new_val); }
583 inline void sc_signal<sc_dt::sc_int<W> >::operator = ( short new_val )
584 { base_write((sc_dt::int64)new_val); }
587 inline void sc_signal<sc_dt::sc_int<W> >::operator = ( unsigned int new_val )
588 { base_write((sc_dt::int64)new_val); }
591 inline void sc_signal<sc_dt::sc_int<W> >::operator = ( unsigned long new_val )
592 { base_write((sc_dt::int64)new_val); }
595 inline void sc_signal<sc_dt::sc_int<W> >::operator = ( unsigned short new_val )
596 { base_write((sc_dt::int64)new_val); }
601 inline void sc_signal<sc_dt::sc_int<W> >::operator = (
602 const sc_dt::sc_generic_base<T>& new_val )
606 inline void sc_signal<sc_dt::sc_int<W> >::operator = ( const sc_dt::sc_signed& new_val )
610 inline void sc_signal<sc_dt::sc_int<W> >::operator = ( const sc_dt::sc_unsigned& new_val )
614 inline void sc_signal<sc_dt::sc_int<W> >::operator = ( const sc_dt::sc_bv_base& new_val )
615 { base_write( (sc_dt::sc_int<W>)new_val ); }
618 inline void sc_signal<sc_dt::sc_int<W> >::operator = ( const sc_dt::sc_lv_base& new_val )
619 { base_write( (sc_dt::sc_int<W>)new_val ); }
623 inline sc_dt::sc_int_base* sc_signal<sc_dt::sc_int<W> >::part_read_target()
628 inline const sc_dt::sc_int<W>& sc_signal<sc_dt::sc_int<W> >::read() const
633 inline sc_dt::uint64 sc_signal<sc_dt::sc_int<W> >::read_part( int left, int right ) const
636 return (this->m_val & ~sc_dt::mask_int[left][right]) >> right;
640 inline void sc_signal<sc_dt::sc_int<W> >::register_port(
645 if( nm == typeid( sc_signal_inout_if<sc_dt::sc_int<W> > ).name() )
661 inline sc_signal<sc_dt::sc_int<W> >::sc_signal() :
670 inline sc_signal<sc_dt::sc_int<W> >::sc_signal(const char* name_) :
679 inline sc_signal<sc_dt::sc_int<W> >::~sc_signal()
686 inline void sc_signal<sc_dt::sc_int<W> >::update()
691 sc_dt::int64 old_val = this->m_val;
692 sc_dt::sc_int_base::operator = (m_new_val);
701 sc_dt::sc_int_base::operator = (m_new_val);
707 inline const sc_event& sc_signal<sc_dt::sc_int<W> >::value_changed_event() const
711 SC_TEMPLATE // Write a sc_in<sc_dt::sc_int<W> > value to this object instance.
712 inline void sc_signal<sc_dt::sc_int<W> >::write( const sc_in<sc_dt::sc_int<W> >& value )
713 { base_write( value.operator sc_dt::int64 () ); }
716 SC_TEMPLATE // Write a sc_inout<sc_dt::sc_int<W> > value to this object instance.
717 inline void sc_signal<sc_dt::sc_int<W> >::write( const sc_inout<sc_dt::sc_int<W> >& value )
718 { base_write( value.operator sc_dt::int64 () ); }
721 SC_TEMPLATE // Write a sc_dt::sc_int<W> value to this object instance.
722 inline void sc_signal<sc_dt::sc_int<W> >::write( const sc_dt::sc_int<W>& value )
728 inline void sc_signal<sc_dt::sc_int<W> >::write_part( sc_dt::uint64 v, int left, int right )
730 sc_dt::int64 new_v; // New value.
731 sc_dt::uint64 keep; // Keep mask value.
733 keep = sc_dt::mask_int[left][right];
741 // CLASS sc_in<sc_dt::sc_int<W> >
743 // This class implements an input port whose target acts like an sc_dt::sc_int<W> data
745 // implement tailored support for the sc_dt::sc_int<W> class.
748 class sc_in<sc_dt::sc_int<W> > :
749 public sc_port<sc_signal_in_if<sc_dt::sc_int<W> >, 1>,
750 public sc_dt::sc_value_base
756 typedef sc_dt::sc_int<W> data_type;
757 typedef sc_signal_in_if<sc_dt::sc_int<W> > if_type;
759 typedef sc_in<sc_dt::sc_int<W> > this_type;
763 typedef sc_signal_inout_if<sc_dt::sc_int<W> > inout_if_type;
764 typedef sc_inout<sc_dt::sc_int<W> > inout_port_type;
859 sc_dt::sc_int_bitref_r operator [] ( int i ) const
861 sc_dt::sc_int_bitref_r bit( int i ) const
863 sc_dt::sc_int_subref_r operator () ( int left, int right ) const
865 sc_dt::sc_int_subref_r range( int left, int right ) const
885 const sc_dt::sc_int<W>& read() const
888 operator sc_dt::int64 () const
889 { return (sc_dt::int64)(*this)->read(); }
958 virtual inline sc_dt::uint64 concat_get_uint64() const
961 inline bool concat_get_ctrl( sc_dt::sc_digit* dst_p, int low_i ) const
964 inline bool concat_get_data( sc_dt::sc_digit* dst_p, int low_i ) const
985 sc_in( const sc_in<sc_dt::sc_int<W> >& );
986 sc_in<sc_dt::sc_int<W> >& operator = ( const sc_in<sc_dt::sc_int<W> >& );
1001 inline std::ostream& operator << (std::ostream& os, const sc_in<sc_dt::sc_int<W> >& a)
1009 // CLASS sc_inout<sc_dt::sc_int<W> >
1012 // sc_dt::sc_int<W> data value. It is derived from the sc_int_in. This class is a
1014 // for the sc_dt::sc_int<W> class.
1017 class sc_inout<sc_dt::sc_int<W> > :
1018 public sc_port<sc_signal_inout_if<sc_dt::sc_int<W> >, 1>,
1019 public sc_dt::sc_value_base
1025 typedef sc_dt::sc_int<W> data_type;
1026 typedef sc_signal_inout_if<sc_dt::sc_int<W> > if_type;
1028 typedef sc_inout<sc_dt::sc_int<W> > this_type;
1109 sc_dt::sc_int_bitref_r operator [] ( int i ) const
1111 sc_dt::sc_int_bitref_r bit( int i ) const
1117 sc_dt::sc_int_subref_r operator () ( int left, int right ) const
1119 sc_dt::sc_int_subref_r range( int left, int right ) const
1143 const sc_dt::sc_int<W>& read() const
1146 operator sc_dt::int64 () const
1147 { return (sc_dt::int64)(*this)->read(); }
1188 (*this)->write( (sc_dt::int64) *m_init_val_p );
1206 inline void initialize( const sc_dt::sc_int<W>& value_ )
1213 m_init_val_p = new sc_dt::int64;
1236 virtual inline sc_dt::uint64 concat_get_uint64() const
1239 inline bool concat_get_ctrl( sc_dt::sc_digit* dst_p, int low_i ) const
1242 inline bool concat_get_data( sc_dt::sc_digit* dst_p, int low_i ) const
1244 virtual inline void concat_set(sc_dt::int64 src, int low_i)
1247 virtual inline void concat_set(const sc_dt::sc_lv_base& src, int low_i)
1250 virtual inline void concat_set(const sc_dt::sc_signed& src, int low_i)
1252 virtual inline void concat_set(const sc_dt::sc_unsigned& src, int low_i)
1254 virtual inline void concat_set(sc_dt::uint64 src, int low_i)
1255 { *this = ( low_i < 64 ) ? src >> low_i : (sc_dt::uint64)0; }
1261 { (*this)->write( (sc_dt::int64)new_val ); }
1264 inline void operator = ( sc_dt::uint64 new_val )
1266 inline void operator = ( sc_dt::int64 new_val )
1267 { (*this)->write((sc_dt::uint64)new_val); }
1269 { (*this)->write((sc_dt::uint64)new_val); }
1271 { (*this)->write((sc_dt::uint64)new_val); }
1273 { (*this)->write((sc_dt::uint64)new_val); }
1275 { (*this)->write((sc_dt::uint64)new_val); }
1277 { (*this)->write((sc_dt::uint64)new_val); }
1279 { (*this)->write((sc_dt::uint64)new_val); }
1281 inline void operator = ( const sc_dt::sc_generic_base<T>& new_val )
1283 inline void operator = ( const sc_dt::sc_signed& new_val )
1285 inline void operator = ( const sc_dt::sc_unsigned& new_val )
1287 inline void operator = ( const sc_dt::sc_bv_base& new_val )
1288 { (*this)->write((sc_dt::sc_int<W>)new_val); }
1289 inline void operator = ( const sc_dt::sc_lv_base& new_val )
1290 { (*this)->write((sc_dt::sc_int<W>)new_val); }
1292 inline void write( const sc_in<sc_dt::sc_int<W> >& new_val )
1293 { (*this)->write( (sc_dt::int64)new_val ); }
1295 inline void write( const sc_inout<sc_dt::sc_int<W> >& new_val )
1296 { (*this)->write( (sc_dt::int64)new_val); }
1298 inline void write( const sc_dt::sc_int<W>& new_val )
1299 { (*this)->write( (sc_dt::int64)new_val); }
1313 sc_dt::int64* m_init_val_p;
1320 sc_inout( const sc_inout<sc_dt::sc_int<W> >& );
1336 std::ostream& os, const sc_inout<sc_dt::sc_int<W> >& a )
1344 // CLASS sc_out<sc_dt::sc_int<W> >
1347 // sc_dt::sc_int<W> data value. This class is a derivation of sc_inout, since
1351 class sc_out<sc_dt::sc_int<W> > : public sc_inout<sc_dt::sc_int<W> >
1357 typedef sc_dt::sc_int<W> data_type;
1410 { (*this)->write( (sc_dt::int64)new_val ); }
1413 inline void operator = ( sc_dt::uint64 new_val )
1415 inline void operator = ( sc_dt::int64 new_val )
1416 { (*this)->write((sc_dt::uint64)new_val); }
1418 { (*this)->write((sc_dt::uint64)new_val); }
1420 { (*this)->write((sc_dt::uint64)new_val); }
1422 { (*this)->write((sc_dt::uint64)new_val); }
1424 { (*this)->write((sc_dt::uint64)new_val); }
1426 { (*this)->write((sc_dt::uint64)new_val); }
1428 { (*this)->write((sc_dt::uint64)new_val); }
1430 inline void operator = ( const sc_dt::sc_generic_base<T>& new_val )
1432 inline void operator = ( const sc_dt::sc_signed& new_val )
1434 inline void operator = ( const sc_dt::sc_unsigned& new_val )
1436 inline void operator = ( const sc_dt::sc_bv_base& new_val )
1437 { (*this)->write((sc_dt::sc_int<W>)new_val); }
1438 inline void operator = ( const sc_dt::sc_lv_base& new_val )
1439 { (*this)->write((sc_dt::sc_int<W>)new_val); }
1473 inline void sc_int_sigref::operator = ( sc_dt::uint64 v )
1482 inline void sc_int_sigref:: operator = ( sc_dt::int64 v )
1484 *this = (sc_dt::uint64)v;
1489 *this = (sc_dt::uint64)v;
1494 *this = (sc_dt::uint64)v;
1499 *this = (sc_dt::uint64)v;
1504 *this = (sc_dt::uint64)v;
1509 *this = (sc_dt::uint64)v;
1513 inline void sc_int_sigref:: operator = ( const sc_dt::sc_generic_base<T>& v )
1518 inline void sc_int_sigref:: operator = ( const sc_dt::sc_signed& v )
1523 inline void sc_int_sigref:: operator = ( const sc_dt::sc_unsigned& v )
1557 sc_dt::sc_int_base* sc_int_part_if::part_read_target()
1562 sc_dt::uint64 sc_int_part_if::read_part( int /*left*/, int /*right*/ ) const
1572 void sc_int_part_if::write_part( sc_dt::uint64 v, int /*left*/, int /*right*/ )
1587 void sc_int_sigref::concat_set(sc_dt::int64 src, int low_i)
1593 void sc_int_sigref::concat_set(const sc_dt::sc_signed& src, int low_i)
1598 *this = (src < 0) ? (sc_dt::uint64)-1 : 0;
1602 void sc_int_sigref::concat_set(const sc_dt::sc_lv_base& src, int low_i)
1611 void sc_int_sigref::concat_set(const sc_dt::sc_unsigned& src, int low_i)
1620 void sc_int_sigref::concat_set(sc_dt::uint64 src, int low_i)