summaryrefslogtreecommitdiff
path: root/src/systemc/tests/systemc/datatypes/fx/bit/test_all.hh
blob: 592b7ed4e6b37e0ceeb40e5d53106871b35e6472 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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