SystemC
2.3.2
Accellera SystemC proof-of-concept library
|
Proxy base class for vector data types. More...
#include "sysc/kernel/sc_cmnhdr.h"
#include "sysc/datatypes/int/sc_signed.h"
#include "sysc/datatypes/int/sc_unsigned.h"
#include "sysc/datatypes/int/sc_int_base.h"
#include "sysc/datatypes/int/sc_uint_base.h"
#include "sysc/datatypes/bit/sc_bit.h"
#include "sysc/datatypes/bit/sc_bit_ids.h"
#include "sysc/datatypes/bit/sc_logic.h"
#include "sysc/kernel/sc_macros.h"
Go to the source code of this file.
Namespaces | |
sc_dt | |
Macros | |
#define | DECL_BITWISE_AND_OP_T(tp) |
#define | DECL_BITWISE_OR_OP_T(tp) |
#define | DECL_BITWISE_XOR_OP_T(tp) |
#define | DECL_REL_OP_T(tp) |
#define | DEFN_REL_OP_T(tp) |
Functions | |
SC_API void | sc_dt::sc_proxy_out_of_bounds (const char *msg=NULL, int64 val=0) |
template<class X , class Y > | |
void | sc_dt::assign_p_ (sc_proxy< X > &px, const sc_proxy< Y > &py) |
template<class X , class T > | |
void | sc_dt::assign_v_ (sc_proxy< X > &px, const T &a) |
SC_API const std::string | sc_dt::convert_to_bin (const char *s) |
SC_API const std::string | sc_dt::convert_to_fmt (const std::string &s, sc_numrep numrep, bool) |
template<class X , class Y > | |
X & | sc_dt::operator&= (sc_proxy< X > &px, const sc_proxy< Y > &py) |
template<class X , class Y > | |
const sc_lv_base | sc_dt::operator& (const sc_proxy< X > &px, const sc_proxy< Y > &py) |
template<class X , class Y > | |
X & | sc_dt::operator|= (sc_proxy< X > &px, const sc_proxy< Y > &py) |
template<class X , class Y > | |
const sc_lv_base | sc_dt::operator| (const sc_proxy< X > &px, const sc_proxy< Y > &py) |
template<class X , class Y > | |
X & | sc_dt::operator^= (sc_proxy< X > &px, const sc_proxy< Y > &py) |
template<class X , class Y > | |
const sc_lv_base | sc_dt::operator^ (const sc_proxy< X > &px, const sc_proxy< Y > &py) |
template<class X , class Y > | |
bool | sc_dt::operator== (const sc_proxy< X > &px, const sc_proxy< Y > &py) |
template<class X , class Y > | |
bool | sc_dt::operator!= (const sc_proxy< X > &px, const sc_proxy< Y > &py) |
template<class X > | |
void | sc_dt::get_words_ (const X &x, int wi, sc_digit &x_dw, sc_digit &x_cw) |
template<class X > | |
void | sc_dt::set_words_ (X &x, int wi, sc_digit x_dw, sc_digit x_cw) |
template<class X > | |
void | sc_dt::extend_sign_w_ (X &x, int wi, bool sign) |
template<class X > | |
void | sc_dt::assign_v_ (sc_proxy< X > &px, const sc_int_base &a) |
template<class X > | |
void | sc_dt::assign_v_ (sc_proxy< X > &px, const sc_signed &a) |
template<class X > | |
void | sc_dt::assign_v_ (sc_proxy< X > &px, const sc_uint_base &a) |
template<class X > | |
void | sc_dt::assign_v_ (sc_proxy< X > &px, const sc_unsigned &a) |
template<class X , class Y > | |
X & | sc_dt::b_and_assign_ (sc_proxy< X > &px, const sc_proxy< Y > &py) |
template<class X , class Y > | |
X & | sc_dt::b_or_assign_ (sc_proxy< X > &px, const sc_proxy< Y > &py) |
template<class X , class Y > | |
X & | sc_dt::b_xor_assign_ (sc_proxy< X > &a, const sc_proxy< Y > &b) |
template<class X > | |
const sc_lv_base | sc_dt::lrotate (const sc_proxy< X > &x, int n) |
template<class X > | |
const sc_lv_base | sc_dt::rrotate (const sc_proxy< X > &x, int n) |
template<class X > | |
const sc_lv_base | sc_dt::reverse (const sc_proxy< X > &x) |
template<class X > | |
sc_proxy< X >::value_type | sc_dt::and_reduce (const sc_proxy< X > &a) |
template<class X > | |
sc_proxy< X >::value_type | sc_dt::nand_reduce (const sc_proxy< X > &a) |
template<class X > | |
sc_proxy< X >::value_type | sc_dt::or_reduce (const sc_proxy< X > &a) |
template<class X > | |
sc_proxy< X >::value_type | sc_dt::nor_reduce (const sc_proxy< X > &a) |
template<class X > | |
sc_proxy< X >::value_type | sc_dt::xor_reduce (const sc_proxy< X > &a) |
template<class X > | |
sc_proxy< X >::value_type | sc_dt::xnor_reduce (const sc_proxy< X > &a) |
template<class X > | |
inline ::std::ostream & | sc_dt::operator<< (::std::ostream &os, const sc_proxy< X > &a) |
template<class X > | |
inline ::std::istream & | sc_dt::operator>> (::std::istream &is, sc_proxy< X > &a) |
Variables | |
const int | sc_dt::SC_DIGIT_SIZE = BITS_PER_BYTE * sizeof( sc_digit ) |
const sc_digit | sc_dt::SC_DIGIT_ZERO = (sc_digit)0 |
const sc_digit | sc_dt::SC_DIGIT_ONE = (sc_digit)1 |
const sc_digit | sc_dt::SC_DIGIT_TWO = (sc_digit)2 |
Proxy base class for vector data types.
This class is created for several purposes: 1) hiding operators from the global namespace that would be otherwise found by Koenig lookup 2) avoiding repeating the same operations in every class including proxies that could also be achieved by common base class, but this method allows 3) improve performance by using non-virtual functions
Original Author: Gene Bushuyev, Synopsys, Inc.
Definition in file sc_proxy.h.
#define DECL_BITWISE_AND_OP_T | ( | tp | ) |
Definition at line 557 of file sc_proxy.h.
#define DECL_BITWISE_OR_OP_T | ( | tp | ) |
Definition at line 594 of file sc_proxy.h.
#define DECL_BITWISE_XOR_OP_T | ( | tp | ) |
Definition at line 631 of file sc_proxy.h.
#define DECL_REL_OP_T | ( | tp | ) |
Definition at line 667 of file sc_proxy.h.
#define DEFN_REL_OP_T | ( | tp | ) |
Definition at line 1338 of file sc_proxy.h.