default_assign.cpp revision 12855:588919e0e4aa
14661Sksewell@umich.edu/***************************************************************************** 24661Sksewell@umich.edu 35268Sksewell@umich.edu Licensed to Accellera Systems Initiative Inc. (Accellera) under one or 45268Sksewell@umich.edu more contributor license agreements. See the NOTICE file distributed 55268Sksewell@umich.edu with this work for additional information regarding copyright ownership. 65268Sksewell@umich.edu Accellera licenses this file to you under the Apache License, Version 2.0 75268Sksewell@umich.edu (the "License"); you may not use this file except in compliance with the 85268Sksewell@umich.edu License. You may obtain a copy of the License at 95268Sksewell@umich.edu 105268Sksewell@umich.edu http://www.apache.org/licenses/LICENSE-2.0 115268Sksewell@umich.edu 125268Sksewell@umich.edu Unless required by applicable law or agreed to in writing, software 135268Sksewell@umich.edu distributed under the License is distributed on an "AS IS" BASIS, 145268Sksewell@umich.edu WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 155268Sksewell@umich.edu implied. See the License for the specific language governing 165268Sksewell@umich.edu permissions and limitations under the License. 175268Sksewell@umich.edu 185268Sksewell@umich.edu *****************************************************************************/ 195268Sksewell@umich.edu 205268Sksewell@umich.edu/***************************************************************************** 215268Sksewell@umich.edu 225268Sksewell@umich.edu default_assign.cpp -- 235268Sksewell@umich.edu 245268Sksewell@umich.edu Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15 255268Sksewell@umich.edu 265268Sksewell@umich.edu *****************************************************************************/ 275268Sksewell@umich.edu 285268Sksewell@umich.edu/***************************************************************************** 295268Sksewell@umich.edu 305268Sksewell@umich.edu MODIFICATION LOG - modifiers, enter your name, affiliation, date and 314661Sksewell@umich.edu changes you are making here. 324661Sksewell@umich.edu 334661Sksewell@umich.edu Name, Affiliation, Date: 344661Sksewell@umich.edu Description of Modification: 354661Sksewell@umich.edu 364661Sksewell@umich.edu *****************************************************************************/ 374661Sksewell@umich.edu 384661Sksewell@umich.edu// This may look like C code, but it is really -*- C++ -*- 394661Sksewell@umich.edu// 404661Sksewell@umich.edu// default_assign.cxx -- 414661Sksewell@umich.edu// Copyright Synopsys 1998 424661Sksewell@umich.edu// Author : Ric Hilderink 434661Sksewell@umich.edu// Created On : Wed Dec 30 09:52:54 1998 444661Sksewell@umich.edu// Status : none 454661Sksewell@umich.edu// 464661Sksewell@umich.edu 474661Sksewell@umich.edu#include <limits.h> 484661Sksewell@umich.edu#include <float.h> 494661Sksewell@umich.edu 504661Sksewell@umich.edu#define SC_INCLUDE_FX 514661Sksewell@umich.edu#include "systemc.h" 524661Sksewell@umich.edu#include "fx_precision_double.h" 534661Sksewell@umich.edu 544661Sksewell@umich.edutypedef unsigned int uint; 554661Sksewell@umich.edutypedef unsigned short ushort; 564661Sksewell@umich.edutypedef unsigned long ulong; 574661Sksewell@umich.edu 584661Sksewell@umich.edu#define SHOW_DEFAULT_ASSIGN(a) cerr << #a << " : " << double(a) << " : " << a.to_string(SC_HEX) << "\n" 594661Sksewell@umich.edu#define IDENT_DEFAULT_ASSIGN(a) cerr << "--default_assign-Inf-Inf-Inf-Inf-Inf- " << a << "\n" 604661Sksewell@umich.edu 614661Sksewell@umich.edu//------------------------------------------------------- 624661Sksewell@umich.edustatic void test_fx_float_int() 634661Sksewell@umich.edu{ 644661Sksewell@umich.edu IDENT_DEFAULT_ASSIGN("test_fx_float_int"); 654661Sksewell@umich.edu 664661Sksewell@umich.edu sc_fxval a; a = 0; 6712234Sgabeblack@google.com sc_fxval b; b = 1; 6812234Sgabeblack@google.com sc_fxval c; c = -1; 694661Sksewell@umich.edu sc_fxval d; d = INT_MAX; 704661Sksewell@umich.edu sc_fxval e; e = INT_MIN; 714661Sksewell@umich.edu 724661Sksewell@umich.edu SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 734661Sksewell@umich.edu} 744661Sksewell@umich.edu 754661Sksewell@umich.edustatic void test_fx_float_uint() 764661Sksewell@umich.edu{ 774661Sksewell@umich.edu IDENT_DEFAULT_ASSIGN("test_fx_float_uint"); 784661Sksewell@umich.edu 794661Sksewell@umich.edu sc_fxval a; a = (uint)0; 804661Sksewell@umich.edu sc_fxval b; b = (uint)1; 814661Sksewell@umich.edu sc_fxval c; c = (uint)-1; 824661Sksewell@umich.edu sc_fxval d; d = UINT_MAX; 8310474Sandreas.hansson@arm.com sc_fxval e; e = (uint)abs(INT_MIN); 844661Sksewell@umich.edu 854661Sksewell@umich.edu SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 864661Sksewell@umich.edu} 874661Sksewell@umich.edu 8810474Sandreas.hansson@arm.comstatic void test_fx_float_short() 894661Sksewell@umich.edu{ 904661Sksewell@umich.edu IDENT_DEFAULT_ASSIGN("test_fx_float_short"); 914661Sksewell@umich.edu 924661Sksewell@umich.edu sc_fxval a; a = (short)0; 934661Sksewell@umich.edu sc_fxval b; b = (short)1; 944661Sksewell@umich.edu sc_fxval c; c = (short)-1; 954661Sksewell@umich.edu sc_fxval d; d = SHRT_MAX; 964661Sksewell@umich.edu sc_fxval e; e = SHRT_MIN; 974661Sksewell@umich.edu 984661Sksewell@umich.edu SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 994661Sksewell@umich.edu} 1004661Sksewell@umich.edu 10112234Sgabeblack@google.comstatic void test_fx_float_ushort() 10212234Sgabeblack@google.com{ 1034661Sksewell@umich.edu IDENT_DEFAULT_ASSIGN("test_fx_float_ushort"); 1044661Sksewell@umich.edu 1054661Sksewell@umich.edu sc_fxval a; a = (ushort)0; 1064661Sksewell@umich.edu sc_fxval b; b = (ushort)1; 1074661Sksewell@umich.edu sc_fxval c; c = (ushort)-1; 1084661Sksewell@umich.edu sc_fxval d; d = USHRT_MAX; 1094661Sksewell@umich.edu sc_fxval e; e = (ushort)abs(SHRT_MIN); 1104661Sksewell@umich.edu 1114661Sksewell@umich.edu SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 1124661Sksewell@umich.edu} 1134661Sksewell@umich.edu 1144661Sksewell@umich.edustatic void test_fx_float_long() 1154661Sksewell@umich.edu{ 1164661Sksewell@umich.edu IDENT_DEFAULT_ASSIGN("test_fx_float_long"); 11710474Sandreas.hansson@arm.com 1184661Sksewell@umich.edu sc_fxval a; a = (long)0; 1194661Sksewell@umich.edu sc_fxval b; b = (long)1; 1204661Sksewell@umich.edu sc_fxval c; c = (long)-1; 1214661Sksewell@umich.edu sc_fxval d; d = LONG_MAX; 12210474Sandreas.hansson@arm.com sc_fxval e; e = LONG_MIN; 1234661Sksewell@umich.edu 1244661Sksewell@umich.edu SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 1254661Sksewell@umich.edu} 1264661Sksewell@umich.edu 1274661Sksewell@umich.edustatic void test_fx_float_ulong() 1284661Sksewell@umich.edu{ 1294661Sksewell@umich.edu IDENT_DEFAULT_ASSIGN("test_fx_float_ulong"); 1304661Sksewell@umich.edu 1314661Sksewell@umich.edu sc_fxval a; a = (ulong)0; 1324661Sksewell@umich.edu sc_fxval b; b = (ulong)1; 1334661Sksewell@umich.edu sc_fxval c; c = (ulong)-1; 1344661Sksewell@umich.edu sc_fxval d; d = ULONG_MAX; 1354661Sksewell@umich.edu sc_fxval e; e = (ulong)abs(LONG_MIN); 1364661Sksewell@umich.edu 1374661Sksewell@umich.edu SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 1384661Sksewell@umich.edu} 1394661Sksewell@umich.edu 1409554Sandreas.hansson@arm.comstatic void test_fx_float_float() 14112234Sgabeblack@google.com{ 1429554Sandreas.hansson@arm.com IDENT_DEFAULT_ASSIGN("test_fx_float_float"); 14312234Sgabeblack@google.com 1449554Sandreas.hansson@arm.com sc_fxval a; a = 0.0; 1459554Sandreas.hansson@arm.com sc_fxval b; b = 1.0; 1464661Sksewell@umich.edu sc_fxval c; c = -1.0; 1474661Sksewell@umich.edu sc_fxval d; d = FLT_MAX; 1484661Sksewell@umich.edu sc_fxval e; e = FLT_MIN; 1494661Sksewell@umich.edu 1504661Sksewell@umich.edu SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 1518564Sgblack@eecs.umich.edu} 15212234Sgabeblack@google.com 1534661Sksewell@umich.edustatic void test_fx_float_double() 1548738Sgblack@eecs.umich.edu{ 1554661Sksewell@umich.edu IDENT_DEFAULT_ASSIGN("test_fx_float_double"); 1564661Sksewell@umich.edu 1574661Sksewell@umich.edu sc_fxval a; a = (double)0.0; 1584661Sksewell@umich.edu sc_fxval b; b = (double)1.0; 1598564Sgblack@eecs.umich.edu sc_fxval c; c = (double)-1.0; 16012234Sgabeblack@google.com sc_fxval d; d = DBL_MAX; 1614661Sksewell@umich.edu sc_fxval e; e = DBL_MIN; 1628738Sgblack@eecs.umich.edu 1634661Sksewell@umich.edu SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 1644661Sksewell@umich.edu} 1654661Sksewell@umich.edu 1664661Sksewell@umich.edu//------------------------------------------------------- 1674661Sksewell@umich.edustatic void test_fx_ufix_int() 1684661Sksewell@umich.edu{ 1694661Sksewell@umich.edu IDENT_DEFAULT_ASSIGN("test_fx_ufix_int"); 1704661Sksewell@umich.edu 1714661Sksewell@umich.edu sc_ufix a; a = 0; 1724661Sksewell@umich.edu sc_ufix b; b = 1; 1734661Sksewell@umich.edu sc_ufix c; c = -1; 1744661Sksewell@umich.edu sc_ufix d; d = INT_MAX; 1754661Sksewell@umich.edu sc_ufix e; e = INT_MIN; 1764661Sksewell@umich.edu 1774661Sksewell@umich.edu SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 1784661Sksewell@umich.edu} 1795222Sksewell@umich.edu 1805222Sksewell@umich.edustatic void test_fx_ufix_uint() 1814661Sksewell@umich.edu{ 1824661Sksewell@umich.edu IDENT_DEFAULT_ASSIGN("test_fx_ufix_uint"); 1834661Sksewell@umich.edu 1844661Sksewell@umich.edu sc_ufix a; a = (uint)0; 1854661Sksewell@umich.edu sc_ufix b; b = (uint)1; 1864661Sksewell@umich.edu sc_ufix c; c = (uint)-1; 1874661Sksewell@umich.edu sc_ufix d; d = UINT_MAX; 1884661Sksewell@umich.edu sc_ufix e; e = (uint)abs(INT_MIN); 1894661Sksewell@umich.edu 1904661Sksewell@umich.edu SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 1914661Sksewell@umich.edu} 1924661Sksewell@umich.edu 1934661Sksewell@umich.edustatic void test_fx_ufix_short() 1944661Sksewell@umich.edu{ 1954661Sksewell@umich.edu IDENT_DEFAULT_ASSIGN("test_fx_ufix_short"); 1964661Sksewell@umich.edu 1974661Sksewell@umich.edu sc_ufix a; a = (short)0; 1984661Sksewell@umich.edu sc_ufix b; b = (short)1; 1994661Sksewell@umich.edu sc_ufix c; c = (short)-1; 2004661Sksewell@umich.edu sc_ufix d; d = SHRT_MAX; 2014661Sksewell@umich.edu sc_ufix e; e = SHRT_MIN; 2024661Sksewell@umich.edu 2034661Sksewell@umich.edu SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 2044661Sksewell@umich.edu} 2054661Sksewell@umich.edu 2064661Sksewell@umich.edustatic void test_fx_ufix_ushort() 2074661Sksewell@umich.edu{ 2084661Sksewell@umich.edu IDENT_DEFAULT_ASSIGN("test_fx_ufix_ushort"); 2094661Sksewell@umich.edu 2105222Sksewell@umich.edu sc_ufix a; a = (ushort)0; 2115222Sksewell@umich.edu sc_ufix b; b = (ushort)1; 2124661Sksewell@umich.edu sc_ufix c; c = (ushort)-1; 2134661Sksewell@umich.edu sc_ufix d; d = USHRT_MAX; 2144661Sksewell@umich.edu sc_ufix e; e = (ushort)abs(SHRT_MIN); 2154661Sksewell@umich.edu 2164661Sksewell@umich.edu SHOW_DEFAULT_ASSIGN(a); SHOW_DEFAULT_ASSIGN(b); SHOW_DEFAULT_ASSIGN(c); SHOW_DEFAULT_ASSIGN(d); SHOW_DEFAULT_ASSIGN(e); 2174661Sksewell@umich.edu} 2184661Sksewell@umich.edu 2194661Sksewell@umich.edustatic void test_fx_ufix_long() 2204661Sksewell@umich.edu{ 2214661Sksewell@umich.edu 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