1#include "systemc.h" 2 3#define TEST_VAR(var, v) \ 4 var = v; \ 5 sprintf(buffer, "%16llx", var.to_uint64()); \ 6 bv64 = var; \ 7 cout << #var << " = " << v << " : " << bv64 << " : " << buffer << endl; 8 9#define TEST(v) \ 10 cout << endl; \ 11 TEST_VAR( bu01, v ); \ 12 TEST_VAR( bu02, v ); \ 13 TEST_VAR( bu03, v ); \ 14 TEST_VAR( bu04, v ); \ 15 TEST_VAR( bu05, v ); \ 16 TEST_VAR( bu06, v ); \ 17 TEST_VAR( bu07, v ); \ 18 TEST_VAR( bu08, v ); \ 19 TEST_VAR( bu09, v ); \ 20 TEST_VAR( bu10, v ); \ 21 TEST_VAR( bu11, v ); \ 22 TEST_VAR( bu12, v ); \ 23 TEST_VAR( bu13, v ); \ 24 TEST_VAR( bu14, v ); \ 25 TEST_VAR( bu15, v ); \ 26 TEST_VAR( bu16, v ); \ 27 TEST_VAR( bu17, v ); \ 28 TEST_VAR( bu18, v ); \ 29 TEST_VAR( bu19, v ); \ 30 TEST_VAR( bu20, v ); \ 31 TEST_VAR( bu21, v ); \ 32 TEST_VAR( bu22, v ); \ 33 TEST_VAR( bu23, v ); \ 34 TEST_VAR( bu24, v ); \ 35 TEST_VAR( bu25, v ); \ 36 TEST_VAR( bu26, v ); \ 37 TEST_VAR( bu27, v ); \ 38 TEST_VAR( bu28, v ); \ 39 TEST_VAR( bu29, v ); \ 40 TEST_VAR( bu30, v ); \ 41 TEST_VAR( bu31, v ); \ 42 TEST_VAR( bu32, v ); \ 43 TEST_VAR( bu33, v ); \ 44 TEST_VAR( bu34, v ); \ 45 TEST_VAR( bu35, v ); \ 46 TEST_VAR( bu36, v ); \ 47 TEST_VAR( bu37, v ); \ 48 TEST_VAR( bu38, v ); \ 49 TEST_VAR( bu39, v ); \ 50 TEST_VAR( bu40, v ); \ 51 TEST_VAR( bu41, v ); \ 52 TEST_VAR( bu42, v ); \ 53 TEST_VAR( bu43, v ); \ 54 TEST_VAR( bu44, v ); \ 55 TEST_VAR( bu45, v ); \ 56 TEST_VAR( bu46, v ); \ 57 TEST_VAR( bu47, v ); \ 58 TEST_VAR( bu48, v ); \ 59 TEST_VAR( bu49, v ); \ 60 TEST_VAR( bu50, v ); \ 61 TEST_VAR( bu51, v ); \ 62 TEST_VAR( bu52, v ); \ 63 TEST_VAR( bu53, v ); \ 64 TEST_VAR( bu54, v ); \ 65 TEST_VAR( bu55, v ); \ 66 TEST_VAR( bu56, v ); \ 67 TEST_VAR( bu57, v ); \ 68 TEST_VAR( bu58, v ); \ 69 TEST_VAR( bu59, v ); \ 70 TEST_VAR( bu60, v ); \ 71 TEST_VAR( bu61, v ); \ 72 TEST_VAR( bu62, v ); \ 73 TEST_VAR( bu63, v ); \ 74 TEST_VAR( bu64, v ); 75 76int sc_main(int argc, char* argv[]) 77{ 78 char buffer[256]; 79 sc_biguint<1> bu01; 80 sc_biguint<2> bu02; 81 sc_biguint<3> bu03; 82 sc_biguint<4> bu04; 83 sc_biguint<5> bu05; 84 sc_biguint<6> bu06; 85 sc_biguint<7> bu07; 86 sc_biguint<8> bu08; 87 sc_biguint<9> bu09; 88 sc_biguint<10> bu10; 89 sc_biguint<11> bu11; 90 sc_biguint<12> bu12; 91 sc_biguint<13> bu13; 92 sc_biguint<14> bu14; 93 sc_biguint<15> bu15; 94 sc_biguint<16> bu16; 95 sc_biguint<17> bu17; 96 sc_biguint<18> bu18; 97 sc_biguint<19> bu19; 98 sc_biguint<20> bu20; 99 sc_biguint<21> bu21; 100 sc_biguint<22> bu22; 101 sc_biguint<23> bu23; 102 sc_biguint<24> bu24; 103 sc_biguint<25> bu25; 104 sc_biguint<26> bu26; 105 sc_biguint<27> bu27; 106 sc_biguint<28> bu28; 107 sc_biguint<29> bu29; 108 sc_biguint<30> bu30; 109 sc_biguint<31> bu31; 110 sc_biguint<32> bu32; 111 sc_biguint<33> bu33; 112 sc_biguint<34> bu34; 113 sc_biguint<35> bu35; 114 sc_biguint<36> bu36; 115 sc_biguint<37> bu37; 116 sc_biguint<38> bu38; 117 sc_biguint<39> bu39; 118 sc_biguint<40> bu40; 119 sc_biguint<41> bu41; 120 sc_biguint<42> bu42; 121 sc_biguint<43> bu43; 122 sc_biguint<44> bu44; 123 sc_biguint<45> bu45; 124 sc_biguint<46> bu46; 125 sc_biguint<47> bu47; 126 sc_biguint<48> bu48; 127 sc_biguint<49> bu49; 128 sc_biguint<50> bu50; 129 sc_biguint<51> bu51; 130 sc_biguint<52> bu52; 131 sc_biguint<53> bu53; 132 sc_biguint<54> bu54; 133 sc_biguint<55> bu55; 134 sc_biguint<56> bu56; 135 sc_biguint<57> bu57; 136 sc_biguint<58> bu58; 137 sc_biguint<59> bu59; 138 sc_biguint<60> bu60; 139 sc_biguint<61> bu61; 140 sc_biguint<62> bu62; 141 sc_biguint<63> bu63; 142 sc_biguint<64> bu64; 143 144 sc_bv<64> bv64; 145 146 int i; 147 148 char values[] = "1111" 149 "1110" 150 "1101" 151 "1100" 152 "1011" 153 "1010" 154 "1001" 155 "1000" 156 "0111" 157 "0110" 158 "0101" 159 "0100" 160 "0011" 161 "0010" 162 "0001" 163 "0000"; 164 TEST("101"); 165 166 TEST( "11111110110111001011101010011000" ); 167 TEST( "1111111111111111111111111111111111111111111111111111111111111111" ); 168 169 TEST( values ); 170 171 for ( i = 0; i < (int)strlen(values); i++ ) 172 { 173 TEST_VAR( bu64, &values[i]); 174 } 175 176 return 0; 177} 178