test01.cpp revision 12855:588919e0e4aa
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