summaryrefslogtreecommitdiff
path: root/src/systemc/tests/systemc/datatypes/fx/bit
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2018-05-24 01:37:55 -0700
committerGabe Black <gabeblack@google.com>2018-08-08 10:09:54 +0000
commit16fa8d7cc8c92f5ab879e4cf9c6c0bbb3567860f (patch)
tree7b6faaacb4574a555e561534aa4a8508c0624c32 /src/systemc/tests/systemc/datatypes/fx/bit
parent7235d3b5211d0ba8f528d930a4c1e7ad62eec51a (diff)
downloadgem5-16fa8d7cc8c92f5ab879e4cf9c6c0bbb3567860f.tar.xz
systemc: Import tests from the Accellera systemc distribution.
Change-Id: Iad76b398949a55d768a34d027a2d8e3739953da6 Reviewed-on: https://gem5-review.googlesource.com/10845 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc/tests/systemc/datatypes/fx/bit')
-rw-r--r--src/systemc/tests/systemc/datatypes/fx/bit/golden/test.log121
-rw-r--r--src/systemc/tests/systemc/datatypes/fx/bit/main.cpp67
-rw-r--r--src/systemc/tests/systemc/datatypes/fx/bit/ref_files/t_all.00
-rw-r--r--src/systemc/tests/systemc/datatypes/fx/bit/ref_files/t_all.10
-rw-r--r--src/systemc/tests/systemc/datatypes/fx/bit/ref_files/test_bit_FX_off.dat120
-rw-r--r--src/systemc/tests/systemc/datatypes/fx/bit/ref_files/test_bit_FX_on.dat120
-rw-r--r--src/systemc/tests/systemc/datatypes/fx/bit/test.f2
-rw-r--r--src/systemc/tests/systemc/datatypes/fx/bit/test_all.hh80
-rw-r--r--src/systemc/tests/systemc/datatypes/fx/bit/test_bit.cpp86
9 files changed, 596 insertions, 0 deletions
diff --git a/src/systemc/tests/systemc/datatypes/fx/bit/golden/test.log b/src/systemc/tests/systemc/datatypes/fx/bit/golden/test.log
new file mode 100644
index 000000000..6d2694bb2
--- /dev/null
+++ b/src/systemc/tests/systemc/datatypes/fx/bit/golden/test.log
@@ -0,0 +1,121 @@
+SystemC Simulation
+T_FX_FIX 13 13
+............. |..|..|..|..|
+||||||||||||| .||.||.||.||.
+a = 0b0110110110110
+a = 0b0000000001010
+T_FX_FIXED 13 13
+............. |..|..|..|..|
+||||||||||||| .||.||.||.||.
+a = 0b0110110110110
+a = 0b0000000001010
+T_FX_UFIX 13 13
+............. |..|..|..|..|
+||||||||||||| .||.||.||.||.
+a = 0b00110110110110
+a = 0b00000000001010
+T_FX_UFIXED 13 13
+............. |..|..|..|..|
+||||||||||||| .||.||.||.||.
+a = 0b00110110110110
+a = 0b00000000001010
+T_FX_FIX 13 0
+............. |..|..|..|..|
+||||||||||||| .||.||.||.||.
+a = 0b.0110110110110
+a = 0b.0000000000000
+T_FX_FIXED 13 0
+............. |..|..|..|..|
+||||||||||||| .||.||.||.||.
+a = 0b.0110110110110
+a = 0b.0000000000000
+T_FX_UFIX 13 0
+............. |..|..|..|..|
+||||||||||||| .||.||.||.||.
+a = 0b0.0110110110110
+a = 0b0.0000000000000
+T_FX_UFIXED 13 0
+............. |..|..|..|..|
+||||||||||||| .||.||.||.||.
+a = 0b0.0110110110110
+a = 0b0.0000000000000
+T_FX_FIX 5 13
+..... |..|.
+||||| .||.|
+a = 0b1011000000000
+a = 0b0000000000000
+T_FX_FIXED 5 13
+..... |..|.
+||||| .||.|
+a = 0b1011000000000
+a = 0b0000000000000
+T_FX_UFIX 5 13
+..... |..|.
+||||| .||.|
+a = 0b01011000000000
+a = 0b00000000000000
+T_FX_UFIXED 5 13
+..... |..|.
+||||| .||.|
+a = 0b01011000000000
+a = 0b00000000000000
+T_FX_FIX 65 65
+................................................................. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.
+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.|
+a = 0b10110110110110110110110110110110110110110110110110110110110110110
+a = 0b00000000000000000000000000000000000000000000000000000000000001010
+T_FX_FIXED 65 65
+................................................................. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.
+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.|
+a = 0b10110110110110110110110110110110110110110110110110110110110110110
+a = 0b00000000000000000000000000000000000000000000000000000000000001010
+T_FX_UFIX 65 65
+................................................................. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.
+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.|
+a = 0b010110110110110110110110110110110110110110110110110110110110110110
+a = 0b000000000000000000000000000000000000000000000000000000000000001010
+T_FX_UFIXED 65 65
+................................................................. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.
+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.|
+a = 0b010110110110110110110110110110110110110110110110110110110110110110
+a = 0b000000000000000000000000000000000000000000000000000000000000001010
+T_FX_FIX 65 33
+................................................................. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.
+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.|
+a = 0b101101101101101101101101101101101.10110110110110110110110110110110
+a = 0b000000000000000000000000000001010.00000000000000000000000000000000
+T_FX_FIXED 65 33
+................................................................. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.
+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.|
+a = 0b101101101101101101101101101101101.10110110110110110110110110110110
+a = 0b000000000000000000000000000001010.00000000000000000000000000000000
+T_FX_UFIX 65 33
+................................................................. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.
+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.|
+a = 0b0101101101101101101101101101101101.10110110110110110110110110110110
+a = 0b0000000000000000000000000000001010.00000000000000000000000000000000
+T_FX_UFIXED 65 33
+................................................................. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.
+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.|
+a = 0b0101101101101101101101101101101101.10110110110110110110110110110110
+a = 0b0000000000000000000000000000001010.00000000000000000000000000000000
+T_FX_FIX 65 111
+................................................................. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.
+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.|
+a = 0b101101101101101101101101101101101101101101101101101101101101101100000000000000000000000000000000000000000000000
+a = 0b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+T_FX_FIXED 65 111
+................................................................. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.
+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.|
+a = 0b101101101101101101101101101101101101101101101101101101101101101100000000000000000000000000000000000000000000000
+a = 0b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+T_FX_UFIX 65 111
+................................................................. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.
+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.|
+a = 0b0101101101101101101101101101101101101101101101101101101101101101100000000000000000000000000000000000000000000000
+a = 0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+T_FX_UFIXED 65 111
+................................................................. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.
+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.|
+a = 0b0101101101101101101101101101101101101101101101101101101101101101100000000000000000000000000000000000000000000000
+a = 0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
diff --git a/src/systemc/tests/systemc/datatypes/fx/bit/main.cpp b/src/systemc/tests/systemc/datatypes/fx/bit/main.cpp
new file mode 100644
index 000000000..f3e25cc6f
--- /dev/null
+++ b/src/systemc/tests/systemc/datatypes/fx/bit/main.cpp
@@ -0,0 +1,67 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ main.cpp --
+
+ Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+// This may look like C code, but it is really -*- C++ -*-
+//
+// main.cxx<3> --
+// Copyright Synopsys 1998
+// Author : Ric Hilderink
+// Created On : Mon Jan 11 13:25:23 1999
+// Status : none
+//
+
+
+#define SC_INCLUDE_FX
+#include "systemc.h"
+#include "test_all.hh"
+
+
+extern void test_bit(ostream&, int, int);
+
+static void test_cases(ostream& out, int wl, int iwl)
+{
+ test_bit(out, wl, iwl);
+}
+
+
+int sc_main( int, char** )
+{
+ int wl = 0, iwl = 0;
+ test_cases(cout, wl, wl);
+
+ return 0;
+}
diff --git a/src/systemc/tests/systemc/datatypes/fx/bit/ref_files/t_all.0 b/src/systemc/tests/systemc/datatypes/fx/bit/ref_files/t_all.0
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/systemc/tests/systemc/datatypes/fx/bit/ref_files/t_all.0
diff --git a/src/systemc/tests/systemc/datatypes/fx/bit/ref_files/t_all.1 b/src/systemc/tests/systemc/datatypes/fx/bit/ref_files/t_all.1
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/systemc/tests/systemc/datatypes/fx/bit/ref_files/t_all.1
diff --git a/src/systemc/tests/systemc/datatypes/fx/bit/ref_files/test_bit_FX_off.dat b/src/systemc/tests/systemc/datatypes/fx/bit/ref_files/test_bit_FX_off.dat
new file mode 100644
index 000000000..b93cc245a
--- /dev/null
+++ b/src/systemc/tests/systemc/datatypes/fx/bit/ref_files/test_bit_FX_off.dat
@@ -0,0 +1,120 @@
+T_FX_FIX 13 13
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.|||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIXED 13 13
+................................................................................ ............|..|..|..|..........................................................
+..........|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ..........||.||.||.||.||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIX 13 13
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+||||||||||||||||||||||||||...................................................... .||.||.||.||.||.||.||.||.|......................................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIXED 13 13
+................................................................................ ............|..|..|..|..........................................................
+..........|||||||||||||......................................................... ..........||.||.||.||.|.........................................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIX 13 0
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.|||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIXED 13 0
+................................................................................ |..|..|..|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.......................................................................
+.a = NaN
+a = 0b.0111111111111
+T_FX_UFIX 13 0
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+||||||||||||||||||||||||||...................................................... .||.||.||.||.||.||.||.||.|......................................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIXED 13 0
+................................................................................ |..|..|..|......................................................................
+||||||||||...................................................................... .||.||.||.......................................................................
+.a = NaN
+a = 0b.01111111111111e+1
+T_FX_FIX 5 13
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.|||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIXED 5 13
+................................................................................ ..................|..|..........................................................
+..................|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ...................||.||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0
+T_FX_UFIX 5 13
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+||||||||||||||||||||||||||...................................................... .||.||.||.||.||.||.||.||.|......................................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIXED 5 13
+................................................................................ ..................|..|..........................................................
+..................|||||......................................................... ...................||.|.........................................................
+.a = NaN
+a = 0b.0
+T_FX_FIX 65 65
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.|||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIXED 65 65
+................................................................................ .....................|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.......
+..........|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .....................|||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.|||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIX 65 65
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+||||||||||||||||||||||||||...................................................... .||.||.||.||.||.||.||.||.|......................................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIXED 65 65
+................................................................................ .....................|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.......
+...........................................................................|.... ...........................................................................|....
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIX 65 33
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.|||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIXED 65 33
+................................................................................ |..|..|..|..|..|..|..|..|..|..|..|..|..|..||||||||||||||||||||||||||||||||||||||
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| |||.||.||.||.||.||.||.||.||.||.||.||.||.||......................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIX 65 33
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+||||||||||||||||||||||||||...................................................... .||.||.||.||.||.||.||.||.|......................................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIXED 65 33
+................................................................................ |..|..|..|..|..|..|..|..|..|..|..|..|..|..|.....................................
+...........................................|.................................... ...........................................|....................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIX 65 111
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.|||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIXED 65 111
+................................................................................ .........................................................|..|..|..|..|..|..|..|.
+........................................................|||||||||||||||||||||||| ........................................................|.||.||.||.||.||.||.||.|
+.a = NaN
+a = 0b.0
+T_FX_UFIX 65 111
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+||||||||||||||||||||||||||...................................................... .||.||.||.||.||.||.||.||.|......................................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIXED 65 111
+................................................................................ .........................................................|..|..|..|..|..|..|..|.
+................................................................................ ................................................................................
+.a = NaN
+a = 0b.0
diff --git a/src/systemc/tests/systemc/datatypes/fx/bit/ref_files/test_bit_FX_on.dat b/src/systemc/tests/systemc/datatypes/fx/bit/ref_files/test_bit_FX_on.dat
new file mode 100644
index 000000000..ddded08c3
--- /dev/null
+++ b/src/systemc/tests/systemc/datatypes/fx/bit/ref_files/test_bit_FX_on.dat
@@ -0,0 +1,120 @@
+T_FX_FIX 13 13
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.|||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIXED 13 13
+................................................................................ ............|..|..|..|..........................................................
+..........|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ..........||.||.||.||.||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIX 13 13
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+||||||||||||||||||||||||||...................................................... .||.||.||.||.||.||.||.||.|......................................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIXED 13 13
+................................................................................ ............|..|..|..|..........................................................
+..........|||||||||||||......................................................... ..........||.||.||.||.|.........................................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIX 13 0
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.|||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIXED 13 0
+................................................................................ |||.||.||.||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| |..|..|..|......................................................................
+.a = NaN
+a = 0b.0111111111111
+T_FX_UFIX 13 0
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+||||||||||||||||||||||||||...................................................... .||.||.||.||.||.||.||.||.|......................................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIXED 13 0
+................................................................................ |..|..|..|......................................................................
+||||||||||...................................................................... .||.||.||.......................................................................
+.a = NaN
+a = 0b.01111111111111e+1
+T_FX_FIX 5 13
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.|||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIXED 5 13
+................................................................................ ..................|..|..........................................................
+..................|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ...................||.||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0
+T_FX_UFIX 5 13
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+||||||||||||||||||||||||||...................................................... .||.||.||.||.||.||.||.||.|......................................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIXED 5 13
+................................................................................ ..................|..|..........................................................
+..................|||||......................................................... ...................||.|.........................................................
+.a = NaN
+a = 0b.0
+T_FX_FIX 65 65
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.|||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIXED 65 65
+................................................................................ ............|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.......
+..........|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ..........||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.|||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIX 65 65
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+||||||||||||||||||||||||||...................................................... .||.||.||.||.||.||.||.||.|......................................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIXED 65 65
+................................................................................ ............|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.......
+..........|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||..... ..........||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.||.....
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIX 65 33
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.|||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIXED 65 33
+................................................................................ |||.||.||.||.||.||.||.||.||.||.||.||.||.||.|||||||||||||||||||||||||||||||||||||
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| |..|..|..|..|..|..|..|..|..|..|..|..|..|..|.....................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIX 65 33
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+||||||||||||||||||||||||||...................................................... .||.||.||.||.||.||.||.||.|......................................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIXED 65 33
+................................................................................ |..|..|..|..|..|..|..|..|..|..|..|..|..|..|.....................................
+|||||||||||||||||||||||||||||||||||||||||||..................................... .||.||.||.||.||.||.||.||.||.||.||.||.||.||......................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIX 65 111
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| .||.||.||.||.||.||.||.||.|||||||||||||||||||||||||||||||||||||||||||||||||||||||
+.a = NaN
+a = 0b.0101e+5
+T_FX_FIXED 65 111
+................................................................................ .........................................................|..|..|..|..|..|..|..|.
+........................................................|||||||||||||||||||||||| ........................................................|.||.||.||.||.||.||.||.|
+.a = NaN
+a = 0b.0
+T_FX_UFIX 65 111
+................................................................................ |..|..|..|..|..|..|..|..|.......................................................
+||||||||||||||||||||||||||...................................................... .||.||.||.||.||.||.||.||.|......................................................
+.a = NaN
+a = 0b.0101e+5
+T_FX_UFIXED 65 111
+................................................................................ .........................................................|..|..|..|..|..|..|..|.
+........................................................|||||||||||||||||||||||| ........................................................|.||.||.||.||.||.||.||.|
+.a = NaN
+a = 0b.0
diff --git a/src/systemc/tests/systemc/datatypes/fx/bit/test.f b/src/systemc/tests/systemc/datatypes/fx/bit/test.f
new file mode 100644
index 000000000..cb82c1ef5
--- /dev/null
+++ b/src/systemc/tests/systemc/datatypes/fx/bit/test.f
@@ -0,0 +1,2 @@
+bit/main.cpp
+bit/test_bit.cpp
diff --git a/src/systemc/tests/systemc/datatypes/fx/bit/test_all.hh b/src/systemc/tests/systemc/datatypes/fx/bit/test_all.hh
new file mode 100644
index 000000000..592b7ed4e
--- /dev/null
+++ b/src/systemc/tests/systemc/datatypes/fx/bit/test_all.hh
@@ -0,0 +1,80 @@
+// This may look like C code, but it is really -*- C++ -*-
+//
+// test_all.hh<2> --
+// Copyright Synopsys 1998
+// Author : Ric Hilderink
+// Created On : Thu Jan 21 10:32:46 1999
+// Status : none
+//
+
+#ifndef _test_all_hh_
+#define _test_all_hh_
+
+
+
+#define TEST_BIT_T(T_op) \
+{ \
+ out << #T_op << " " << T_WL << " " << T_IWL << "\n"; \
+ sc_fxtype_context fooc(sc_fxtype_params(T_WL, T_IWL)); \
+ T_op a = 0; \
+ int i; \
+ for (i = 0; i < T_WL; ++i) \
+ { \
+ if (a[i]) \
+ out << "|"; \
+ else \
+ out << "."; \
+ } \
+ out << "\t"; \
+ for (i = 0; i < T_WL; i += 3) \
+ a[i] = 1; \
+ for (i = 0; i < T_WL; ++i) \
+ { \
+ if (a[i]) \
+ out << "|"; \
+ else \
+ out << "."; \
+ } \
+ out << "\n"; \
+ a = 0; \
+ a = ~a; \
+ for (i = 0; i < T_WL; ++i) \
+ { \
+ if (a[i]) \
+ out << "|"; \
+ else \
+ out << "."; \
+ } \
+ out << "\t"; \
+ for (i = 0; i < T_WL; i += 3) \
+ a[i] = 0; \
+ for (i = 0; i < T_WL; ++i) \
+ { \
+ if (a[i]) \
+ out << "|"; \
+ else \
+ out << "."; \
+ } \
+ out << "\n"; \
+ out << "a = " << a.to_string(SC_BIN) << "\n"; \
+ a = "0b01010"; \
+ out << "a = " << a.to_string(SC_BIN) << "\n"; \
+}
+
+
+#define TEST_BIT \
+TEST_BIT_T(T_FX_FIX); \
+TEST_BIT_T(T_FX_FIXED); \
+TEST_BIT_T(T_FX_UFIX); \
+TEST_BIT_T(T_FX_UFIXED);
+
+
+#define T_FX_UFIX sc_ufix
+#define T_FX_FIX sc_fix
+#define T_FX_FIXED sc_fixed<T_WL, T_IWL>
+#define T_FX_UFIXED sc_ufixed<T_WL, T_IWL>
+
+#define T_WL 4
+#define T_IWL 4
+
+#endif
diff --git a/src/systemc/tests/systemc/datatypes/fx/bit/test_bit.cpp b/src/systemc/tests/systemc/datatypes/fx/bit/test_bit.cpp
new file mode 100644
index 000000000..e4bb174cf
--- /dev/null
+++ b/src/systemc/tests/systemc/datatypes/fx/bit/test_bit.cpp
@@ -0,0 +1,86 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ test_bit.cpp --
+
+ Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+// This may look like C code, but it is really -*- C++ -*-
+//
+// test_bit.cxx --
+// Copyright Synopsys 1998
+// Author : Ric Hilderink
+// Created On : Thu Jan 21 10:27:26 1999
+// Status : none
+//
+
+
+#define SC_INCLUDE_FX
+#include "systemc.h"
+#include "test_all.hh"
+
+
+void test_bit(ostream& out, int wl, int iwl)
+{
+#undef T_WL
+#undef T_IWL
+#define T_WL 13
+#define T_IWL 13
+ TEST_BIT;
+#undef T_WL
+#undef T_IWL
+#define T_WL 13
+#define T_IWL 0
+ TEST_BIT;
+#undef T_WL
+#undef T_IWL
+#define T_WL 5
+#define T_IWL 13
+ TEST_BIT;
+
+#undef T_WL
+#undef T_IWL
+#define T_WL 65
+#define T_IWL 65
+ TEST_BIT;
+#undef T_WL
+#undef T_IWL
+#define T_WL 65
+#define T_IWL 33
+ TEST_BIT;
+#undef T_WL
+#undef T_IWL
+#define T_WL 65
+#define T_IWL 111
+ TEST_BIT;
+}