// test05.cpp - Concatenation test #include "systemc.h" #include "specialized_signals/scx_signal_int.h" #include "specialized_signals/scx_signal_signed.h" #include "specialized_signals/scx_signal_uint.h" #include "specialized_signals/scx_signal_unsigned.h" #define COMPARE( a, b ) \ { \ if ( a != b ) \ { \ cout << __FILE__ << "(" << __LINE__ << "): " << #a << " = " << \ a << " " << #b << " = " << b << endl; \ } \ } int sc_main( int argc, char* argv[] ) { sc_clock clock; sc_bigint<8> sc_bigint_a; sc_bigint<8> sc_bigint_b; sc_biguint<8> sc_biguint_a; sc_biguint<8> sc_biguint_b; sc_int<8> sc_int_a; sc_int<8> sc_int_b; sc_uint<8> sc_uint_a; sc_uint<8> sc_uint_b; sc_signal > sig_sc_bigint_a; sc_signal > sig_sc_bigint_b; sc_signal > sig_sc_biguint_a; sc_signal > sig_sc_biguint_b; sc_signal > sig_sc_int_a; sc_signal > sig_sc_int_b; sc_signal > sig_sc_uint_a; sc_signal > sig_sc_uint_b; sc_bigint_a = "10101111"; sc_biguint_a = "10101111"; sc_int_a = "10101111"; sc_uint_a = "10101111"; ( sc_bigint_b, sc_biguint_b, sc_int_b, sc_uint_b ) = ( sc_bigint_a, sc_biguint_a, sc_int_a, sc_uint_a ); COMPARE( sc_bigint_a, sc_bigint_b ) COMPARE( sc_biguint_a, sc_biguint_b ) COMPARE( sc_int_a, sc_int_b ) COMPARE( sc_uint_a, sc_uint_b ) ( sig_sc_bigint_b, sig_sc_biguint_b, sig_sc_int_b, sig_sc_uint_b ) = ( sc_bigint_a, sc_biguint_a, sc_int_a, sc_uint_a ); sc_start(1, SC_NS); COMPARE( sc_bigint_a, sig_sc_bigint_b ) COMPARE( sc_biguint_a, sig_sc_biguint_b ) COMPARE( sc_int_a, sig_sc_int_b ) COMPARE( sc_uint_a, sig_sc_uint_b ) sc_bigint_a = 128; sc_biguint_a = 64; sc_int_a = 128; sc_uint_a = 64; ( sc_bigint_b, sc_biguint_b, sc_int_b, sc_uint_b ) = ( sc_int_a, sc_uint_a, sc_bigint_a, sc_biguint_a ); COMPARE( sc_bigint_a, sc_bigint_b ) COMPARE( sc_biguint_a, sc_biguint_b ) COMPARE( sc_int_a, sc_int_b ) COMPARE( sc_uint_a, sc_uint_b ) sig_sc_bigint_a = 87; sig_sc_biguint_a = 124; sig_sc_int_a = 97; sig_sc_uint_a = 72; sc_start(1, SC_NS); ( sig_sc_bigint_b, sig_sc_biguint_b, sig_sc_int_b, sig_sc_uint_b ) = ( sig_sc_bigint_a, sig_sc_biguint_a, sig_sc_int_a, sig_sc_uint_a ); sc_start(1, SC_NS); COMPARE( sig_sc_bigint_a, sig_sc_bigint_b ) COMPARE( sig_sc_biguint_a, sig_sc_biguint_b ) COMPARE( sig_sc_int_a, sig_sc_int_b ) COMPARE( sig_sc_uint_a, sig_sc_uint_b ) COMPARE( 87, sig_sc_bigint_b ) COMPARE( 124, sig_sc_biguint_b ) COMPARE( 97, sig_sc_int_b ) COMPARE( 72, sig_sc_uint_b ) cerr << "Program completed" << endl; return 0; }