112855Sgabeblack@google.com// test05.cpp - Concatenation test 212855Sgabeblack@google.com 312855Sgabeblack@google.com#include "systemc.h" 412855Sgabeblack@google.com#include "specialized_signals/scx_signal_int.h" 512855Sgabeblack@google.com#include "specialized_signals/scx_signal_signed.h" 612855Sgabeblack@google.com#include "specialized_signals/scx_signal_uint.h" 712855Sgabeblack@google.com#include "specialized_signals/scx_signal_unsigned.h" 812855Sgabeblack@google.com 912855Sgabeblack@google.com#define COMPARE( a, b ) \ 1012855Sgabeblack@google.com{ \ 1112855Sgabeblack@google.com if ( a != b ) \ 1212855Sgabeblack@google.com { \ 1312855Sgabeblack@google.com cout << __FILE__ << "(" << __LINE__ << "): " << #a << " = " << \ 1412855Sgabeblack@google.com a << " " << #b << " = " << b << endl; \ 1512855Sgabeblack@google.com } \ 1612855Sgabeblack@google.com} 1712855Sgabeblack@google.com 1812855Sgabeblack@google.comint sc_main( int argc, char* argv[] ) 1912855Sgabeblack@google.com{ 2012855Sgabeblack@google.com sc_clock clock; 2112855Sgabeblack@google.com sc_bigint<8> sc_bigint_a; 2212855Sgabeblack@google.com sc_bigint<8> sc_bigint_b; 2312855Sgabeblack@google.com sc_biguint<8> sc_biguint_a; 2412855Sgabeblack@google.com sc_biguint<8> sc_biguint_b; 2512855Sgabeblack@google.com sc_int<8> sc_int_a; 2612855Sgabeblack@google.com sc_int<8> sc_int_b; 2712855Sgabeblack@google.com sc_uint<8> sc_uint_a; 2812855Sgabeblack@google.com sc_uint<8> sc_uint_b; 2912855Sgabeblack@google.com sc_signal<sc_bigint<8> > sig_sc_bigint_a; 3012855Sgabeblack@google.com sc_signal<sc_bigint<8> > sig_sc_bigint_b; 3112855Sgabeblack@google.com sc_signal<sc_biguint<8> > sig_sc_biguint_a; 3212855Sgabeblack@google.com sc_signal<sc_biguint<8> > sig_sc_biguint_b; 3312855Sgabeblack@google.com sc_signal<sc_int<8> > sig_sc_int_a; 3412855Sgabeblack@google.com sc_signal<sc_int<8> > sig_sc_int_b; 3512855Sgabeblack@google.com sc_signal<sc_uint<8> > sig_sc_uint_a; 3612855Sgabeblack@google.com sc_signal<sc_uint<8> > sig_sc_uint_b; 3712855Sgabeblack@google.com 3812855Sgabeblack@google.com sc_bigint_a = "10101111"; 3912855Sgabeblack@google.com sc_biguint_a = "10101111"; 4012855Sgabeblack@google.com sc_int_a = "10101111"; 4112855Sgabeblack@google.com sc_uint_a = "10101111"; 4212855Sgabeblack@google.com 4312855Sgabeblack@google.com ( sc_bigint_b, sc_biguint_b, sc_int_b, sc_uint_b ) = 4412855Sgabeblack@google.com ( sc_bigint_a, sc_biguint_a, sc_int_a, sc_uint_a ); 4512855Sgabeblack@google.com 4612855Sgabeblack@google.com COMPARE( sc_bigint_a, sc_bigint_b ) 4712855Sgabeblack@google.com COMPARE( sc_biguint_a, sc_biguint_b ) 4812855Sgabeblack@google.com COMPARE( sc_int_a, sc_int_b ) 4912855Sgabeblack@google.com COMPARE( sc_uint_a, sc_uint_b ) 5012855Sgabeblack@google.com 5112855Sgabeblack@google.com ( sig_sc_bigint_b, sig_sc_biguint_b, sig_sc_int_b, sig_sc_uint_b ) = 5212855Sgabeblack@google.com ( sc_bigint_a, sc_biguint_a, sc_int_a, sc_uint_a ); 5312855Sgabeblack@google.com 5412855Sgabeblack@google.com sc_start(1, SC_NS); 5512855Sgabeblack@google.com COMPARE( sc_bigint_a, sig_sc_bigint_b ) 5612855Sgabeblack@google.com COMPARE( sc_biguint_a, sig_sc_biguint_b ) 5712855Sgabeblack@google.com COMPARE( sc_int_a, sig_sc_int_b ) 5812855Sgabeblack@google.com COMPARE( sc_uint_a, sig_sc_uint_b ) 5912855Sgabeblack@google.com 6012855Sgabeblack@google.com sc_bigint_a = 128; 6112855Sgabeblack@google.com sc_biguint_a = 64; 6212855Sgabeblack@google.com sc_int_a = 128; 6312855Sgabeblack@google.com sc_uint_a = 64; 6412855Sgabeblack@google.com 6512855Sgabeblack@google.com ( sc_bigint_b, sc_biguint_b, sc_int_b, sc_uint_b ) = 6612855Sgabeblack@google.com ( sc_int_a, sc_uint_a, sc_bigint_a, sc_biguint_a ); 6712855Sgabeblack@google.com 6812855Sgabeblack@google.com COMPARE( sc_bigint_a, sc_bigint_b ) 6912855Sgabeblack@google.com COMPARE( sc_biguint_a, sc_biguint_b ) 7012855Sgabeblack@google.com COMPARE( sc_int_a, sc_int_b ) 7112855Sgabeblack@google.com COMPARE( sc_uint_a, sc_uint_b ) 7212855Sgabeblack@google.com 7312855Sgabeblack@google.com sig_sc_bigint_a = 87; 7412855Sgabeblack@google.com sig_sc_biguint_a = 124; 7512855Sgabeblack@google.com sig_sc_int_a = 97; 7612855Sgabeblack@google.com sig_sc_uint_a = 72; 7712855Sgabeblack@google.com sc_start(1, SC_NS); 7812855Sgabeblack@google.com 7912855Sgabeblack@google.com ( sig_sc_bigint_b, sig_sc_biguint_b, sig_sc_int_b, sig_sc_uint_b ) = 8012855Sgabeblack@google.com ( sig_sc_bigint_a, sig_sc_biguint_a, sig_sc_int_a, sig_sc_uint_a ); 8112855Sgabeblack@google.com sc_start(1, SC_NS); 8212855Sgabeblack@google.com COMPARE( sig_sc_bigint_a, sig_sc_bigint_b ) 8312855Sgabeblack@google.com COMPARE( sig_sc_biguint_a, sig_sc_biguint_b ) 8412855Sgabeblack@google.com COMPARE( sig_sc_int_a, sig_sc_int_b ) 8512855Sgabeblack@google.com COMPARE( sig_sc_uint_a, sig_sc_uint_b ) 8612855Sgabeblack@google.com 8712855Sgabeblack@google.com COMPARE( 87, sig_sc_bigint_b ) 8812855Sgabeblack@google.com COMPARE( 124, sig_sc_biguint_b ) 8912855Sgabeblack@google.com COMPARE( 97, sig_sc_int_b ) 9012855Sgabeblack@google.com COMPARE( 72, sig_sc_uint_b ) 9112855Sgabeblack@google.com 9213158Sgabeblack@google.com cout << "Program completed" << endl; 9312855Sgabeblack@google.com return 0; 9412855Sgabeblack@google.com} 95