112855Sgabeblack@google.com#include "systemc.h" 212855Sgabeblack@google.com 312855Sgabeblack@google.com#define TEST_VAR(var, v) \ 412855Sgabeblack@google.com var = v; \ 512855Sgabeblack@google.com sprintf(buffer, "%16llx", var.to_uint64()); \ 612855Sgabeblack@google.com bv64 = var; \ 712855Sgabeblack@google.com cout << #var << " = " << v << " : " << bv64 << " : " << buffer << endl; 812855Sgabeblack@google.com 912855Sgabeblack@google.com#define TEST(v) \ 1012855Sgabeblack@google.com cout << endl; \ 1112855Sgabeblack@google.com TEST_VAR( bu01, v ); \ 1212855Sgabeblack@google.com TEST_VAR( bu02, v ); \ 1312855Sgabeblack@google.com TEST_VAR( bu03, v ); \ 1412855Sgabeblack@google.com TEST_VAR( bu04, v ); \ 1512855Sgabeblack@google.com TEST_VAR( bu05, v ); \ 1612855Sgabeblack@google.com TEST_VAR( bu06, v ); \ 1712855Sgabeblack@google.com TEST_VAR( bu07, v ); \ 1812855Sgabeblack@google.com TEST_VAR( bu08, v ); \ 1912855Sgabeblack@google.com TEST_VAR( bu09, v ); \ 2012855Sgabeblack@google.com TEST_VAR( bu10, v ); \ 2112855Sgabeblack@google.com TEST_VAR( bu11, v ); \ 2212855Sgabeblack@google.com TEST_VAR( bu12, v ); \ 2312855Sgabeblack@google.com TEST_VAR( bu13, v ); \ 2412855Sgabeblack@google.com TEST_VAR( bu14, v ); \ 2512855Sgabeblack@google.com TEST_VAR( bu15, v ); \ 2612855Sgabeblack@google.com TEST_VAR( bu16, v ); \ 2712855Sgabeblack@google.com TEST_VAR( bu17, v ); \ 2812855Sgabeblack@google.com TEST_VAR( bu18, v ); \ 2912855Sgabeblack@google.com TEST_VAR( bu19, v ); \ 3012855Sgabeblack@google.com TEST_VAR( bu20, v ); \ 3112855Sgabeblack@google.com TEST_VAR( bu21, v ); \ 3212855Sgabeblack@google.com TEST_VAR( bu22, v ); \ 3312855Sgabeblack@google.com TEST_VAR( bu23, v ); \ 3412855Sgabeblack@google.com TEST_VAR( bu24, v ); \ 3512855Sgabeblack@google.com TEST_VAR( bu25, v ); \ 3612855Sgabeblack@google.com TEST_VAR( bu26, v ); \ 3712855Sgabeblack@google.com TEST_VAR( bu27, v ); \ 3812855Sgabeblack@google.com TEST_VAR( bu28, v ); \ 3912855Sgabeblack@google.com TEST_VAR( bu29, v ); \ 4012855Sgabeblack@google.com TEST_VAR( bu30, v ); \ 4112855Sgabeblack@google.com TEST_VAR( bu31, v ); \ 4212855Sgabeblack@google.com TEST_VAR( bu32, v ); \ 4312855Sgabeblack@google.com TEST_VAR( bu33, v ); \ 4412855Sgabeblack@google.com TEST_VAR( bu34, v ); \ 4512855Sgabeblack@google.com TEST_VAR( bu35, v ); \ 4612855Sgabeblack@google.com TEST_VAR( bu36, v ); \ 4712855Sgabeblack@google.com TEST_VAR( bu37, v ); \ 4812855Sgabeblack@google.com TEST_VAR( bu38, v ); \ 4912855Sgabeblack@google.com TEST_VAR( bu39, v ); \ 5012855Sgabeblack@google.com TEST_VAR( bu40, v ); \ 5112855Sgabeblack@google.com TEST_VAR( bu41, v ); \ 5212855Sgabeblack@google.com TEST_VAR( bu42, v ); \ 5312855Sgabeblack@google.com TEST_VAR( bu43, v ); \ 5412855Sgabeblack@google.com TEST_VAR( bu44, v ); \ 5512855Sgabeblack@google.com TEST_VAR( bu45, v ); \ 5612855Sgabeblack@google.com TEST_VAR( bu46, v ); \ 5712855Sgabeblack@google.com TEST_VAR( bu47, v ); \ 5812855Sgabeblack@google.com TEST_VAR( bu48, v ); \ 5912855Sgabeblack@google.com TEST_VAR( bu49, v ); \ 6012855Sgabeblack@google.com TEST_VAR( bu50, v ); \ 6112855Sgabeblack@google.com TEST_VAR( bu51, v ); \ 6212855Sgabeblack@google.com TEST_VAR( bu52, v ); \ 6312855Sgabeblack@google.com TEST_VAR( bu53, v ); \ 6412855Sgabeblack@google.com TEST_VAR( bu54, v ); \ 6512855Sgabeblack@google.com TEST_VAR( bu55, v ); \ 6612855Sgabeblack@google.com TEST_VAR( bu56, v ); \ 6712855Sgabeblack@google.com TEST_VAR( bu57, v ); \ 6812855Sgabeblack@google.com TEST_VAR( bu58, v ); \ 6912855Sgabeblack@google.com TEST_VAR( bu59, v ); \ 7012855Sgabeblack@google.com TEST_VAR( bu60, v ); \ 7112855Sgabeblack@google.com TEST_VAR( bu61, v ); \ 7212855Sgabeblack@google.com TEST_VAR( bu62, v ); \ 7312855Sgabeblack@google.com TEST_VAR( bu63, v ); \ 7412855Sgabeblack@google.com TEST_VAR( bu64, v ); 7512855Sgabeblack@google.com 7612855Sgabeblack@google.comint sc_main(int argc, char* argv[]) 7712855Sgabeblack@google.com{ 7812855Sgabeblack@google.com char buffer[256]; 7912855Sgabeblack@google.com sc_biguint<1> bu01; 8012855Sgabeblack@google.com sc_biguint<2> bu02; 8112855Sgabeblack@google.com sc_biguint<3> bu03; 8212855Sgabeblack@google.com sc_biguint<4> bu04; 8312855Sgabeblack@google.com sc_biguint<5> bu05; 8412855Sgabeblack@google.com sc_biguint<6> bu06; 8512855Sgabeblack@google.com sc_biguint<7> bu07; 8612855Sgabeblack@google.com sc_biguint<8> bu08; 8712855Sgabeblack@google.com sc_biguint<9> bu09; 8812855Sgabeblack@google.com sc_biguint<10> bu10; 8912855Sgabeblack@google.com sc_biguint<11> bu11; 9012855Sgabeblack@google.com sc_biguint<12> bu12; 9112855Sgabeblack@google.com sc_biguint<13> bu13; 9212855Sgabeblack@google.com sc_biguint<14> bu14; 9312855Sgabeblack@google.com sc_biguint<15> bu15; 9412855Sgabeblack@google.com sc_biguint<16> bu16; 9512855Sgabeblack@google.com sc_biguint<17> bu17; 9612855Sgabeblack@google.com sc_biguint<18> bu18; 9712855Sgabeblack@google.com sc_biguint<19> bu19; 9812855Sgabeblack@google.com sc_biguint<20> bu20; 9912855Sgabeblack@google.com sc_biguint<21> bu21; 10012855Sgabeblack@google.com sc_biguint<22> bu22; 10112855Sgabeblack@google.com sc_biguint<23> bu23; 10212855Sgabeblack@google.com sc_biguint<24> bu24; 10312855Sgabeblack@google.com sc_biguint<25> bu25; 10412855Sgabeblack@google.com sc_biguint<26> bu26; 10512855Sgabeblack@google.com sc_biguint<27> bu27; 10612855Sgabeblack@google.com sc_biguint<28> bu28; 10712855Sgabeblack@google.com sc_biguint<29> bu29; 10812855Sgabeblack@google.com sc_biguint<30> bu30; 10912855Sgabeblack@google.com sc_biguint<31> bu31; 11012855Sgabeblack@google.com sc_biguint<32> bu32; 11112855Sgabeblack@google.com sc_biguint<33> bu33; 11212855Sgabeblack@google.com sc_biguint<34> bu34; 11312855Sgabeblack@google.com sc_biguint<35> bu35; 11412855Sgabeblack@google.com sc_biguint<36> bu36; 11512855Sgabeblack@google.com sc_biguint<37> bu37; 11612855Sgabeblack@google.com sc_biguint<38> bu38; 11712855Sgabeblack@google.com sc_biguint<39> bu39; 11812855Sgabeblack@google.com sc_biguint<40> bu40; 11912855Sgabeblack@google.com sc_biguint<41> bu41; 12012855Sgabeblack@google.com sc_biguint<42> bu42; 12112855Sgabeblack@google.com sc_biguint<43> bu43; 12212855Sgabeblack@google.com sc_biguint<44> bu44; 12312855Sgabeblack@google.com sc_biguint<45> bu45; 12412855Sgabeblack@google.com sc_biguint<46> bu46; 12512855Sgabeblack@google.com sc_biguint<47> bu47; 12612855Sgabeblack@google.com sc_biguint<48> bu48; 12712855Sgabeblack@google.com sc_biguint<49> bu49; 12812855Sgabeblack@google.com sc_biguint<50> bu50; 12912855Sgabeblack@google.com sc_biguint<51> bu51; 13012855Sgabeblack@google.com sc_biguint<52> bu52; 13112855Sgabeblack@google.com sc_biguint<53> bu53; 13212855Sgabeblack@google.com sc_biguint<54> bu54; 13312855Sgabeblack@google.com sc_biguint<55> bu55; 13412855Sgabeblack@google.com sc_biguint<56> bu56; 13512855Sgabeblack@google.com sc_biguint<57> bu57; 13612855Sgabeblack@google.com sc_biguint<58> bu58; 13712855Sgabeblack@google.com sc_biguint<59> bu59; 13812855Sgabeblack@google.com sc_biguint<60> bu60; 13912855Sgabeblack@google.com sc_biguint<61> bu61; 14012855Sgabeblack@google.com sc_biguint<62> bu62; 14112855Sgabeblack@google.com sc_biguint<63> bu63; 14212855Sgabeblack@google.com sc_biguint<64> bu64; 14312855Sgabeblack@google.com 14412855Sgabeblack@google.com sc_bv<64> bv64; 14512855Sgabeblack@google.com 14612855Sgabeblack@google.com int i; 14712855Sgabeblack@google.com 14812855Sgabeblack@google.com char values[] = "1111" 14912855Sgabeblack@google.com "1110" 15012855Sgabeblack@google.com "1101" 15112855Sgabeblack@google.com "1100" 15212855Sgabeblack@google.com "1011" 15312855Sgabeblack@google.com "1010" 15412855Sgabeblack@google.com "1001" 15512855Sgabeblack@google.com "1000" 15612855Sgabeblack@google.com "0111" 15712855Sgabeblack@google.com "0110" 15812855Sgabeblack@google.com "0101" 15912855Sgabeblack@google.com "0100" 16012855Sgabeblack@google.com "0011" 16112855Sgabeblack@google.com "0010" 16212855Sgabeblack@google.com "0001" 16312855Sgabeblack@google.com "0000"; 16412855Sgabeblack@google.com TEST("101"); 16512855Sgabeblack@google.com 16612855Sgabeblack@google.com TEST( "11111110110111001011101010011000" ); 16712855Sgabeblack@google.com TEST( "1111111111111111111111111111111111111111111111111111111111111111" ); 16812855Sgabeblack@google.com 16912855Sgabeblack@google.com TEST( values ); 17012855Sgabeblack@google.com 17112855Sgabeblack@google.com for ( i = 0; i < (int)strlen(values); i++ ) 17212855Sgabeblack@google.com { 17312855Sgabeblack@google.com TEST_VAR( bu64, &values[i]); 17412855Sgabeblack@google.com } 17512855Sgabeblack@google.com 17612855Sgabeblack@google.com return 0; 17712855Sgabeblack@google.com} 178