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 50#define SC_INCLUDE_FX 51#include "systemc.h" 52#include "fx_precision_double.h" 53 54typedef unsigned int uint; 55typedef unsigned short ushort; 56typedef unsigned long ulong; 57 58#define SHOW_DEFAULT_ASSIGN(a) cerr << #a << " : " << double(a) << " : " << a.to_string(SC_HEX) << "\n" 59#define IDENT_DEFAULT_ASSIGN(a) cerr << "--default_assign-Inf-Inf-Inf-Inf-Inf- " << a << "\n" 60 61//------------------------------------------------------- 62static void test_fx_float_int() 63{ 64 IDENT_DEFAULT_ASSIGN("test_fx_float_int"); 65 66 sc_fxval a; a = 0; 67 sc_fxval b; b = 1; 68 sc_fxval c; c = -1; 69 sc_fxval d; d = INT_MAX; 70 sc_fxval e; e = INT_MIN; 71 72 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 73} 74 75static void test_fx_float_uint() 76{ 77 IDENT_DEFAULT_ASSIGN("test_fx_float_uint"); 78 79 sc_fxval a; a = (uint)0; 80 sc_fxval b; b = (uint)1; 81 sc_fxval c; c = (uint)-1; 82 sc_fxval d; d = UINT_MAX; 83 sc_fxval e; e = (uint)abs(INT_MIN); 84 85 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 86} 87 88static void test_fx_float_short() 89{ 90 IDENT_DEFAULT_ASSIGN("test_fx_float_short"); 91 92 sc_fxval a; a = (short)0; 93 sc_fxval b; b = (short)1; 94 sc_fxval c; c = (short)-1; 95 sc_fxval d; d = SHRT_MAX; 96 sc_fxval e; e = SHRT_MIN; 97 98 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 99} 100 101static void test_fx_float_ushort() 102{ 103 IDENT_DEFAULT_ASSIGN("test_fx_float_ushort"); 104 105 sc_fxval a; a = (ushort)0; 106 sc_fxval b; b = (ushort)1; 107 sc_fxval c; c = (ushort)-1; 108 sc_fxval d; d = USHRT_MAX; 109 sc_fxval e; e = (ushort)abs(SHRT_MIN); 110 111 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 112} 113 114static void test_fx_float_long() 115{ 116 IDENT_DEFAULT_ASSIGN("test_fx_float_long"); 117 118 sc_fxval a; a = (long)0; 119 sc_fxval b; b = (long)1; 120 sc_fxval c; c = (long)-1; 121 sc_fxval d; d = LONG_MAX; 122 sc_fxval e; e = LONG_MIN; 123 124 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 125} 126 127static void test_fx_float_ulong() 128{ 129 IDENT_DEFAULT_ASSIGN("test_fx_float_ulong"); 130 131 sc_fxval a; a = (ulong)0; 132 sc_fxval b; b = (ulong)1; 133 sc_fxval c; c = (ulong)-1; 134 sc_fxval d; d = ULONG_MAX; 135 sc_fxval e; e = (ulong)abs(LONG_MIN); 136 137 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 138} 139 140static void test_fx_float_float() 141{ 142 IDENT_DEFAULT_ASSIGN("test_fx_float_float"); 143 144 sc_fxval a; a = 0.0; 145 sc_fxval b; b = 1.0; 146 sc_fxval c; c = -1.0; 147 sc_fxval d; d = FLT_MAX; 148 sc_fxval e; e = FLT_MIN; 149 150 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 151} 152 153static void test_fx_float_double() 154{ 155 IDENT_DEFAULT_ASSIGN("test_fx_float_double"); 156 157 sc_fxval a; a = (double)0.0; 158 sc_fxval b; b = (double)1.0; 159 sc_fxval c; c = (double)-1.0; 160 sc_fxval d; d = DBL_MAX; 161 sc_fxval e; e = DBL_MIN; 162 163 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 164} 165 166//------------------------------------------------------- 167static void test_fx_ufix_int() 168{ 169 IDENT_DEFAULT_ASSIGN("test_fx_ufix_int"); 170 171 sc_ufix a; a = 0; 172 sc_ufix b; b = 1; 173 sc_ufix c; c = -1; 174 sc_ufix d; d = INT_MAX; 175 sc_ufix e; e = INT_MIN; 176 177 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 178} 179 180static void test_fx_ufix_uint() 181{ 182 IDENT_DEFAULT_ASSIGN("test_fx_ufix_uint"); 183 184 sc_ufix a; a = (uint)0; 185 sc_ufix b; b = (uint)1; 186 sc_ufix c; c = (uint)-1; 187 sc_ufix d; d = UINT_MAX; 188 sc_ufix e; e = (uint)abs(INT_MIN); 189 190 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 191} 192 193static void test_fx_ufix_short() 194{ 195 IDENT_DEFAULT_ASSIGN("test_fx_ufix_short"); 196 197 sc_ufix a; a = (short)0; 198 sc_ufix b; b = (short)1; 199 sc_ufix c; c = (short)-1; 200 sc_ufix d; d = SHRT_MAX; 201 sc_ufix e; e = SHRT_MIN; 202 203 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 204} 205 206static void test_fx_ufix_ushort() 207{ 208 IDENT_DEFAULT_ASSIGN("test_fx_ufix_ushort"); 209 210 sc_ufix a; a = (ushort)0; 211 sc_ufix b; b = (ushort)1; 212 sc_ufix c; c = (ushort)-1; 213 sc_ufix d; d = USHRT_MAX; 214 sc_ufix e; e = (ushort)abs(SHRT_MIN); 215 216 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 217} 218 219static void test_fx_ufix_long() 220{ 221 IDENT_DEFAULT_ASSIGN("test_fx_ufix_long"); 222 223 sc_ufix a; a = (long)0; 224 sc_ufix b; b = (long)1; 225 sc_ufix c; c = (long)-1; 226 sc_ufix d; d = LONG_MAX; 227 sc_ufix e; e = LONG_MIN; 228 229 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 230} 231 232static void test_fx_ufix_ulong() 233{ 234 IDENT_DEFAULT_ASSIGN("test_fx_ufix_ulong"); 235 236 sc_ufix a; a = (ulong)0; 237 sc_ufix b; b = (ulong)1; 238 sc_ufix c; c = (ulong)-1; 239 sc_ufix d; d = ULONG_MAX; 240 sc_ufix e; e = (ulong)abs(LONG_MIN); 241 242 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 243} 244 245static void test_fx_ufix_float() 246{ 247 IDENT_DEFAULT_ASSIGN("test_fx_ufix_float"); 248 249 sc_ufix a; a = 0.0; 250 sc_ufix b; b = 1.0; 251 sc_ufix c; c = -1.0; 252 sc_ufix d; d = FLT_MAX; 253 sc_ufix e; e = FLT_MIN; 254 255 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 256} 257 258static void test_fx_ufix_double() 259{ 260 IDENT_DEFAULT_ASSIGN("test_fx_ufix_double"); 261 262 sc_ufix a; a = (double)0.0; 263 sc_ufix b; b = (double)1.0; 264 sc_ufix c; c = (double)-1.0; 265 sc_ufix d; d = DBL_MAX; 266 sc_ufix e; e = DBL_MIN; 267 268 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 269} 270 271//------------------------------------------------------- 272static void test_fx_fix_int() 273{ 274 IDENT_DEFAULT_ASSIGN("test_fx_fix_int"); 275 276 sc_fix a; a = 0; 277 sc_fix b; b = 1; 278 sc_fix c; c = -1; 279 sc_fix d; d = INT_MAX; 280 sc_fix e; e = INT_MIN; 281 282 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 283} 284 285static void test_fx_fix_uint() 286{ 287 IDENT_DEFAULT_ASSIGN("test_fx_fix_uint"); 288 289 sc_fix a; a = (uint)0; 290 sc_fix b; b = (uint)1; 291 sc_fix c; c = (uint)-1; 292 sc_fix d; d = UINT_MAX; 293 sc_fix e; e = (uint)abs(INT_MIN); 294 295 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 296} 297 298static void test_fx_fix_short() 299{ 300 IDENT_DEFAULT_ASSIGN("test_fx_fix_short"); 301 302 sc_fix a; a = (short)0; 303 sc_fix b; b = (short)1; 304 sc_fix c; c = (short)-1; 305 sc_fix d; d = SHRT_MAX; 306 sc_fix e; e = SHRT_MIN; 307 308 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 309} 310 311static void test_fx_fix_ushort() 312{ 313 IDENT_DEFAULT_ASSIGN("test_fx_fix_ushort"); 314 315 sc_fix a; a = (ushort)0; 316 sc_fix b; b = (ushort)1; 317 sc_fix c; c = (ushort)-1; 318 sc_fix d; d = USHRT_MAX; 319 sc_fix e; e = (ushort)abs(SHRT_MIN); 320 321 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 322} 323 324static void test_fx_fix_long() 325{ 326 IDENT_DEFAULT_ASSIGN("test_fx_fix_long"); 327 328 sc_fix a; a = (long)0; 329 sc_fix b; b = (long)1; 330 sc_fix c; c = (long)-1; 331 sc_fix d; d = LONG_MAX; 332 sc_fix e; e = LONG_MIN; 333 334 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 335} 336 337static void test_fx_fix_ulong() 338{ 339 IDENT_DEFAULT_ASSIGN("test_fx_fix_ulong"); 340 341 sc_fix a; a = (ulong)0; 342 sc_fix b; b = (ulong)1; 343 sc_fix c; c = (ulong)-1; 344 sc_fix d; d = ULONG_MAX; 345 sc_fix e; e = (ulong)abs(LONG_MIN); 346 347 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 348} 349 350static void test_fx_fix_float() 351{ 352 IDENT_DEFAULT_ASSIGN("test_fx_fix_float"); 353 354 sc_fix a; a = 0.0; 355 sc_fix b; b = 1.0; 356 sc_fix c; c = -1.0; 357 sc_fix d; d = FLT_MAX; 358 sc_fix e; e = FLT_MIN; 359 360 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 361} 362 363static void test_fx_fix_double() 364{ 365 IDENT_DEFAULT_ASSIGN("test_fx_fix_double"); 366 367 sc_fix a; a = (double)0.0; 368 sc_fix b; b = (double)1.0; 369 sc_fix c; c = (double)-1.0; 370 sc_fix d; d = DBL_MAX; 371 sc_fix e; e = DBL_MIN; 372 373 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 374} 375 376//------------------------------------------------------- 377static void test_fx_fixed_int() 378{ 379 IDENT_DEFAULT_ASSIGN("test_fx_fixed_int"); 380 381 sc_fixed<8, 5> a; a = 0; 382 sc_fixed<8, 5> b; b = 1; 383 sc_fixed<8, 5> c; c = -1; 384 sc_fixed<8, 5> d; d = INT_MAX; 385 sc_fixed<8, 5> e; e = INT_MIN; 386 387 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 388} 389 390static void test_fx_fixed_uint() 391{ 392 IDENT_DEFAULT_ASSIGN("test_fx_fixed_uint"); 393 394 sc_fixed<8, 5> a; a = (uint)0; 395 sc_fixed<8, 5> b; b = (uint)1; 396 sc_fixed<8, 5> c; c = (uint)-1; 397 sc_fixed<8, 5> d; d = UINT_MAX; 398 sc_fixed<8, 5> e; e = (uint)abs(INT_MIN); 399 400 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 401} 402 403static void test_fx_fixed_short() 404{ 405 IDENT_DEFAULT_ASSIGN("test_fx_fixed_short"); 406 407 sc_fixed<8, 5> a; a = (short)0; 408 sc_fixed<8, 5> b; b = (short)1; 409 sc_fixed<8, 5> c; c = (short)-1; 410 sc_fixed<8, 5> d; d = SHRT_MAX; 411 sc_fixed<8, 5> e; e = SHRT_MIN; 412 413 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 414} 415 416static void test_fx_fixed_ushort() 417{ 418 IDENT_DEFAULT_ASSIGN("test_fx_fixed_ushort"); 419 420 sc_fixed<8, 5> a; a = (ushort)0; 421 sc_fixed<8, 5> b; b = (ushort)1; 422 sc_fixed<8, 5> c; c = (ushort)-1; 423 sc_fixed<8, 5> d; d = USHRT_MAX; 424 sc_fixed<8, 5> e; e = (ushort)abs(SHRT_MIN); 425 426 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 427} 428 429static void test_fx_fixed_long() 430{ 431 IDENT_DEFAULT_ASSIGN("test_fx_fixed_long"); 432 433 sc_fixed<8, 5> a; a = (long)0; 434 sc_fixed<8, 5> b; b = (long)1; 435 sc_fixed<8, 5> c; c = (long)-1; 436 sc_fixed<8, 5> d; d = LONG_MAX; 437 sc_fixed<8, 5> e; e = LONG_MIN; 438 439 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 440} 441 442static void test_fx_fixed_ulong() 443{ 444 IDENT_DEFAULT_ASSIGN("test_fx_fixed_ulong"); 445 446 sc_fixed<8, 5> a; a = (ulong)0; 447 sc_fixed<8, 5> b; b = (ulong)1; 448 sc_fixed<8, 5> c; c = (ulong)-1; 449 sc_fixed<8, 5> d; d = ULONG_MAX; 450 sc_fixed<8, 5> e; e = (ulong)abs(LONG_MIN); 451 452 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 453} 454 455static void test_fx_fixed_float() 456{ 457 IDENT_DEFAULT_ASSIGN("test_fx_fixed_float"); 458 459 sc_fixed<8, 5> a; a = 0.0; 460 sc_fixed<8, 5> b; b = 1.0; 461 sc_fixed<8, 5> c; c = -1.0; 462 sc_fixed<8, 5> d; d = FLT_MAX; 463 sc_fixed<8, 5> e; e = FLT_MIN; 464 465 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 466} 467 468static void test_fx_fixed_double() 469{ 470 IDENT_DEFAULT_ASSIGN("test_fx_fixed_double"); 471 472 sc_fixed<8, 5> a; a = (double)0.0; 473 sc_fixed<8, 5> b; b = (double)1.0; 474 sc_fixed<8, 5> c; c = (double)-1.0; 475 sc_fixed<8, 5> d; d = DBL_MAX; 476 sc_fixed<8, 5> e; e = DBL_MIN; 477 478 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 479} 480 481//------------------------------------------------------- 482static void test_fx_ufixed_int() 483{ 484 IDENT_DEFAULT_ASSIGN("test_fx_ufixed_int"); 485 486 sc_ufixed<8, 5> a; a = 0; 487 sc_ufixed<8, 5> b; b = 1; 488 sc_ufixed<8, 5> c; c = -1; 489 sc_ufixed<8, 5> d; d = INT_MAX; 490 sc_ufixed<8, 5> e; e = INT_MIN; 491 492 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 493} 494 495static void test_fx_ufixed_uint() 496{ 497 IDENT_DEFAULT_ASSIGN("test_fx_ufixed_uint"); 498 499 sc_ufixed<8, 5> a; a = (uint)0; 500 sc_ufixed<8, 5> b; b = (uint)1; 501 sc_ufixed<8, 5> c; c = (uint)-1; 502 sc_ufixed<8, 5> d; d = UINT_MAX; 503 sc_ufixed<8, 5> e; e = (uint)abs(INT_MIN); 504 505 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 506} 507 508static void test_fx_ufixed_short() 509{ 510 IDENT_DEFAULT_ASSIGN("test_fx_ufixed_short"); 511 512 sc_ufixed<8, 5> a; a = (short)0; 513 sc_ufixed<8, 5> b; b = (short)1; 514 sc_ufixed<8, 5> c; c = (short)-1; 515 sc_ufixed<8, 5> d; d = SHRT_MAX; 516 sc_ufixed<8, 5> e; e = SHRT_MIN; 517 518 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 519} 520 521static void test_fx_ufixed_ushort() 522{ 523 IDENT_DEFAULT_ASSIGN("test_fx_ufixed_ushort"); 524 525 sc_ufixed<8, 5> a; a = (ushort)0; 526 sc_ufixed<8, 5> b; b = (ushort)1; 527 sc_ufixed<8, 5> c; c = (ushort)-1; 528 sc_ufixed<8, 5> d; d = USHRT_MAX; 529 sc_ufixed<8, 5> e; e = (ushort)abs(SHRT_MIN); 530 531 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 532} 533 534static void test_fx_ufixed_long() 535{ 536 IDENT_DEFAULT_ASSIGN("test_fx_ufixed_long"); 537 538 sc_ufixed<8, 5> a; a = (long)0; 539 sc_ufixed<8, 5> b; b = (long)1; 540 sc_ufixed<8, 5> c; c = (long)-1; 541 sc_ufixed<8, 5> d; d = LONG_MAX; 542 sc_ufixed<8, 5> e; e = LONG_MIN; 543 544 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 545} 546 547static void test_fx_ufixed_ulong() 548{ 549 IDENT_DEFAULT_ASSIGN("test_fx_ufixed_ulong"); 550 551 sc_ufixed<8, 5> a; a = (ulong)0; 552 sc_ufixed<8, 5> b; b = (ulong)1; 553 sc_ufixed<8, 5> c; c = (ulong)-1; 554 sc_ufixed<8, 5> d; d = ULONG_MAX; 555 sc_ufixed<8, 5> e; e = (ulong)abs(LONG_MIN); 556 557 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 558} 559 560static void test_fx_ufixed_float() 561{ 562 IDENT_DEFAULT_ASSIGN("test_fx_ufixed_float"); 563 564 sc_ufixed<8, 5> a; a = 0.0; 565 sc_ufixed<8, 5> b; b = 1.0; 566 sc_ufixed<8, 5> c; c = -1.0; 567 sc_ufixed<8, 5> d; d = FLT_MAX; 568 sc_ufixed<8, 5> e; e = FLT_MIN; 569 570 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 571} 572 573static void test_fx_ufixed_double() 574{ 575 IDENT_DEFAULT_ASSIGN("test_fx_ufixed_double"); 576 577 sc_ufixed<8, 5> a; a = (double)0.0; 578 sc_ufixed<8, 5> b; b = (double)1.0; 579 sc_ufixed<8, 5> c; c = (double)-1.0; 580 sc_ufixed<8, 5> d; d = DBL_MAX; 581 sc_ufixed<8, 5> e; e = DBL_MIN; 582 583 SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 584} 585 586void default_assign() 587{ 588 cerr << "************** default_assign fx_float\n"; 589 test_fx_float_int(); 590 test_fx_float_uint(); 591 test_fx_float_short(); 592 test_fx_float_ushort(); 593 test_fx_float_long(); 594 test_fx_float_ulong(); 595 test_fx_float_float(); 596 test_fx_float_double(); 597 598 cerr << "************** default_assign fx_ufix\n"; 599 test_fx_ufix_int(); 600 test_fx_ufix_uint(); 601 test_fx_ufix_short(); 602 test_fx_ufix_ushort(); 603 test_fx_ufix_long(); 604 test_fx_ufix_ulong(); 605 test_fx_ufix_float(); 606 test_fx_ufix_double(); 607 608 cerr << "************** default_assign fx_fix\n"; 609 test_fx_fix_int(); 610 test_fx_fix_uint(); 611 test_fx_fix_short(); 612 test_fx_fix_ushort(); 613 test_fx_fix_long(); 614 test_fx_fix_ulong(); 615 test_fx_fix_float(); 616 test_fx_fix_double(); 617 618 cerr << "************** default_assign fx_fixed\n"; 619 test_fx_fixed_int(); 620 test_fx_fixed_uint(); 621 test_fx_fixed_short(); 622 test_fx_fixed_ushort(); 623 test_fx_fixed_long(); 624 test_fx_fixed_ulong(); 625 test_fx_fixed_float(); 626 test_fx_fixed_double(); 627 628 cerr << "************** default_assign fx_ufixed\n"; 629 test_fx_ufixed_int(); 630 test_fx_ufixed_uint(); 631 test_fx_ufixed_short(); 632 test_fx_ufixed_ushort(); 633 test_fx_ufixed_long(); 634 test_fx_ufixed_ulong(); 635 test_fx_ufixed_float(); 636 test_fx_ufixed_double(); 637} 638