test02.cpp revision 12855:588919e0e4aa
1#include "systemc.h"
2
3#define TEST_VAR(var, v) \
4    var = v; \
5	sprintf(buffer, "%16llx", var.to_int64()); \
6	bv64 = var; \
7	cout << #var << " = " << v << " : " << bv64 << " : " << buffer << " : " << var << endl;
8
9#define TEST(v) \
10	cout << endl; \
11	TEST_VAR(  bi01, v ); \
12	TEST_VAR(  bi02, v ); \
13	TEST_VAR(  bi03, v ); \
14	TEST_VAR(  bi04, v ); \
15	TEST_VAR(  bi05, v ); \
16	TEST_VAR(  bi06, v ); \
17	TEST_VAR(  bi07, v ); \
18	TEST_VAR(  bi08, v ); \
19	TEST_VAR(  bi09, v ); \
20	TEST_VAR(  bi10, v ); \
21	TEST_VAR(  bi11, v ); \
22	TEST_VAR(  bi12, v ); \
23	TEST_VAR(  bi13, v ); \
24	TEST_VAR(  bi14, v ); \
25	TEST_VAR(  bi15, v ); \
26	TEST_VAR(  bi16, v ); \
27	TEST_VAR(  bi17, v ); \
28	TEST_VAR(  bi18, v ); \
29	TEST_VAR(  bi19, v ); \
30	TEST_VAR(  bi20, v ); \
31	TEST_VAR(  bi21, v ); \
32	TEST_VAR(  bi22, v ); \
33	TEST_VAR(  bi23, v ); \
34	TEST_VAR(  bi24, v ); \
35	TEST_VAR(  bi25, v ); \
36	TEST_VAR(  bi26, v ); \
37	TEST_VAR(  bi27, v ); \
38	TEST_VAR(  bi28, v ); \
39	TEST_VAR(  bi29, v ); \
40	TEST_VAR(  bi30, v ); \
41	TEST_VAR(  bi31, v ); \
42	TEST_VAR(  bi32, v ); \
43	TEST_VAR(  bi33, v ); \
44	TEST_VAR(  bi34, v ); \
45	TEST_VAR(  bi35, v ); \
46	TEST_VAR(  bi36, v ); \
47	TEST_VAR(  bi37, v ); \
48	TEST_VAR(  bi38, v ); \
49	TEST_VAR(  bi39, v ); \
50	TEST_VAR(  bi40, v ); \
51	TEST_VAR(  bi41, v ); \
52	TEST_VAR(  bi42, v ); \
53	TEST_VAR(  bi43, v ); \
54	TEST_VAR(  bi44, v ); \
55	TEST_VAR(  bi45, v ); \
56	TEST_VAR(  bi46, v ); \
57	TEST_VAR(  bi47, v ); \
58	TEST_VAR(  bi48, v ); \
59	TEST_VAR(  bi49, v ); \
60	TEST_VAR(  bi50, v ); \
61	TEST_VAR(  bi51, v ); \
62	TEST_VAR(  bi52, v ); \
63	TEST_VAR(  bi53, v ); \
64	TEST_VAR(  bi54, v ); \
65	TEST_VAR(  bi55, v ); \
66	TEST_VAR(  bi56, v ); \
67	TEST_VAR(  bi57, v ); \
68	TEST_VAR(  bi58, v ); \
69	TEST_VAR(  bi59, v ); \
70	TEST_VAR(  bi60, v ); \
71	TEST_VAR(  bi61, v ); \
72	TEST_VAR(  bi62, v ); \
73	TEST_VAR(  bi63, v ); \
74	TEST_VAR(  bi64, v );
75
76int sc_main(int argc, char* argv[])
77{
78	char           buffer[256];
79	sc_bigint<1>  bi01;
80	sc_bigint<2>  bi02;
81	sc_bigint<3>  bi03;
82	sc_bigint<4>  bi04;
83	sc_bigint<5>  bi05;
84	sc_bigint<6>  bi06;
85	sc_bigint<7>  bi07;
86	sc_bigint<8>  bi08;
87	sc_bigint<9>  bi09;
88	sc_bigint<10>  bi10;
89	sc_bigint<11>  bi11;
90	sc_bigint<12>  bi12;
91	sc_bigint<13>  bi13;
92	sc_bigint<14>  bi14;
93	sc_bigint<15>  bi15;
94	sc_bigint<16>  bi16;
95	sc_bigint<17>  bi17;
96	sc_bigint<18>  bi18;
97	sc_bigint<19>  bi19;
98	sc_bigint<20>  bi20;
99	sc_bigint<21>  bi21;
100	sc_bigint<22>  bi22;
101	sc_bigint<23>  bi23;
102	sc_bigint<24>  bi24;
103	sc_bigint<25>  bi25;
104	sc_bigint<26>  bi26;
105	sc_bigint<27>  bi27;
106	sc_bigint<28>  bi28;
107	sc_bigint<29>  bi29;
108	sc_bigint<30>  bi30;
109	sc_bigint<31>  bi31;
110	sc_bigint<32>  bi32;
111	sc_bigint<33>  bi33;
112	sc_bigint<34>  bi34;
113	sc_bigint<35>  bi35;
114	sc_bigint<36>  bi36;
115	sc_bigint<37>  bi37;
116	sc_bigint<38>  bi38;
117	sc_bigint<39>  bi39;
118	sc_bigint<40>  bi40;
119	sc_bigint<41>  bi41;
120	sc_bigint<42>  bi42;
121	sc_bigint<43>  bi43;
122	sc_bigint<44>  bi44;
123	sc_bigint<45>  bi45;
124	sc_bigint<46>  bi46;
125	sc_bigint<47>  bi47;
126	sc_bigint<48>  bi48;
127	sc_bigint<49>  bi49;
128	sc_bigint<50>  bi50;
129	sc_bigint<51>  bi51;
130	sc_bigint<52>  bi52;
131	sc_bigint<53>  bi53;
132	sc_bigint<54>  bi54;
133	sc_bigint<55>  bi55;
134	sc_bigint<56>  bi56;
135	sc_bigint<57>  bi57;
136	sc_bigint<58>  bi58;
137	sc_bigint<59>  bi59;
138	sc_bigint<60>  bi60;
139	sc_bigint<61>  bi61;
140	sc_bigint<62>  bi62;
141	sc_bigint<63>  bi63;
142	sc_bigint<64>  bi64;
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( bi64, &values[i]);
174	}
175
176	return 0;
177}
178