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_int64()); \ 612855Sgabeblack@google.com bv64 = var; \ 712855Sgabeblack@google.com cout << #var << " = " << v << " : " << bv64 << " : " << buffer << " : " << var << endl; 812855Sgabeblack@google.com 912855Sgabeblack@google.com#define TEST(v) \ 1012855Sgabeblack@google.com cout << endl; \ 1112855Sgabeblack@google.com TEST_VAR( bi01, v ); \ 1212855Sgabeblack@google.com TEST_VAR( bi02, v ); \ 1312855Sgabeblack@google.com TEST_VAR( bi03, v ); \ 1412855Sgabeblack@google.com TEST_VAR( bi04, v ); \ 1512855Sgabeblack@google.com TEST_VAR( bi05, v ); \ 1612855Sgabeblack@google.com TEST_VAR( bi06, v ); \ 1712855Sgabeblack@google.com TEST_VAR( bi07, v ); \ 1812855Sgabeblack@google.com TEST_VAR( bi08, v ); \ 1912855Sgabeblack@google.com TEST_VAR( bi09, v ); \ 2012855Sgabeblack@google.com TEST_VAR( bi10, v ); \ 2112855Sgabeblack@google.com TEST_VAR( bi11, v ); \ 2212855Sgabeblack@google.com TEST_VAR( bi12, v ); \ 2312855Sgabeblack@google.com TEST_VAR( bi13, v ); \ 2412855Sgabeblack@google.com TEST_VAR( bi14, v ); \ 2512855Sgabeblack@google.com TEST_VAR( bi15, v ); \ 2612855Sgabeblack@google.com TEST_VAR( bi16, v ); \ 2712855Sgabeblack@google.com TEST_VAR( bi17, v ); \ 2812855Sgabeblack@google.com TEST_VAR( bi18, v ); \ 2912855Sgabeblack@google.com TEST_VAR( bi19, v ); \ 3012855Sgabeblack@google.com TEST_VAR( bi20, v ); \ 3112855Sgabeblack@google.com TEST_VAR( bi21, v ); \ 3212855Sgabeblack@google.com TEST_VAR( bi22, v ); \ 3312855Sgabeblack@google.com TEST_VAR( bi23, v ); \ 3412855Sgabeblack@google.com TEST_VAR( bi24, v ); \ 3512855Sgabeblack@google.com TEST_VAR( bi25, v ); \ 3612855Sgabeblack@google.com TEST_VAR( bi26, v ); \ 3712855Sgabeblack@google.com TEST_VAR( bi27, v ); \ 3812855Sgabeblack@google.com TEST_VAR( bi28, v ); \ 3912855Sgabeblack@google.com TEST_VAR( bi29, v ); \ 4012855Sgabeblack@google.com TEST_VAR( bi30, v ); \ 4112855Sgabeblack@google.com TEST_VAR( bi31, v ); \ 4212855Sgabeblack@google.com TEST_VAR( bi32, v ); \ 4312855Sgabeblack@google.com TEST_VAR( bi33, v ); \ 4412855Sgabeblack@google.com TEST_VAR( bi34, v ); \ 4512855Sgabeblack@google.com TEST_VAR( bi35, v ); \ 4612855Sgabeblack@google.com TEST_VAR( bi36, v ); \ 4712855Sgabeblack@google.com TEST_VAR( bi37, v ); \ 4812855Sgabeblack@google.com TEST_VAR( bi38, v ); \ 4912855Sgabeblack@google.com TEST_VAR( bi39, v ); \ 5012855Sgabeblack@google.com TEST_VAR( bi40, v ); \ 5112855Sgabeblack@google.com TEST_VAR( bi41, v ); \ 5212855Sgabeblack@google.com TEST_VAR( bi42, v ); \ 5312855Sgabeblack@google.com TEST_VAR( bi43, v ); \ 5412855Sgabeblack@google.com TEST_VAR( bi44, v ); \ 5512855Sgabeblack@google.com TEST_VAR( bi45, v ); \ 5612855Sgabeblack@google.com TEST_VAR( bi46, v ); \ 5712855Sgabeblack@google.com TEST_VAR( bi47, v ); \ 5812855Sgabeblack@google.com TEST_VAR( bi48, v ); \ 5912855Sgabeblack@google.com TEST_VAR( bi49, v ); \ 6012855Sgabeblack@google.com TEST_VAR( bi50, v ); \ 6112855Sgabeblack@google.com TEST_VAR( bi51, v ); \ 6212855Sgabeblack@google.com TEST_VAR( bi52, v ); \ 6312855Sgabeblack@google.com TEST_VAR( bi53, v ); \ 6412855Sgabeblack@google.com TEST_VAR( bi54, v ); \ 6512855Sgabeblack@google.com TEST_VAR( bi55, v ); \ 6612855Sgabeblack@google.com TEST_VAR( bi56, v ); \ 6712855Sgabeblack@google.com TEST_VAR( bi57, v ); \ 6812855Sgabeblack@google.com TEST_VAR( bi58, v ); \ 6912855Sgabeblack@google.com TEST_VAR( bi59, v ); \ 7012855Sgabeblack@google.com TEST_VAR( bi60, v ); \ 7112855Sgabeblack@google.com TEST_VAR( bi61, v ); \ 7212855Sgabeblack@google.com TEST_VAR( bi62, v ); \ 7312855Sgabeblack@google.com TEST_VAR( bi63, v ); \ 7412855Sgabeblack@google.com TEST_VAR( bi64, 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_bigint<1> bi01; 8012855Sgabeblack@google.com sc_bigint<2> bi02; 8112855Sgabeblack@google.com sc_bigint<3> bi03; 8212855Sgabeblack@google.com sc_bigint<4> bi04; 8312855Sgabeblack@google.com sc_bigint<5> bi05; 8412855Sgabeblack@google.com sc_bigint<6> bi06; 8512855Sgabeblack@google.com sc_bigint<7> bi07; 8612855Sgabeblack@google.com sc_bigint<8> bi08; 8712855Sgabeblack@google.com sc_bigint<9> bi09; 8812855Sgabeblack@google.com sc_bigint<10> bi10; 8912855Sgabeblack@google.com sc_bigint<11> bi11; 9012855Sgabeblack@google.com sc_bigint<12> bi12; 9112855Sgabeblack@google.com sc_bigint<13> bi13; 9212855Sgabeblack@google.com sc_bigint<14> bi14; 9312855Sgabeblack@google.com sc_bigint<15> bi15; 9412855Sgabeblack@google.com sc_bigint<16> bi16; 9512855Sgabeblack@google.com sc_bigint<17> bi17; 9612855Sgabeblack@google.com sc_bigint<18> bi18; 9712855Sgabeblack@google.com sc_bigint<19> bi19; 9812855Sgabeblack@google.com sc_bigint<20> bi20; 9912855Sgabeblack@google.com sc_bigint<21> bi21; 10012855Sgabeblack@google.com sc_bigint<22> bi22; 10112855Sgabeblack@google.com sc_bigint<23> bi23; 10212855Sgabeblack@google.com sc_bigint<24> bi24; 10312855Sgabeblack@google.com sc_bigint<25> bi25; 10412855Sgabeblack@google.com sc_bigint<26> bi26; 10512855Sgabeblack@google.com sc_bigint<27> bi27; 10612855Sgabeblack@google.com sc_bigint<28> bi28; 10712855Sgabeblack@google.com sc_bigint<29> bi29; 10812855Sgabeblack@google.com sc_bigint<30> bi30; 10912855Sgabeblack@google.com sc_bigint<31> bi31; 11012855Sgabeblack@google.com sc_bigint<32> bi32; 11112855Sgabeblack@google.com sc_bigint<33> bi33; 11212855Sgabeblack@google.com sc_bigint<34> bi34; 11312855Sgabeblack@google.com sc_bigint<35> bi35; 11412855Sgabeblack@google.com sc_bigint<36> bi36; 11512855Sgabeblack@google.com sc_bigint<37> bi37; 11612855Sgabeblack@google.com sc_bigint<38> bi38; 11712855Sgabeblack@google.com sc_bigint<39> bi39; 11812855Sgabeblack@google.com sc_bigint<40> bi40; 11912855Sgabeblack@google.com sc_bigint<41> bi41; 12012855Sgabeblack@google.com sc_bigint<42> bi42; 12112855Sgabeblack@google.com sc_bigint<43> bi43; 12212855Sgabeblack@google.com sc_bigint<44> bi44; 12312855Sgabeblack@google.com sc_bigint<45> bi45; 12412855Sgabeblack@google.com sc_bigint<46> bi46; 12512855Sgabeblack@google.com sc_bigint<47> bi47; 12612855Sgabeblack@google.com sc_bigint<48> bi48; 12712855Sgabeblack@google.com sc_bigint<49> bi49; 12812855Sgabeblack@google.com sc_bigint<50> bi50; 12912855Sgabeblack@google.com sc_bigint<51> bi51; 13012855Sgabeblack@google.com sc_bigint<52> bi52; 13112855Sgabeblack@google.com sc_bigint<53> bi53; 13212855Sgabeblack@google.com sc_bigint<54> bi54; 13312855Sgabeblack@google.com sc_bigint<55> bi55; 13412855Sgabeblack@google.com sc_bigint<56> bi56; 13512855Sgabeblack@google.com sc_bigint<57> bi57; 13612855Sgabeblack@google.com sc_bigint<58> bi58; 13712855Sgabeblack@google.com sc_bigint<59> bi59; 13812855Sgabeblack@google.com sc_bigint<60> bi60; 13912855Sgabeblack@google.com sc_bigint<61> bi61; 14012855Sgabeblack@google.com sc_bigint<62> bi62; 14112855Sgabeblack@google.com sc_bigint<63> bi63; 14212855Sgabeblack@google.com sc_bigint<64> bi64; 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( bi64, &values[i]); 17412855Sgabeblack@google.com } 17512855Sgabeblack@google.com 17612855Sgabeblack@google.com return 0; 17712855Sgabeblack@google.com} 178