default_assign.cpp revision 12855:588919e0e4aa
1/*****************************************************************************
2
3  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
4  more contributor license agreements.  See the NOTICE file distributed
5  with this work for additional information regarding copyright ownership.
6  Accellera licenses this file to you under the Apache License, Version 2.0
7  (the "License"); you may not use this file except in compliance with the
8  License.  You may obtain a copy of the License at
9
10    http://www.apache.org/licenses/LICENSE-2.0
11
12  Unless required by applicable law or agreed to in writing, software
13  distributed under the License is distributed on an "AS IS" BASIS,
14  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15  implied.  See the License for the specific language governing
16  permissions and limitations under the License.
17
18 *****************************************************************************/
19
20/*****************************************************************************
21
22  default_assign.cpp --
23
24  Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
25
26 *****************************************************************************/
27
28/*****************************************************************************
29
30  MODIFICATION LOG - modifiers, enter your name, affiliation, date and
31  changes you are making here.
32
33      Name, Affiliation, Date:
34  Description of Modification:
35
36 *****************************************************************************/
37
38// This may look like C code, but it is really -*- C++ -*-
39//
40// default_assign.cxx --
41// Copyright Synopsys 1998
42// Author          : Ric Hilderink
43// Created On      : Wed Dec 30 09:52:54 1998
44// Status          : none
45//
46
47#include <limits.h>
48#include <float.h>
49#define SC_INCLUDE_FX
50#include "systemc.h"
51
52typedef unsigned int   uint;
53typedef unsigned short ushort;
54typedef unsigned long  ulong;
55
56#define SHOW_DEFAULT_ASSIGN(a) cerr << #a << " : " << double(a) << " : " << a.to_string(SC_HEX) << "\n"
57#define IDENT_DEFAULT_ASSIGN(a) cerr << "--default_assign-Inf-Inf-Inf-Inf-Inf- " << a << "\n"
58
59//-------------------------------------------------------
60static void test_fx_float_int()
61{
62  IDENT_DEFAULT_ASSIGN("test_fx_float_int");
63
64  sc_fxval a; a = 0;
65  sc_fxval b; b = 1;
66  sc_fxval c; c = -1;
67  sc_fxval d; d = INT_MAX;
68  sc_fxval e; e = INT_MIN;
69
70  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
71}
72
73static void test_fx_float_uint()
74{
75  IDENT_DEFAULT_ASSIGN("test_fx_float_uint");
76
77  sc_fxval a; a = (uint)0;
78  sc_fxval b; b = (uint)1;
79  sc_fxval c; c = (uint)-1;
80  sc_fxval d; d = UINT_MAX;
81  sc_fxval e; e = (uint)abs(INT_MIN);
82
83  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
84}
85
86static void test_fx_float_short()
87{
88  IDENT_DEFAULT_ASSIGN("test_fx_float_short");
89
90  sc_fxval a; a = (short)0;
91  sc_fxval b; b = (short)1;
92  sc_fxval c; c = (short)-1;
93  sc_fxval d; d = SHRT_MAX;
94  sc_fxval e; e = SHRT_MIN;
95
96  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
97}
98
99static void test_fx_float_ushort()
100{
101  IDENT_DEFAULT_ASSIGN("test_fx_float_ushort");
102
103  sc_fxval a; a = (ushort)0;
104  sc_fxval b; b = (ushort)1;
105  sc_fxval c; c = (ushort)-1;
106  sc_fxval d; d = USHRT_MAX;
107  sc_fxval e; e = (ushort)abs(SHRT_MIN);
108
109  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
110}
111
112static void test_fx_float_long()
113{
114  IDENT_DEFAULT_ASSIGN("test_fx_float_long");
115
116  sc_fxval a; a = (long)0;
117  sc_fxval b; b = (long)1;
118  sc_fxval c; c = (long)-1;
119  sc_fxval d; d = LONG_MAX;
120  sc_fxval e; e = LONG_MIN;
121
122  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
123}
124
125static void test_fx_float_ulong()
126{
127  IDENT_DEFAULT_ASSIGN("test_fx_float_ulong");
128
129  sc_fxval a; a = (ulong)0;
130  sc_fxval b; b = (ulong)1;
131  sc_fxval c; c = (ulong)-1;
132  sc_fxval d; d = ULONG_MAX;
133  sc_fxval e; e = (ulong)abs(LONG_MIN);
134
135  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
136}
137
138static void test_fx_float_float()
139{
140  IDENT_DEFAULT_ASSIGN("test_fx_float_float");
141
142  sc_fxval a; a = 0.0;
143  sc_fxval b; b = 1.0;
144  sc_fxval c; c = -1.0;
145  sc_fxval d; d = FLT_MAX;
146  sc_fxval e; e = FLT_MIN;
147
148  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
149}
150
151static void test_fx_float_double()
152{
153  IDENT_DEFAULT_ASSIGN("test_fx_float_double");
154
155  sc_fxval a; a = (double)0.0;
156  sc_fxval b; b = (double)1.0;
157  sc_fxval c; c = (double)-1.0;
158  sc_fxval d; d = DBL_MAX;
159  sc_fxval e; e = DBL_MIN;
160
161  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
162}
163
164//-------------------------------------------------------
165static void test_fx_ufix_int()
166{
167  IDENT_DEFAULT_ASSIGN("test_fx_ufix_int");
168
169  sc_ufix a; a = 0;
170  sc_ufix b; b = 1;
171  sc_ufix c; c = -1;
172  sc_ufix d; d = INT_MAX;
173  sc_ufix e; e = INT_MIN;
174
175  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
176}
177
178static void test_fx_ufix_uint()
179{
180  IDENT_DEFAULT_ASSIGN("test_fx_ufix_uint");
181
182  sc_ufix a; a = (uint)0;
183  sc_ufix b; b = (uint)1;
184  sc_ufix c; c = (uint)-1;
185  sc_ufix d; d = UINT_MAX;
186  sc_ufix e; e = (uint)abs(INT_MIN);
187
188  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
189}
190
191static void test_fx_ufix_short()
192{
193  IDENT_DEFAULT_ASSIGN("test_fx_ufix_short");
194
195  sc_ufix a; a = (short)0;
196  sc_ufix b; b = (short)1;
197  sc_ufix c; c = (short)-1;
198  sc_ufix d; d = SHRT_MAX;
199  sc_ufix e; e = SHRT_MIN;
200
201  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
202}
203
204static void test_fx_ufix_ushort()
205{
206  IDENT_DEFAULT_ASSIGN("test_fx_ufix_ushort");
207
208  sc_ufix a; a = (ushort)0;
209  sc_ufix b; b = (ushort)1;
210  sc_ufix c; c = (ushort)-1;
211  sc_ufix d; d = USHRT_MAX;
212  sc_ufix e; e = (ushort)abs(SHRT_MIN);
213
214  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
215}
216
217static void test_fx_ufix_long()
218{
219  IDENT_DEFAULT_ASSIGN("test_fx_ufix_long");
220
221  sc_ufix a; a = (long)0;
222  sc_ufix b; b = (long)1;
223  sc_ufix c; c = (long)-1;
224  sc_ufix d; d = LONG_MAX;
225  sc_ufix e; e = LONG_MIN;
226
227  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
228}
229
230static void test_fx_ufix_ulong()
231{
232  IDENT_DEFAULT_ASSIGN("test_fx_ufix_ulong");
233
234  sc_ufix a; a = (ulong)0;
235  sc_ufix b; b = (ulong)1;
236  sc_ufix c; c = (ulong)-1;
237  sc_ufix d; d = ULONG_MAX;
238  sc_ufix e; e = (ulong)abs(LONG_MIN);
239
240  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
241}
242
243static void test_fx_ufix_float()
244{
245  IDENT_DEFAULT_ASSIGN("test_fx_ufix_float");
246
247  sc_ufix a; a = 0.0;
248  sc_ufix b; b = 1.0;
249  sc_ufix c; c = -1.0;
250   sc_ufix d; d = FLT_MAX;
251   sc_ufix e; e = FLT_MIN;
252
253  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c);  SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
254}
255
256static void test_fx_ufix_double()
257{
258  IDENT_DEFAULT_ASSIGN("test_fx_ufix_double");
259
260  sc_ufix a; a = (double)0.0;
261  sc_ufix b; b = (double)1.0;
262  sc_ufix c; c = (double)-1.0;
263   sc_ufix d; d = DBL_MAX;
264   sc_ufix e; e = DBL_MIN;
265
266  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c);  SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
267}
268
269//-------------------------------------------------------
270static void test_fx_fix_int()
271{
272  IDENT_DEFAULT_ASSIGN("test_fx_fix_int");
273
274  sc_fix a; a = 0;
275  sc_fix b; b = 1;
276  sc_fix c; c = -1;
277  sc_fix d; d = INT_MAX;
278  sc_fix e; e = INT_MIN;
279
280  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
281}
282
283static void test_fx_fix_uint()
284{
285  IDENT_DEFAULT_ASSIGN("test_fx_fix_uint");
286
287  sc_fix a; a = (uint)0;
288  sc_fix b; b = (uint)1;
289  sc_fix c; c = (uint)-1;
290  sc_fix d; d = UINT_MAX;
291  sc_fix e; e = (uint)abs(INT_MIN);
292
293  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
294}
295
296static void test_fx_fix_short()
297{
298  IDENT_DEFAULT_ASSIGN("test_fx_fix_short");
299
300  sc_fix a; a = (short)0;
301  sc_fix b; b = (short)1;
302  sc_fix c; c = (short)-1;
303  sc_fix d; d = SHRT_MAX;
304  sc_fix e; e = SHRT_MIN;
305
306  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
307}
308
309static void test_fx_fix_ushort()
310{
311  IDENT_DEFAULT_ASSIGN("test_fx_fix_ushort");
312
313  sc_fix a; a = (ushort)0;
314  sc_fix b; b = (ushort)1;
315  sc_fix c; c = (ushort)-1;
316  sc_fix d; d = USHRT_MAX;
317  sc_fix e; e = (ushort)abs(SHRT_MIN);
318
319  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
320}
321
322static void test_fx_fix_long()
323{
324  IDENT_DEFAULT_ASSIGN("test_fx_fix_long");
325
326  sc_fix a; a = (long)0;
327  sc_fix b; b = (long)1;
328  sc_fix c; c = (long)-1;
329  sc_fix d; d = LONG_MAX;
330  sc_fix e; e = LONG_MIN;
331
332  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
333}
334
335static void test_fx_fix_ulong()
336{
337  IDENT_DEFAULT_ASSIGN("test_fx_fix_ulong");
338
339  sc_fix a; a = (ulong)0;
340  sc_fix b; b = (ulong)1;
341  sc_fix c; c = (ulong)-1;
342  sc_fix d; d = ULONG_MAX;
343  sc_fix e; e = (ulong)abs(LONG_MIN);
344
345  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
346}
347
348static void test_fx_fix_float()
349{
350  IDENT_DEFAULT_ASSIGN("test_fx_fix_float");
351
352  sc_fix a; a = 0.0;
353  sc_fix b; b = 1.0;
354  sc_fix c; c = -1.0;
355   sc_fix d; d = FLT_MAX;
356   sc_fix e; e = FLT_MIN;
357
358  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c);  SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
359}
360
361static void test_fx_fix_double()
362{
363  IDENT_DEFAULT_ASSIGN("test_fx_fix_double");
364
365  sc_fix a; a = (double)0.0;
366  sc_fix b; b = (double)1.0;
367  sc_fix c; c = (double)-1.0;
368   sc_fix d; d = DBL_MAX;
369   sc_fix e; e = DBL_MIN;
370
371  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c);  SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
372}
373
374//-------------------------------------------------------
375static void test_fx_fixed_int()
376{
377  IDENT_DEFAULT_ASSIGN("test_fx_fixed_int");
378
379  sc_fixed<8, 5> a; a = 0;
380  sc_fixed<8, 5> b; b = 1;
381  sc_fixed<8, 5> c; c = -1;
382   sc_fixed<8, 5> d; d = INT_MAX;
383   sc_fixed<8, 5> e; e = INT_MIN;
384
385  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c);  SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
386}
387
388static void test_fx_fixed_uint()
389{
390  IDENT_DEFAULT_ASSIGN("test_fx_fixed_uint");
391
392  sc_fixed<8, 5> a; a = (uint)0;
393  sc_fixed<8, 5> b; b = (uint)1;
394   sc_fixed<8, 5> c; c = (uint)-1;
395   sc_fixed<8, 5> d; d = UINT_MAX;
396   sc_fixed<8, 5> e; e = (uint)abs(INT_MIN);
397
398  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b);  SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
399}
400
401static void test_fx_fixed_short()
402{
403  IDENT_DEFAULT_ASSIGN("test_fx_fixed_short");
404
405  sc_fixed<8, 5> a; a = (short)0;
406  sc_fixed<8, 5> b; b = (short)1;
407  sc_fixed<8, 5> c; c = (short)-1;
408   sc_fixed<8, 5> d; d = SHRT_MAX;
409   sc_fixed<8, 5> e; e = SHRT_MIN;
410
411  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c);  SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
412}
413
414static void test_fx_fixed_ushort()
415{
416  IDENT_DEFAULT_ASSIGN("test_fx_fixed_ushort");
417
418  sc_fixed<8, 5> a; a = (ushort)0;
419  sc_fixed<8, 5> b; b = (ushort)1;
420   sc_fixed<8, 5> c; c = (ushort)-1;
421   sc_fixed<8, 5> d; d = USHRT_MAX;
422   sc_fixed<8, 5> e; e = (ushort)abs(SHRT_MIN);
423
424  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b);  SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
425}
426
427static void test_fx_fixed_long()
428{
429  IDENT_DEFAULT_ASSIGN("test_fx_fixed_long");
430
431  sc_fixed<8, 5> a; a = (long)0;
432  sc_fixed<8, 5> b; b = (long)1;
433  sc_fixed<8, 5> c; c = (long)-1;
434   sc_fixed<8, 5> d; d = LONG_MAX;
435   sc_fixed<8, 5> e; e = LONG_MIN;
436
437  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c);  SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
438}
439
440static void test_fx_fixed_ulong()
441{
442  IDENT_DEFAULT_ASSIGN("test_fx_fixed_ulong");
443
444  sc_fixed<8, 5> a; a = (ulong)0;
445  sc_fixed<8, 5> b; b = (ulong)1;
446   sc_fixed<8, 5> c; c = (ulong)-1;
447   sc_fixed<8, 5> d; d = ULONG_MAX;
448   sc_fixed<8, 5> e; e = (ulong)abs(LONG_MIN);
449
450  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b);  SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
451}
452
453static void test_fx_fixed_float()
454{
455  IDENT_DEFAULT_ASSIGN("test_fx_fixed_float");
456
457  sc_fixed<8, 5> a; a = 0.0;
458  sc_fixed<8, 5> b; b = 1.0;
459  sc_fixed<8, 5> c; c = -1.0;
460   sc_fixed<8, 5> d; d = FLT_MAX;
461   sc_fixed<8, 5> e; e = FLT_MIN;
462
463  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c);  SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
464}
465
466static void test_fx_fixed_double()
467{
468  IDENT_DEFAULT_ASSIGN("test_fx_fixed_double");
469
470  sc_fixed<8, 5> a; a = (double)0.0;
471  sc_fixed<8, 5> b; b = (double)1.0;
472  sc_fixed<8, 5> c; c = (double)-1.0;
473   sc_fixed<8, 5> d; d = DBL_MAX;
474   sc_fixed<8, 5> e; e = DBL_MIN;
475
476  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c);  SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
477}
478
479//-------------------------------------------------------
480static void test_fx_ufixed_int()
481{
482  IDENT_DEFAULT_ASSIGN("test_fx_ufixed_int");
483
484  sc_ufixed<8, 5> a; a = 0;
485  sc_ufixed<8, 5> b; b = 1;
486  sc_ufixed<8, 5> c; c = -1;
487   sc_ufixed<8, 5> d; d = INT_MAX;
488   sc_ufixed<8, 5> e; e = INT_MIN;
489
490  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c);  SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
491}
492
493static void test_fx_ufixed_uint()
494{
495  IDENT_DEFAULT_ASSIGN("test_fx_ufixed_uint");
496
497  sc_ufixed<8, 5> a; a = (uint)0;
498  sc_ufixed<8, 5> b; b = (uint)1;
499   sc_ufixed<8, 5> c; c = (uint)-1;
500   sc_ufixed<8, 5> d; d = UINT_MAX;
501   sc_ufixed<8, 5> e; e = (uint)abs(INT_MIN);
502
503  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b);  SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
504}
505
506static void test_fx_ufixed_short()
507{
508  IDENT_DEFAULT_ASSIGN("test_fx_ufixed_short");
509
510  sc_ufixed<8, 5> a; a = (short)0;
511  sc_ufixed<8, 5> b; b = (short)1;
512  sc_ufixed<8, 5> c; c = (short)-1;
513   sc_ufixed<8, 5> d; d = SHRT_MAX;
514   sc_ufixed<8, 5> e; e = SHRT_MIN;
515
516  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c);  SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
517}
518
519static void test_fx_ufixed_ushort()
520{
521  IDENT_DEFAULT_ASSIGN("test_fx_ufixed_ushort");
522
523  sc_ufixed<8, 5> a; a = (ushort)0;
524  sc_ufixed<8, 5> b; b = (ushort)1;
525   sc_ufixed<8, 5> c; c = (ushort)-1;
526   sc_ufixed<8, 5> d; d = USHRT_MAX;
527   sc_ufixed<8, 5> e; e = (ushort)abs(SHRT_MIN);
528
529  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b);  SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
530}
531
532static void test_fx_ufixed_long()
533{
534  IDENT_DEFAULT_ASSIGN("test_fx_ufixed_long");
535
536  sc_ufixed<8, 5> a; a = (long)0;
537  sc_ufixed<8, 5> b; b = (long)1;
538  sc_ufixed<8, 5> c; c = (long)-1;
539   sc_ufixed<8, 5> d; d = LONG_MAX;
540   sc_ufixed<8, 5> e; e = LONG_MIN;
541
542  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c);  SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
543}
544
545static void test_fx_ufixed_ulong()
546{
547  IDENT_DEFAULT_ASSIGN("test_fx_ufixed_ulong");
548
549  sc_ufixed<8, 5> a; a = (ulong)0;
550  sc_ufixed<8, 5> b; b = (ulong)1;
551   sc_ufixed<8, 5> c; c = (ulong)-1;
552   sc_ufixed<8, 5> d; d = ULONG_MAX;
553   sc_ufixed<8, 5> e; e = (ulong)abs(LONG_MIN);
554
555  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b);  SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
556}
557
558static void test_fx_ufixed_float()
559{
560  IDENT_DEFAULT_ASSIGN("test_fx_ufixed_float");
561
562  sc_ufixed<8, 5> a; a = 0.0;
563  sc_ufixed<8, 5> b; b = 1.0;
564  sc_ufixed<8, 5> c; c = -1.0;
565   sc_ufixed<8, 5> d; d = FLT_MAX;
566   sc_ufixed<8, 5> e; e = FLT_MIN;
567
568  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c);  SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
569}
570
571static void test_fx_ufixed_double()
572{
573  IDENT_DEFAULT_ASSIGN("test_fx_ufixed_double");
574
575  sc_ufixed<8, 5> a; a = (double)0.0;
576  sc_ufixed<8, 5> b; b = (double)1.0;
577  sc_ufixed<8, 5> c; c = (double)-1.0;
578   sc_ufixed<8, 5> d; d = DBL_MAX;
579   sc_ufixed<8, 5> e; e = DBL_MIN;
580
581  SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c);  SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e);
582}
583
584void default_assign()
585{
586  cerr << "************** default_assign fx_float\n";
587  test_fx_float_int();
588  test_fx_float_uint();
589  test_fx_float_short();
590  test_fx_float_ushort();
591  test_fx_float_long();
592  test_fx_float_ulong();
593  test_fx_float_float();
594  test_fx_float_double();
595
596  cerr << "************** default_assign fx_ufix\n";
597  test_fx_ufix_int();
598  test_fx_ufix_uint();
599  test_fx_ufix_short();
600  test_fx_ufix_ushort();
601  test_fx_ufix_long();
602  test_fx_ufix_ulong();
603  test_fx_ufix_float();
604  test_fx_ufix_double();
605
606  cerr << "************** default_assign fx_fix\n";
607  test_fx_fix_int();
608  test_fx_fix_uint();
609  test_fx_fix_short();
610  test_fx_fix_ushort();
611  test_fx_fix_long();
612  test_fx_fix_ulong();
613  test_fx_fix_float();
614  test_fx_fix_double();
615
616  cerr << "************** default_assign fx_fixed\n";
617  test_fx_fixed_int();
618  test_fx_fixed_uint();
619  test_fx_fixed_short();
620  test_fx_fixed_ushort();
621  test_fx_fixed_long();
622  test_fx_fixed_ulong();
623  test_fx_fixed_float();
624  test_fx_fixed_double();
625
626  cerr << "************** default_assign fx_ufixed\n";
627  test_fx_ufixed_int();
628  test_fx_ufixed_uint();
629  test_fx_ufixed_short();
630  test_fx_ufixed_ushort();
631  test_fx_ufixed_long();
632  test_fx_ufixed_ulong();
633  test_fx_ufixed_float();
634  test_fx_ufixed_double();
635}
636