summaryrefslogtreecommitdiff
path: root/src/systemc/tests/systemc/misc/unit/data/user_guide/ch9/std_ulogic_vector_datatype/golden/std_ulogic_vector_datatype.log.macosx64
blob: d168d15ca7e8722b9600b741aeeb9d2f27544459 (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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
SystemC Simulation

INTEGER SIZE 		= 4 bytes
SHORT INTEGER SIZE 	= 2 bytes
LONG INTEGER SIZE 	= 8 bytes
UNSIGNED LONG SIZE 	= 8 bytes
SIGNED LONG SIZE 	= 8 bytes

std_ulogic_vector 	<=	 C++ string
-------------------------------------------
A = 01XZXXXXX		 "01XZUWLH-" 
B = XX0XX1XXX		 "ZZ1XX0UU1WWW" 
BIG  = 11110000111100001111000011110000111100001111000011110000111100001111
      "11110000111100001111000011110000111100001111000011110000111100001111"
HUGE = 1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111000011110000111100001111000011110000111100001111000011110000
       1111

std_ulogic_vector 	<=	 std_ulogic_vector
--------------------------------------------------
C = XX0XX1XXX		 ZZ1XX0XX1XXX
BIG2 = 11110000111100001111000011110000111100001111000011110000111100001111
      "11110000111100001111000011110000111100001111000011110000111100001111"

std_ulogic_vector 	<=	 C++ array of bool
--------------------------------------------------
D = XXXXZX10X		 -, L, H, W, Z, X, 1, 0, U
E = 10011XXXX		 X, X, 1, 1, 0, 0, 1, 1, X, X, U, U
BIG3 = 11110000111100001111000011110000111100001111000011110000111100001111
      "11110000111100001111000011110000111100001111000011110000111100001111
       000011110000"

std_ulogic_vector 	<=	 bool_vector
--------------------------------------------
F = 1010		 "1010" 

std_ulogic_vector 	<=	 unsigned long
----------------------------------------------
H = 1001					 ...10001001 (137)
I = 00000000000000000000000010001001		 ...10001001 (137)
J = 0000000000000000000000000000000010001001	 ...10001001 (137)

std_ulogic_vector 	<=	 sc_unsigned
--------------------------------------------
K = 0011		       11 (3)
L = 1101		     1101 (13)
M = 1001		 10001001 (137)

std_ulogic_vector 	<=	 signed long
--------------------------------------------
N = 01001					 ...010001001 (137)
O = 00000000000000000000000010001001		 ...010001001 (137)
P = 0000000000000000000000000000000010001001	 ...010001001 (137)
Q = 10111					 ...101110111 (-137)
R = 11111111111111111111111101110111		 ...101110111 (-137)
S = 1111111111111111111111111111111101110111	 ...101110111 (-137)

std_ulogic_vector 	<=	 sc_signed
------------------------------------------
T = 00011		       011 (3)
U = 01101		     01101 (13)
V = 01001		 010001001 (137)
W = 11101		       101 (-3)
X = 10011		     10011 (-13)
Y = 10111		 101110111 (-137)

std_ulogic_vector 		<=		 to_uint()
-----------------------------------------------------------------
TU1 = 				          1001	 9
TU2 =         10000000000000000000000000000001	 2147483649
TU3 = 0000000110000000000000000000000000000001	 2147483649
TU4 = 1101 					 1	      (01)
TU4 = 1101 					 13	    (1101)
TU4 = 1101 					 13	(00001101)

std_ulogic_vector 		<=		 to_int()
-----------------------------------------------------------------
TS1 = 				          1001	 -7
TS2 =         11111111111111111111101111111001	 -1031
TS3 = 0000000111111111111111111111101111111001	 -1031
TS4 = 11001 					 1	      (001)
TS4 = 11001 					 -7	    (11001)
TS4 = 11001 					 -7	(111111001)

std_ulogic_vector 		<=		 Typecast sc_unsigned
-----------------------------------------------------------------
TCU1 = 1101 					 1	      (01)
TCU1 = 1101 					 13	    (1101)
TCU1 = 1101 					 13	(00001101)

std_ulogic_vector 		<=		 Typecast sc_signed
-----------------------------------------------------------------
TCS1 = 11001 					 1	      (001)
TCS1 = 11001 					 -7	    (11001)
TCS1 = 11001 					 25	(000011001)

std_ulogic_vector 	<=	 to_string()
--------------------------------------------
TSTR = XXZ01XXXX 		 XXZ01XXXX

range() tests
-----------------------------------------------------------------
INITIAL 4-BIT 	1000
INITIAL 9-BIT 	XXZ01XXXX

LVALUE RISE 	1	0	0	0
LVALUE FALL 	0	0	0	1
LVALUE SUB RISE 0	1	0	0
LVALUE SUB FALL X	X	X	X	1	0	Z	X	X
LVALUE BIT 	1	1	0	1

RVALUE RISE 	1	0	0	0
RVALUE FALL 	0	0	0	1
RVALUE SUB FALL X	X	X	X	1	0	Z	X	X
RVALUE SUB RISE 1	0	0	0
RVALUE BIT [] 	1	0	1	1
RVALUE BIT 	0	0	1	0

op1	 operator	 op2	 result  [All operands are std_ulogic_vector]
----------------------------------------------------------------
1010	    &= 		 1000	 = 1000
1010	    ^= 		 1000	 = 0010
1010	    |= 		 1000	 = 1010
~(1010) 			 = 0101
1010	    & 		 1000	 = 1000
1010	    ^ 		 1000	 = 0010
1010	    | 		 1000	 = 1010

1010	    &= 		 111011	 = 1010
1010	    ^= 		 111011	 = 0001
1010	    |= 		 111011	 = 1011
1010	    & 		 111011	 = 1010
1010	    ^ 		 111011	 = 0001
1010	    | 		 111011	 = 1011

1010	    and_reduce() 	 = 0
1010	    or_reduce() 	 = 1
1010	    xor_reduce() 	 = 0

1010	    == 		 1000	 -> false
1010	    != 		 1000	 -> true

1111	    = 		 1111

+-------------------------+
| AND (&) | X | 0 | 1 | Z |
+-------------------------+
|    X    | X | 0 | X | X | 
+-------------------------+
|    0    | 0 | 0 | 0 | 0 | 
+-------------------------+
|    1    | X | 0 | 1 | X | 
+-------------------------+
|    Z    | X | 0 | X | X | 
+-------------------------+

+-------------------------+
| OR  (|) | X | 0 | 1 | Z |
+-------------------------+
|    X    | X | X | 1 | X | 
+-------------------------+
|    0    | X | 0 | 1 | X | 
+-------------------------+
|    1    | 1 | 1 | 1 | 1 | 
+-------------------------+
|    Z    | X | X | 1 | X | 
+-------------------------+

+-------------------------+
| XOR (^) | X | 0 | 1 | Z |
+-------------------------+
|    X    | X | X | X | X | 
+-------------------------+
|    0    | X | 0 | 1 | X | 
+-------------------------+
|    1    | X | 1 | 0 | X | 
+-------------------------+
|    Z    | X | X | X | X | 
+-------------------------+

+-------------------------+
| NOT (~) | X | 0 | 1 | Z |
+-------------------------+
|         | X | 1 | 0 | X | 
+-------------------------+