112027Sjungma@eit.uni-kl.de/*****************************************************************************
212027Sjungma@eit.uni-kl.de
312027Sjungma@eit.uni-kl.de  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
412027Sjungma@eit.uni-kl.de  more contributor license agreements.  See the NOTICE file distributed
512027Sjungma@eit.uni-kl.de  with this work for additional information regarding copyright ownership.
612027Sjungma@eit.uni-kl.de  Accellera licenses this file to you under the Apache License, Version 2.0
712027Sjungma@eit.uni-kl.de  (the "License"); you may not use this file except in compliance with the
812027Sjungma@eit.uni-kl.de  License.  You may obtain a copy of the License at
912027Sjungma@eit.uni-kl.de
1012027Sjungma@eit.uni-kl.de    http://www.apache.org/licenses/LICENSE-2.0
1112027Sjungma@eit.uni-kl.de
1212027Sjungma@eit.uni-kl.de  Unless required by applicable law or agreed to in writing, software
1312027Sjungma@eit.uni-kl.de  distributed under the License is distributed on an "AS IS" BASIS,
1412027Sjungma@eit.uni-kl.de  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
1512027Sjungma@eit.uni-kl.de  implied.  See the License for the specific language governing
1612027Sjungma@eit.uni-kl.de  permissions and limitations under the License.
1712027Sjungma@eit.uni-kl.de
1812027Sjungma@eit.uni-kl.de *****************************************************************************/
1912027Sjungma@eit.uni-kl.de
2012027Sjungma@eit.uni-kl.de/*****************************************************************************
2112027Sjungma@eit.uni-kl.de
2212027Sjungma@eit.uni-kl.de  scfx_other_defs.h -
2312027Sjungma@eit.uni-kl.de
2412027Sjungma@eit.uni-kl.de  Original Author: Martin Janssen, Synopsys, Inc.
2512027Sjungma@eit.uni-kl.de
2612027Sjungma@eit.uni-kl.de *****************************************************************************/
2712027Sjungma@eit.uni-kl.de
2812027Sjungma@eit.uni-kl.de/*****************************************************************************
2912027Sjungma@eit.uni-kl.de
3012027Sjungma@eit.uni-kl.de  MODIFICATION LOG - modifiers, enter your name, affiliation, date and
3112027Sjungma@eit.uni-kl.de  changes you are making here.
3212027Sjungma@eit.uni-kl.de
3312027Sjungma@eit.uni-kl.de      Name, Affiliation, Date:
3412027Sjungma@eit.uni-kl.de  Description of Modification:
3512027Sjungma@eit.uni-kl.de
3612027Sjungma@eit.uni-kl.de *****************************************************************************/
3712027Sjungma@eit.uni-kl.de
3812027Sjungma@eit.uni-kl.de// $Log: scfx_other_defs.h,v $
3912027Sjungma@eit.uni-kl.de// Revision 1.1.1.1  2006/12/15 20:20:04  acg
4012027Sjungma@eit.uni-kl.de// SystemC 2.3
4112027Sjungma@eit.uni-kl.de//
4212027Sjungma@eit.uni-kl.de// Revision 1.3  2006/01/13 18:53:58  acg
4312027Sjungma@eit.uni-kl.de// Andy Goodrich: added $Log command so that CVS comments are reproduced in
4412027Sjungma@eit.uni-kl.de// the source.
4512027Sjungma@eit.uni-kl.de//
4612027Sjungma@eit.uni-kl.de
4712027Sjungma@eit.uni-kl.de#ifndef SCFX_OTHER_DEFS_H
4812027Sjungma@eit.uni-kl.de#define SCFX_OTHER_DEFS_H
4912027Sjungma@eit.uni-kl.de
5012027Sjungma@eit.uni-kl.de
5112027Sjungma@eit.uni-kl.de#include "sysc/datatypes/fx/sc_fx_ids.h"
5212027Sjungma@eit.uni-kl.de#include "sysc/datatypes/int/sc_signed.h"
5312027Sjungma@eit.uni-kl.de#include "sysc/datatypes/int/sc_unsigned.h"
5412027Sjungma@eit.uni-kl.de#include "sysc/datatypes/int/sc_int_base.h"
5512027Sjungma@eit.uni-kl.de#include "sysc/datatypes/int/sc_uint_base.h"
5612027Sjungma@eit.uni-kl.de#include "sysc/tracing/sc_trace.h"
5712027Sjungma@eit.uni-kl.de
5812027Sjungma@eit.uni-kl.de
5912027Sjungma@eit.uni-kl.denamespace sc_dt
6012027Sjungma@eit.uni-kl.de{
6112027Sjungma@eit.uni-kl.de
6212027Sjungma@eit.uni-kl.de#ifdef SC_INCLUDE_FX
6312027Sjungma@eit.uni-kl.de
6412027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
6512027Sjungma@eit.uni-kl.de//  CLASS : sc_signed
6612027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
6712027Sjungma@eit.uni-kl.de
6812027Sjungma@eit.uni-kl.de// assignment operators
6912027Sjungma@eit.uni-kl.de
7012027Sjungma@eit.uni-kl.deinline
7112027Sjungma@eit.uni-kl.deconst sc_signed&
7212027Sjungma@eit.uni-kl.desc_signed::operator = ( const sc_fxval& v )
7312027Sjungma@eit.uni-kl.de{
7412027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) /* also triggers OBSERVER_READ call */
7512027Sjungma@eit.uni-kl.de    {
7612027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
7712027Sjungma@eit.uni-kl.de			 "sc_signed::operator = ( const sc_fxval& )" );
7812027Sjungma@eit.uni-kl.de    }
7912027Sjungma@eit.uni-kl.de
8012027Sjungma@eit.uni-kl.de    for( int i = 0; i < length(); ++ i )
8112027Sjungma@eit.uni-kl.de	(*this)[i] = v.get_bit( i );
8212027Sjungma@eit.uni-kl.de
8312027Sjungma@eit.uni-kl.de    return *this;
8412027Sjungma@eit.uni-kl.de}
8512027Sjungma@eit.uni-kl.de
8612027Sjungma@eit.uni-kl.deinline
8712027Sjungma@eit.uni-kl.deconst sc_signed&
8812027Sjungma@eit.uni-kl.desc_signed::operator = ( const sc_fxval_fast& v )
8912027Sjungma@eit.uni-kl.de{
9012027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) /* also triggers OBSERVER_READ call */
9112027Sjungma@eit.uni-kl.de    {
9212027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
9312027Sjungma@eit.uni-kl.de			 "sc_signed::operator = ( const sc_fxval_fast& )" );
9412027Sjungma@eit.uni-kl.de    }
9512027Sjungma@eit.uni-kl.de
9612027Sjungma@eit.uni-kl.de    for( int i = 0; i < length(); ++ i )
9712027Sjungma@eit.uni-kl.de	(*this)[i] = v.get_bit( i );
9812027Sjungma@eit.uni-kl.de
9912027Sjungma@eit.uni-kl.de    return *this;
10012027Sjungma@eit.uni-kl.de}
10112027Sjungma@eit.uni-kl.de
10212027Sjungma@eit.uni-kl.deinline
10312027Sjungma@eit.uni-kl.deconst sc_signed&
10412027Sjungma@eit.uni-kl.desc_signed::operator = ( const sc_fxnum& v )
10512027Sjungma@eit.uni-kl.de{
10612027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) /* also triggers OBSERVER_READ call */
10712027Sjungma@eit.uni-kl.de    {
10812027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
10912027Sjungma@eit.uni-kl.de			 "sc_signed::operator = ( const sc_fxnum& )" );
11012027Sjungma@eit.uni-kl.de    }
11112027Sjungma@eit.uni-kl.de
11212027Sjungma@eit.uni-kl.de    for( int i = 0; i < length(); ++ i )
11312027Sjungma@eit.uni-kl.de	(*this)[i] = v.get_bit( i );
11412027Sjungma@eit.uni-kl.de
11512027Sjungma@eit.uni-kl.de    return *this;
11612027Sjungma@eit.uni-kl.de}
11712027Sjungma@eit.uni-kl.de
11812027Sjungma@eit.uni-kl.deinline
11912027Sjungma@eit.uni-kl.deconst sc_signed&
12012027Sjungma@eit.uni-kl.desc_signed::operator = ( const sc_fxnum_fast& v )
12112027Sjungma@eit.uni-kl.de{
12212027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) /* also triggers OBSERVER_READ call */
12312027Sjungma@eit.uni-kl.de    {
12412027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
12512027Sjungma@eit.uni-kl.de			 "sc_signed::operator = ( const sc_fxnum_fast& )" );
12612027Sjungma@eit.uni-kl.de    }
12712027Sjungma@eit.uni-kl.de
12812027Sjungma@eit.uni-kl.de    for( int i = 0; i < length(); ++ i )
12912027Sjungma@eit.uni-kl.de	(*this)[i] = v.get_bit( i );
13012027Sjungma@eit.uni-kl.de
13112027Sjungma@eit.uni-kl.de    return *this;
13212027Sjungma@eit.uni-kl.de}
13312027Sjungma@eit.uni-kl.de
13412027Sjungma@eit.uni-kl.de
13512027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
13612027Sjungma@eit.uni-kl.de//  CLASS : sc_unsigned
13712027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
13812027Sjungma@eit.uni-kl.de
13912027Sjungma@eit.uni-kl.de// assignment operators
14012027Sjungma@eit.uni-kl.de
14112027Sjungma@eit.uni-kl.deinline
14212027Sjungma@eit.uni-kl.deconst sc_unsigned&
14312027Sjungma@eit.uni-kl.desc_unsigned::operator = ( const sc_fxval& v )
14412027Sjungma@eit.uni-kl.de{
14512027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) /* also triggers OBSERVER_READ call */
14612027Sjungma@eit.uni-kl.de    {
14712027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
14812027Sjungma@eit.uni-kl.de			 "sc_unsigned::operator = ( const sc_fxval& )" );
14912027Sjungma@eit.uni-kl.de    }
15012027Sjungma@eit.uni-kl.de
15112027Sjungma@eit.uni-kl.de    for( int i = 0; i < length(); ++ i )
15212027Sjungma@eit.uni-kl.de	(*this)[i] = v.get_bit( i );
15312027Sjungma@eit.uni-kl.de
15412027Sjungma@eit.uni-kl.de    return *this;
15512027Sjungma@eit.uni-kl.de}
15612027Sjungma@eit.uni-kl.de
15712027Sjungma@eit.uni-kl.deinline
15812027Sjungma@eit.uni-kl.deconst sc_unsigned&
15912027Sjungma@eit.uni-kl.desc_unsigned::operator = ( const sc_fxval_fast& v )
16012027Sjungma@eit.uni-kl.de{
16112027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) /* also triggers OBSERVER_READ call */
16212027Sjungma@eit.uni-kl.de    {
16312027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
16412027Sjungma@eit.uni-kl.de			 "sc_unsigned::operator = ( const sc_fxval_fast& )" );
16512027Sjungma@eit.uni-kl.de    }
16612027Sjungma@eit.uni-kl.de
16712027Sjungma@eit.uni-kl.de    for( int i = 0; i < length(); ++ i )
16812027Sjungma@eit.uni-kl.de	(*this)[i] = v.get_bit( i );
16912027Sjungma@eit.uni-kl.de
17012027Sjungma@eit.uni-kl.de    return *this;
17112027Sjungma@eit.uni-kl.de}
17212027Sjungma@eit.uni-kl.de
17312027Sjungma@eit.uni-kl.deinline
17412027Sjungma@eit.uni-kl.deconst sc_unsigned&
17512027Sjungma@eit.uni-kl.desc_unsigned::operator = ( const sc_fxnum& v )
17612027Sjungma@eit.uni-kl.de{
17712027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) /* also triggers OBSERVER_READ call */
17812027Sjungma@eit.uni-kl.de    {
17912027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
18012027Sjungma@eit.uni-kl.de			 "sc_unsigned::operator = ( const sc_fxnum& )" );
18112027Sjungma@eit.uni-kl.de    }
18212027Sjungma@eit.uni-kl.de
18312027Sjungma@eit.uni-kl.de    for( int i = 0; i < length(); ++ i )
18412027Sjungma@eit.uni-kl.de	(*this)[i] = v.get_bit( i );
18512027Sjungma@eit.uni-kl.de
18612027Sjungma@eit.uni-kl.de    return *this;
18712027Sjungma@eit.uni-kl.de}
18812027Sjungma@eit.uni-kl.de
18912027Sjungma@eit.uni-kl.deinline
19012027Sjungma@eit.uni-kl.deconst sc_unsigned&
19112027Sjungma@eit.uni-kl.desc_unsigned::operator = ( const sc_fxnum_fast& v )
19212027Sjungma@eit.uni-kl.de{
19312027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) /* also triggers OBSERVER_READ call */
19412027Sjungma@eit.uni-kl.de    {
19512027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
19612027Sjungma@eit.uni-kl.de			 "sc_unsigned::operator = ( const sc_fxnum_fast& )" );
19712027Sjungma@eit.uni-kl.de    }
19812027Sjungma@eit.uni-kl.de
19912027Sjungma@eit.uni-kl.de    for( int i = 0; i < length(); ++ i )
20012027Sjungma@eit.uni-kl.de	(*this)[i] = v.get_bit( i );
20112027Sjungma@eit.uni-kl.de
20212027Sjungma@eit.uni-kl.de    return *this;
20312027Sjungma@eit.uni-kl.de}
20412027Sjungma@eit.uni-kl.de
20512027Sjungma@eit.uni-kl.de
20612027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
20712027Sjungma@eit.uni-kl.de//  CLASS : sc_int_base
20812027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
20912027Sjungma@eit.uni-kl.de
21012027Sjungma@eit.uni-kl.de#ifndef _32BIT_
21112027Sjungma@eit.uni-kl.de#define NUM_WIDTH LLWIDTH
21212027Sjungma@eit.uni-kl.de#else
21312027Sjungma@eit.uni-kl.de#define NUM_WIDTH INTWIDTH
21412027Sjungma@eit.uni-kl.de#endif
21512027Sjungma@eit.uni-kl.de
21612027Sjungma@eit.uni-kl.de
21712027Sjungma@eit.uni-kl.de// assignment operators
21812027Sjungma@eit.uni-kl.de
21912027Sjungma@eit.uni-kl.deinline
22012027Sjungma@eit.uni-kl.desc_int_base&
22112027Sjungma@eit.uni-kl.desc_int_base::operator = ( const sc_fxval& v )
22212027Sjungma@eit.uni-kl.de{
22312027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) { /* also triggers OBSERVER_READ call */
22412027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
22512027Sjungma@eit.uni-kl.de			 "sc_int_base::operator = ( const sc_fxval& )" );
22612027Sjungma@eit.uni-kl.de    }
22712027Sjungma@eit.uni-kl.de    for( int i = 0; i < m_len; ++ i ) {
22812027Sjungma@eit.uni-kl.de	set( i, v.get_bit( i ) );
22912027Sjungma@eit.uni-kl.de    }
23012027Sjungma@eit.uni-kl.de    extend_sign();
23112027Sjungma@eit.uni-kl.de    return *this;
23212027Sjungma@eit.uni-kl.de}
23312027Sjungma@eit.uni-kl.de
23412027Sjungma@eit.uni-kl.deinline
23512027Sjungma@eit.uni-kl.desc_int_base&
23612027Sjungma@eit.uni-kl.desc_int_base::operator = ( const sc_fxval_fast& v )
23712027Sjungma@eit.uni-kl.de{
23812027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) { /* also triggers OBSERVER_READ call */
23912027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
24012027Sjungma@eit.uni-kl.de			 "sc_int_base::operator = ( const sc_fxval_fast& )" );
24112027Sjungma@eit.uni-kl.de    }
24212027Sjungma@eit.uni-kl.de    for( int i = 0; i < m_len; ++ i ) {
24312027Sjungma@eit.uni-kl.de	set( i, v.get_bit( i ) );
24412027Sjungma@eit.uni-kl.de    }
24512027Sjungma@eit.uni-kl.de    extend_sign();
24612027Sjungma@eit.uni-kl.de    return *this;
24712027Sjungma@eit.uni-kl.de}
24812027Sjungma@eit.uni-kl.de
24912027Sjungma@eit.uni-kl.deinline
25012027Sjungma@eit.uni-kl.desc_int_base&
25112027Sjungma@eit.uni-kl.desc_int_base::operator = ( const sc_fxnum& v )
25212027Sjungma@eit.uni-kl.de{
25312027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) { /* also triggers OBSERVER_READ call */
25412027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
25512027Sjungma@eit.uni-kl.de			 "sc_int_base::operator = ( const sc_fxnum& )" );
25612027Sjungma@eit.uni-kl.de    }
25712027Sjungma@eit.uni-kl.de    for( int i = 0; i < m_len; ++ i ) {
25812027Sjungma@eit.uni-kl.de	set( i, v.get_bit( i ) );
25912027Sjungma@eit.uni-kl.de    }
26012027Sjungma@eit.uni-kl.de    extend_sign();
26112027Sjungma@eit.uni-kl.de    return *this;
26212027Sjungma@eit.uni-kl.de}
26312027Sjungma@eit.uni-kl.de
26412027Sjungma@eit.uni-kl.deinline
26512027Sjungma@eit.uni-kl.desc_int_base&
26612027Sjungma@eit.uni-kl.desc_int_base::operator = ( const sc_fxnum_fast& v )
26712027Sjungma@eit.uni-kl.de{
26812027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) { /* also triggers OBSERVER_READ call */
26912027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
27012027Sjungma@eit.uni-kl.de			 "sc_int_base::operator = ( const sc_fxnum_fast& )" );
27112027Sjungma@eit.uni-kl.de    }
27212027Sjungma@eit.uni-kl.de    for( int i = 0; i < m_len; ++ i ) {
27312027Sjungma@eit.uni-kl.de	set( i, v.get_bit( i ) );
27412027Sjungma@eit.uni-kl.de    }
27512027Sjungma@eit.uni-kl.de    extend_sign();
27612027Sjungma@eit.uni-kl.de    return *this;
27712027Sjungma@eit.uni-kl.de}
27812027Sjungma@eit.uni-kl.de
27912027Sjungma@eit.uni-kl.de#undef NUM_WIDTH
28012027Sjungma@eit.uni-kl.de
28112027Sjungma@eit.uni-kl.de
28212027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
28312027Sjungma@eit.uni-kl.de//  CLASS : sc_uint_base
28412027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
28512027Sjungma@eit.uni-kl.de
28612027Sjungma@eit.uni-kl.de// assignment operators
28712027Sjungma@eit.uni-kl.de
28812027Sjungma@eit.uni-kl.deinline
28912027Sjungma@eit.uni-kl.desc_uint_base&
29012027Sjungma@eit.uni-kl.desc_uint_base::operator = ( const sc_fxval& v )
29112027Sjungma@eit.uni-kl.de{
29212027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) { /* also triggers OBSERVER_READ call */
29312027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
29412027Sjungma@eit.uni-kl.de			 "sc_uint_base::operator = ( const sc_fxval& )" );
29512027Sjungma@eit.uni-kl.de    }
29612027Sjungma@eit.uni-kl.de    for( int i = 0; i < m_len; ++ i ) {
29712027Sjungma@eit.uni-kl.de	set( i, v.get_bit( i ) );
29812027Sjungma@eit.uni-kl.de    }
29912027Sjungma@eit.uni-kl.de    extend_sign();
30012027Sjungma@eit.uni-kl.de    return *this;
30112027Sjungma@eit.uni-kl.de}
30212027Sjungma@eit.uni-kl.de
30312027Sjungma@eit.uni-kl.deinline
30412027Sjungma@eit.uni-kl.desc_uint_base&
30512027Sjungma@eit.uni-kl.desc_uint_base::operator = ( const sc_fxval_fast& v )
30612027Sjungma@eit.uni-kl.de{
30712027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) { /* also triggers OBSERVER_READ call */
30812027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
30912027Sjungma@eit.uni-kl.de			 "sc_uint_base::operator = ( const sc_fxval_fast& )" );
31012027Sjungma@eit.uni-kl.de    }
31112027Sjungma@eit.uni-kl.de    for( int i = 0; i < m_len; ++ i ) {
31212027Sjungma@eit.uni-kl.de	set( i, v.get_bit( i ) );
31312027Sjungma@eit.uni-kl.de    }
31412027Sjungma@eit.uni-kl.de    extend_sign();
31512027Sjungma@eit.uni-kl.de    return *this;
31612027Sjungma@eit.uni-kl.de}
31712027Sjungma@eit.uni-kl.de
31812027Sjungma@eit.uni-kl.deinline
31912027Sjungma@eit.uni-kl.desc_uint_base&
32012027Sjungma@eit.uni-kl.desc_uint_base::operator = ( const sc_fxnum& v )
32112027Sjungma@eit.uni-kl.de{
32212027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) { /* also triggers OBSERVER_READ call */
32312027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
32412027Sjungma@eit.uni-kl.de			 "sc_uint_base::operator = ( const sc_fxnum& )" );
32512027Sjungma@eit.uni-kl.de    }
32612027Sjungma@eit.uni-kl.de    for( int i = 0; i < m_len; ++ i ) {
32712027Sjungma@eit.uni-kl.de	set( i, v.get_bit( i ) );
32812027Sjungma@eit.uni-kl.de    }
32912027Sjungma@eit.uni-kl.de    extend_sign();
33012027Sjungma@eit.uni-kl.de    return *this;
33112027Sjungma@eit.uni-kl.de}
33212027Sjungma@eit.uni-kl.de
33312027Sjungma@eit.uni-kl.deinline
33412027Sjungma@eit.uni-kl.desc_uint_base&
33512027Sjungma@eit.uni-kl.desc_uint_base::operator = ( const sc_fxnum_fast& v )
33612027Sjungma@eit.uni-kl.de{
33712027Sjungma@eit.uni-kl.de    if( ! v.is_normal() ) { /* also triggers OBSERVER_READ call */
33812027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( sc_core::SC_ID_INVALID_FX_VALUE_,
33912027Sjungma@eit.uni-kl.de			 "sc_uint_base::operator = ( const sc_fxnum_fast& )" );
34012027Sjungma@eit.uni-kl.de    }
34112027Sjungma@eit.uni-kl.de    for( int i = 0; i < m_len; ++ i ) {
34212027Sjungma@eit.uni-kl.de	set( i, v.get_bit( i ) );
34312027Sjungma@eit.uni-kl.de    }
34412027Sjungma@eit.uni-kl.de    extend_sign();
34512027Sjungma@eit.uni-kl.de    return *this;
34612027Sjungma@eit.uni-kl.de}
34712027Sjungma@eit.uni-kl.de
34812027Sjungma@eit.uni-kl.de
34912027Sjungma@eit.uni-kl.de#endif
35012027Sjungma@eit.uni-kl.de
35112027Sjungma@eit.uni-kl.de
35212027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
35312027Sjungma@eit.uni-kl.de//  FUNCTION : sc_trace
35412027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
35512027Sjungma@eit.uni-kl.de
35612027Sjungma@eit.uni-kl.deinline
35712027Sjungma@eit.uni-kl.devoid
35812027Sjungma@eit.uni-kl.desc_trace( sc_core::sc_trace_file* tf,
35912027Sjungma@eit.uni-kl.de	  const sc_fxval& object, const std::string& name )
36012027Sjungma@eit.uni-kl.de{
36112027Sjungma@eit.uni-kl.de    if( tf )
36212027Sjungma@eit.uni-kl.de	tf->trace( object, name );
36312027Sjungma@eit.uni-kl.de}
36412027Sjungma@eit.uni-kl.de
36512027Sjungma@eit.uni-kl.deinline
36612027Sjungma@eit.uni-kl.devoid
36712027Sjungma@eit.uni-kl.desc_trace( sc_core::sc_trace_file* tf,
36812027Sjungma@eit.uni-kl.de	  const sc_fxval* object, const std::string& name )
36912027Sjungma@eit.uni-kl.de{
37012027Sjungma@eit.uni-kl.de    if( tf )
37112027Sjungma@eit.uni-kl.de	tf->trace( *object, name );
37212027Sjungma@eit.uni-kl.de}
37312027Sjungma@eit.uni-kl.de
37412027Sjungma@eit.uni-kl.deinline
37512027Sjungma@eit.uni-kl.devoid
37612027Sjungma@eit.uni-kl.desc_trace( sc_core::sc_trace_file* tf,
37712027Sjungma@eit.uni-kl.de	  const sc_fxval_fast& object, const std::string& name )
37812027Sjungma@eit.uni-kl.de{
37912027Sjungma@eit.uni-kl.de    if( tf )
38012027Sjungma@eit.uni-kl.de	tf->trace( object, name );
38112027Sjungma@eit.uni-kl.de}
38212027Sjungma@eit.uni-kl.de
38312027Sjungma@eit.uni-kl.deinline
38412027Sjungma@eit.uni-kl.devoid
38512027Sjungma@eit.uni-kl.desc_trace( sc_core::sc_trace_file* tf,
38612027Sjungma@eit.uni-kl.de	  const sc_fxval_fast* object, const std::string& name )
38712027Sjungma@eit.uni-kl.de{
38812027Sjungma@eit.uni-kl.de    if( tf )
38912027Sjungma@eit.uni-kl.de	tf->trace( *object, name );
39012027Sjungma@eit.uni-kl.de}
39112027Sjungma@eit.uni-kl.de
39212027Sjungma@eit.uni-kl.deinline
39312027Sjungma@eit.uni-kl.devoid
39412027Sjungma@eit.uni-kl.desc_trace( sc_core::sc_trace_file* tf,
39512027Sjungma@eit.uni-kl.de	  const sc_fxnum& object, const std::string& name )
39612027Sjungma@eit.uni-kl.de{
39712027Sjungma@eit.uni-kl.de    if( tf )
39812027Sjungma@eit.uni-kl.de	tf->trace( object, name );
39912027Sjungma@eit.uni-kl.de}
40012027Sjungma@eit.uni-kl.de
40112027Sjungma@eit.uni-kl.deinline
40212027Sjungma@eit.uni-kl.devoid
40312027Sjungma@eit.uni-kl.desc_trace( sc_core::sc_trace_file* tf,
40412027Sjungma@eit.uni-kl.de	  const sc_fxnum* object, const std::string& name )
40512027Sjungma@eit.uni-kl.de{
40612027Sjungma@eit.uni-kl.de    if( tf )
40712027Sjungma@eit.uni-kl.de	tf->trace( *object, name );
40812027Sjungma@eit.uni-kl.de}
40912027Sjungma@eit.uni-kl.de
41012027Sjungma@eit.uni-kl.deinline
41112027Sjungma@eit.uni-kl.devoid
41212027Sjungma@eit.uni-kl.desc_trace( sc_core::sc_trace_file* tf,
41312027Sjungma@eit.uni-kl.de	  const sc_fxnum_fast& object, const std::string& name )
41412027Sjungma@eit.uni-kl.de{
41512027Sjungma@eit.uni-kl.de    if( tf )
41612027Sjungma@eit.uni-kl.de	tf->trace( object, name );
41712027Sjungma@eit.uni-kl.de}
41812027Sjungma@eit.uni-kl.de
41912027Sjungma@eit.uni-kl.deinline
42012027Sjungma@eit.uni-kl.devoid
42112027Sjungma@eit.uni-kl.desc_trace( sc_core::sc_trace_file* tf,
42212027Sjungma@eit.uni-kl.de	  const sc_fxnum_fast* object, const std::string& name )
42312027Sjungma@eit.uni-kl.de{
42412027Sjungma@eit.uni-kl.de    if( tf )
42512027Sjungma@eit.uni-kl.de	tf->trace( *object, name );
42612027Sjungma@eit.uni-kl.de}
42712027Sjungma@eit.uni-kl.de
42812027Sjungma@eit.uni-kl.de} // namespace sc_dt
42912027Sjungma@eit.uni-kl.de
43012027Sjungma@eit.uni-kl.de
43112027Sjungma@eit.uni-kl.de#endif
43212027Sjungma@eit.uni-kl.de
43312027Sjungma@eit.uni-kl.de// Taf!
434