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