diff options
author | Gabe Black <gabeblack@google.com> | 2018-05-24 01:37:55 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-08-08 10:09:54 +0000 |
commit | 16fa8d7cc8c92f5ab879e4cf9c6c0bbb3567860f (patch) | |
tree | 7b6faaacb4574a555e561534aa4a8508c0624c32 /src/systemc/tests/systemc/datatypes/misc/concat/test05 | |
parent | 7235d3b5211d0ba8f528d930a4c1e7ad62eec51a (diff) | |
download | gem5-16fa8d7cc8c92f5ab879e4cf9c6c0bbb3567860f.tar.xz |
systemc: Import tests from the Accellera systemc distribution.
Change-Id: Iad76b398949a55d768a34d027a2d8e3739953da6
Reviewed-on: https://gem5-review.googlesource.com/10845
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc/tests/systemc/datatypes/misc/concat/test05')
-rw-r--r-- | src/systemc/tests/systemc/datatypes/misc/concat/test05/golden/test05.log | 2 | ||||
-rw-r--r-- | src/systemc/tests/systemc/datatypes/misc/concat/test05/test05.cpp | 94 |
2 files changed, 96 insertions, 0 deletions
diff --git a/src/systemc/tests/systemc/datatypes/misc/concat/test05/golden/test05.log b/src/systemc/tests/systemc/datatypes/misc/concat/test05/golden/test05.log new file mode 100644 index 000000000..0d934d401 --- /dev/null +++ b/src/systemc/tests/systemc/datatypes/misc/concat/test05/golden/test05.log @@ -0,0 +1,2 @@ +SystemC Simulation +Program completed diff --git a/src/systemc/tests/systemc/datatypes/misc/concat/test05/test05.cpp b/src/systemc/tests/systemc/datatypes/misc/concat/test05/test05.cpp new file mode 100644 index 000000000..8e2559ce9 --- /dev/null +++ b/src/systemc/tests/systemc/datatypes/misc/concat/test05/test05.cpp @@ -0,0 +1,94 @@ +// 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<sc_bigint<8> > sig_sc_bigint_a; + sc_signal<sc_bigint<8> > sig_sc_bigint_b; + sc_signal<sc_biguint<8> > sig_sc_biguint_a; + sc_signal<sc_biguint<8> > sig_sc_biguint_b; + sc_signal<sc_int<8> > sig_sc_int_a; + sc_signal<sc_int<8> > sig_sc_int_b; + sc_signal<sc_uint<8> > sig_sc_uint_a; + sc_signal<sc_uint<8> > 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; +} |