OpenCores
URL https://opencores.org/ocsvn/othellogame/othellogame/trunk

Subversion Repositories othellogame

[/] [othellogame/] [trunk/] [rtl/] [heuristics.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 marius_mtm
`timescale 1ns / 1ps
2
//////////////////////////////////////////////////////////////////////////////////
3
// Company: 
4
// Engineer: 
5
// 
6
// Create Date:    19:05:40 04/28/2009 
7
// Design Name: 
8
// Module Name:    heuristics 
9
// Project Name: 
10
// Target Devices: 
11
// Tool versions: 
12
// Description: 
13
//
14
// Dependencies: 
15
//
16
// Revision: 
17
// Revision 0.01 - File Created
18
// Additional Comments: 
19
//
20
//////////////////////////////////////////////////////////////////////////////////
21
module heuristics(clk, RST, R, B, M, value/*, pattern_dbg1*/);
22
input clk;
23
input RST;
24
input [63:0] R;
25
input [63:0] B;
26
input [63:0] M;
27
output signed [19:0] value;
28
//output signed [4:0] pattern_dbg1;
29
 
30
 
31
reg signed [19:0] value_d;
32
reg signed [19:0] value_q;
33
reg signed [6:0] value_Rp0_d;
34
reg signed [6:0] value_Rp1_d;
35
reg signed [6:0] value_Rp2_d;
36
reg signed [6:0] value_Rp3_d;
37
reg signed [6:0] value_Rp4_d;
38
reg signed [6:0] value_Rp5_d;
39
reg signed [6:0] value_Rp6_d;
40
reg signed [6:0] value_Rp7_d;
41
reg signed [6:0] value_Rp8_d;
42
reg signed [6:0] value_Rp9_d;
43
reg signed [6:0] value_Rp10_d;
44
reg signed [6:0] value_Rp11_d;
45
reg signed [6:0] value_Bp0_d;
46
reg signed [6:0] value_Bp1_d;
47
reg signed [6:0] value_Bp2_d;
48
reg signed [6:0] value_Bp3_d;
49
reg signed [6:0] value_Bp4_d;
50
reg signed [6:0] value_Bp5_d;
51
reg signed [6:0] value_Bp6_d;
52
reg signed [6:0] value_Bp7_d;
53
reg signed [6:0] value_Bp8_d;
54
reg signed [6:0] value_Bp9_d;
55
reg signed [6:0] value_Bp10_d;
56
reg signed [6:0] value_Bp11_d;
57
 
58
 
59
reg signed [8:0] value_pp0_d;
60
reg signed [8:0] value_pp1_d;
61
reg signed [8:0] value_pp2_d;
62
reg signed [8:0] value_pp3_d;
63
reg signed [8:0] value_pp4_d;
64
reg signed [8:0] value_pp5_d;
65
 
66
 
67
wire signed [4:0] pattern00_Rd;
68
wire signed [4:0] pattern01_Rd;
69
wire signed [4:0] pattern02_Rd;
70
wire signed [4:0] pattern03_Rd;
71
wire signed [4:0] pattern04_Rd;
72
wire signed [4:0] pattern05_Rd;
73
wire signed [4:0] pattern06_Rd;
74
wire signed [4:0] pattern07_Rd;
75
wire signed [4:0] pattern08_Rd;
76
wire signed [4:0] pattern09_Rd;
77
wire signed [4:0] pattern10_Rd;
78
wire signed [4:0] pattern11_Rd;
79
wire signed [4:0] pattern12_Rd;
80
wire signed [4:0] pattern13_Rd;
81
wire signed [4:0] pattern14_Rd;
82
wire signed [4:0] pattern15_Rd;
83
wire signed [4:0] pattern16_Rd;
84
wire signed [4:0] pattern17_Rd;
85
wire signed [4:0] pattern18_Rd;
86
wire signed [4:0] pattern19_Rd;
87
wire signed [4:0] pattern20_Rd;
88
wire signed [4:0] pattern21_Rd;
89
wire signed [4:0] pattern22_Rd;
90
wire signed [4:0] pattern23_Rd;
91
wire signed [4:0] pattern24_Rd;
92
wire signed [4:0] pattern25_Rd;
93
wire signed [4:0] pattern26_Rd;
94
wire signed [4:0] pattern27_Rd;
95
wire signed [4:0] pattern28_Rd;
96
wire signed [4:0] pattern29_Rd;
97
wire signed [4:0] pattern30_Rd;
98
wire signed [4:0] pattern31_Rd;
99
wire signed [4:0] pattern32_Rd;
100
wire signed [4:0] pattern33_Rd;
101
wire signed [4:0] pattern34_Rd;
102
wire signed [4:0] pattern35_Rd;
103
wire signed [4:0] pattern36_Rd;
104
wire signed [4:0] pattern37_Rd;
105
wire signed [4:0] pattern38_Rd;
106
wire signed [4:0] pattern39_Rd;
107
wire signed [4:0] pattern40_Rd;
108
wire signed [4:0] pattern41_Rd;
109
wire signed [4:0] pattern42_Rd;
110
wire signed [4:0] pattern43_Rd;
111
wire signed [4:0] pattern44_Rd;
112
wire signed [4:0] pattern45_Rd;
113
wire signed [4:0] pattern46_Rd;
114
wire signed [4:0] pattern47_Rd;
115
 
116
 
117
wire signed [4:0] pattern00_Bd;
118
wire signed [4:0] pattern01_Bd;
119
wire signed [4:0] pattern02_Bd;
120
wire signed [4:0] pattern03_Bd;
121
wire signed [4:0] pattern04_Bd;
122
wire signed [4:0] pattern05_Bd;
123
wire signed [4:0] pattern06_Bd;
124
wire signed [4:0] pattern07_Bd;
125
wire signed [4:0] pattern08_Bd;
126
wire signed [4:0] pattern09_Bd;
127
wire signed [4:0] pattern10_Bd;
128
wire signed [4:0] pattern11_Bd;
129
wire signed [4:0] pattern12_Bd;
130
wire signed [4:0] pattern13_Bd;
131
wire signed [4:0] pattern14_Bd;
132
wire signed [4:0] pattern15_Bd;
133
wire signed [4:0] pattern16_Bd;
134
wire signed [4:0] pattern17_Bd;
135
wire signed [4:0] pattern18_Bd;
136
wire signed [4:0] pattern19_Bd;
137
wire signed [4:0] pattern20_Bd;
138
wire signed [4:0] pattern21_Bd;
139
wire signed [4:0] pattern22_Bd;
140
wire signed [4:0] pattern23_Bd;
141
wire signed [4:0] pattern24_Bd;
142
wire signed [4:0] pattern25_Bd;
143
wire signed [4:0] pattern26_Bd;
144
wire signed [4:0] pattern27_Bd;
145
wire signed [4:0] pattern28_Bd;
146
wire signed [4:0] pattern29_Bd;
147
wire signed [4:0] pattern30_Bd;
148
wire signed [4:0] pattern31_Bd;
149
wire signed [4:0] pattern32_Bd;
150
wire signed [4:0] pattern33_Bd;
151
wire signed [4:0] pattern34_Bd;
152
wire signed [4:0] pattern35_Bd;
153
wire signed [4:0] pattern36_Bd;
154
wire signed [4:0] pattern37_Bd;
155
wire signed [4:0] pattern38_Bd;
156
wire signed [4:0] pattern39_Bd;
157
wire signed [4:0] pattern40_Bd;
158
wire signed [4:0] pattern41_Bd;
159
wire signed [4:0] pattern42_Bd;
160
wire signed [4:0] pattern43_Bd;
161
wire signed [4:0] pattern44_Bd;
162
wire signed [4:0] pattern45_Bd;
163
wire signed [4:0] pattern46_Bd;
164
wire signed [4:0] pattern47_Bd;
165
 
166
//wire signed [4:0] pattern_dbg1 = pattern47_Bd;
167
 
168
assign pattern00_Rd = ((R[63:0] & 64'h0000000000000001) == 64'h0000000000000001) ?  1 : 0;
169
assign pattern00_Bd = ((B[63:0] & 64'h0000000000000001) == 64'h0000000000000001) ? -1 : 0;
170
assign pattern01_Rd = ((R[63:0] & 64'h0000000000000103) == 64'h0000000000000103) ?  2 : 0;
171
assign pattern01_Bd = ((B[63:0] & 64'h0000000000000103) == 64'h0000000000000103) ? -2 : 0;
172
assign pattern02_Rd = ((R[63:0] & 64'h0000000000010307) == 64'h0000000000010307) ?  3 : 0;
173
assign pattern02_Bd = ((B[63:0] & 64'h0000000000010307) == 64'h0000000000010307) ? -3 : 0;
174
assign pattern03_Rd = ((R[63:0] & 64'h000000000103070F) == 64'h000000000103070F) ?  4 : 0;
175
assign pattern03_Bd = ((B[63:0] & 64'h000000000103070F) == 64'h000000000103070F) ? -4 : 0;
176
assign pattern04_Rd = ((R[63:0] & 64'h0000000103070F1F) == 64'h0000000103070F1F) ?  5 : 0;
177
assign pattern04_Bd = ((B[63:0] & 64'h0000000103070F1F) == 64'h0000000103070F1F) ? -5 : 0;
178
assign pattern05_Rd = ((R[63:0] & 64'h00000103070F1F3F) == 64'h00000103070F1F3F) ?  6 : 0;
179
assign pattern05_Bd = ((B[63:0] & 64'h00000103070F1F3F) == 64'h00000103070F1F3F) ? -6 : 0;
180
assign pattern06_Rd = ((R[63:0] & 64'h000103070F1F3F7F) == 64'h000103070F1F3F7F) ?  7 : 0;
181
assign pattern06_Bd = ((B[63:0] & 64'h000103070F1F3F7F) == 64'h000103070F1F3F7F) ? -7 : 0;
182
assign pattern07_Rd = ((R[63:0] & 64'h0103070F1F3F7FFF) == 64'h0103070F1F3F7FFF) ?  8 : 0;
183
assign pattern07_Bd = ((B[63:0] & 64'h0103070F1F3F7FFF) == 64'h0103070F1F3F7FFF) ? -8 : 0;
184
assign pattern08_Rd = ((R[63:0] & 64'h0000000000000080) == 64'h0000000000000080) ?  1 : 0;
185
assign pattern08_Bd = ((B[63:0] & 64'h0000000000000080) == 64'h0000000000000080) ? -1 : 0;
186
assign pattern09_Rd = ((R[63:0] & 64'h00000000000080C0) == 64'h00000000000080C0) ?  2 : 0;
187
assign pattern09_Bd = ((B[63:0] & 64'h00000000000080C0) == 64'h00000000000080C0) ? -2 : 0;
188
assign pattern10_Rd = ((R[63:0] & 64'h000000000080C0E0) == 64'h000000000080C0E0) ?  3 : 0;
189
assign pattern10_Bd = ((B[63:0] & 64'h000000000080C0E0) == 64'h000000000080C0E0) ? -3 : 0;
190
assign pattern11_Rd = ((R[63:0] & 64'h0000000080C0E0F0) == 64'h0000000080C0E0F0) ?  4 : 0;
191
assign pattern11_Bd = ((B[63:0] & 64'h0000000080C0E0F0) == 64'h0000000080C0E0F0) ? -4 : 0;
192
assign pattern12_Rd = ((R[63:0] & 64'h00000080C0E0F0F8) == 64'h00000080C0E0F0F8) ?  5 : 0;
193
assign pattern12_Bd = ((B[63:0] & 64'h00000080C0E0F0F8) == 64'h00000080C0E0F0F8) ? -5 : 0;
194
assign pattern13_Rd = ((R[63:0] & 64'h000080C0E0F0F8FC) == 64'h000080C0E0F0F8FC) ?  6 : 0;
195
assign pattern13_Bd = ((B[63:0] & 64'h000080C0E0F0F8FC) == 64'h000080C0E0F0F8FC) ? -6 : 0;
196
assign pattern14_Rd = ((R[63:0] & 64'h0080C0E0F0F8FCFE) == 64'h0080C0E0F0F8FCFE) ?  7 : 0;
197
assign pattern14_Bd = ((B[63:0] & 64'h0080C0E0F0F8FCFE) == 64'h0080C0E0F0F8FCFE) ? -7 : 0;
198
assign pattern15_Rd = ((R[63:0] & 64'h80C0E0F0F8FCFEFF) == 64'h80C0E0F0F8FCFEFF) ?  8 : 0;
199
assign pattern15_Bd = ((B[63:0] & 64'h80C0E0F0F8FCFEFF) == 64'h80C0E0F0F8FCFEFF) ? -8 : 0;
200
assign pattern16_Rd = ((R[63:0] & 64'h8000000000000000) == 64'h8000000000000000) ?  1 : 0;
201
assign pattern16_Bd = ((B[63:0] & 64'h8000000000000000) == 64'h8000000000000000) ? -1 : 0;
202
assign pattern17_Rd = ((R[63:0] & 64'hC080000000000000) == 64'hC080000000000000) ?  2 : 0;
203
assign pattern17_Bd = ((B[63:0] & 64'hC080000000000000) == 64'hC080000000000000) ? -2 : 0;
204
assign pattern18_Rd = ((R[63:0] & 64'hE0C0800000000000) == 64'hE0C0800000000000) ?  3 : 0;
205
assign pattern18_Bd = ((B[63:0] & 64'hE0C0800000000000) == 64'hE0C0800000000000) ? -3 : 0;
206
assign pattern19_Rd = ((R[63:0] & 64'hF0E0C08000000000) == 64'hF0E0C08000000000) ?  4 : 0;
207
assign pattern19_Bd = ((B[63:0] & 64'hF0E0C08000000000) == 64'hF0E0C08000000000) ? -4 : 0;
208
assign pattern20_Rd = ((R[63:0] & 64'hF8F0E0C080000000) == 64'hF8F0E0C080000000) ?  5 : 0;
209
assign pattern20_Bd = ((B[63:0] & 64'hF8F0E0C080000000) == 64'hF8F0E0C080000000) ? -5 : 0;
210
assign pattern21_Rd = ((R[63:0] & 64'hFCF8F0E0C0800000) == 64'hFCF8F0E0C0800000) ?  6 : 0;
211
assign pattern21_Bd = ((B[63:0] & 64'hFCF8F0E0C0800000) == 64'hFCF8F0E0C0800000) ? -6 : 0;
212
assign pattern22_Rd = ((R[63:0] & 64'hFEFCF8F0E0C08000) == 64'hFEFCF8F0E0C08000) ?  7 : 0;
213
assign pattern22_Bd = ((B[63:0] & 64'hFEFCF8F0E0C08000) == 64'hFEFCF8F0E0C08000) ? -7 : 0;
214
assign pattern23_Rd = ((R[63:0] & 64'hFFFEFCF8F0E0C080) == 64'hFFFEFCF8F0E0C080) ?  8 : 0;
215
assign pattern23_Bd = ((B[63:0] & 64'hFFFEFCF8F0E0C080) == 64'hFFFEFCF8F0E0C080) ? -8 : 0;
216
assign pattern24_Rd = ((R[63:0] & 64'h0100000000000000) == 64'h0100000000000000) ?  1 : 0;
217
assign pattern24_Bd = ((B[63:0] & 64'h0100000000000000) == 64'h0100000000000000) ? -1 : 0;
218
assign pattern25_Rd = ((R[63:0] & 64'h0301000000000000) == 64'h0301000000000000) ?  2 : 0;
219
assign pattern25_Bd = ((B[63:0] & 64'h0301000000000000) == 64'h0301000000000000) ? -2 : 0;
220
assign pattern26_Rd = ((R[63:0] & 64'h0703010000000000) == 64'h0703010000000000) ?  3 : 0;
221
assign pattern26_Bd = ((B[63:0] & 64'h0703010000000000) == 64'h0703010000000000) ? -3 : 0;
222
assign pattern27_Rd = ((R[63:0] & 64'h0F07030100000000) == 64'h0F07030100000000) ?  4 : 0;
223
assign pattern27_Bd = ((B[63:0] & 64'h0F07030100000000) == 64'h0F07030100000000) ? -4 : 0;
224
assign pattern28_Rd = ((R[63:0] & 64'h1F0F070301000000) == 64'h1F0F070301000000) ?  5 : 0;
225
assign pattern28_Bd = ((B[63:0] & 64'h1F0F070301000000) == 64'h1F0F070301000000) ? -5 : 0;
226
assign pattern29_Rd = ((R[63:0] & 64'h3F1F0F0703010000) == 64'h3F1F0F0703010000) ?  6 : 0;
227
assign pattern29_Bd = ((B[63:0] & 64'h3F1F0F0703010000) == 64'h3F1F0F0703010000) ? -6 : 0;
228
assign pattern30_Rd = ((R[63:0] & 64'h7F3F1F0F07030100) == 64'h7F3F1F0F07030100) ?  7 : 0;
229
assign pattern30_Bd = ((B[63:0] & 64'h7F3F1F0F07030100) == 64'h7F3F1F0F07030100) ? -7 : 0;
230
assign pattern31_Rd = ((R[63:0] & 64'hFF7F3F1F0F070301) == 64'hFF7F3F1F0F070301) ?  8 : 0;
231
assign pattern31_Bd = ((B[63:0] & 64'hFF7F3F1F0F070301) == 64'hFF7F3F1F0F070301) ? -8 : 0;
232
assign pattern32_Rd = ((R[63:0] & 64'h0101010101010101) == 64'h0101010101010101) ?  3 : 0;
233
assign pattern32_Bd = ((B[63:0] & 64'h0101010101010101) == 64'h0101010101010101) ? -3 : 0;
234
assign pattern33_Rd = ((R[63:0] & 64'h0303030303030303) == 64'h0303030303030303) ?  5 : 0;
235
assign pattern33_Bd = ((B[63:0] & 64'h0303030303030303) == 64'h0303030303030303) ? -5 : 0;
236
assign pattern34_Rd = ((R[63:0] & 64'h0707070707070707) == 64'h0707070707070707) ?  7 : 0;
237
assign pattern34_Bd = ((B[63:0] & 64'h0707070707070707) == 64'h0707070707070707) ? -7 : 0;
238
assign pattern35_Rd = ((R[63:0] & 64'h0F0F0F0F0F0F0F0F) == 64'h0F0F0F0F0F0F0F0F) ?  10 : 0;
239
assign pattern35_Bd = ((B[63:0] & 64'h0F0F0F0F0F0F0F0F) == 64'h0F0F0F0F0F0F0F0F) ? -10 : 0;
240
assign pattern36_Rd = ((R[63:0] & 64'h8080808080808080) == 64'h8080808080808080) ?  3 : 0;
241
assign pattern36_Bd = ((B[63:0] & 64'h8080808080808080) == 64'h8080808080808080) ? -3 : 0;
242
assign pattern37_Rd = ((R[63:0] & 64'hC0C0C0C0C0C0C0C0) == 64'hC0C0C0C0C0C0C0C0) ?  5 : 0;
243
assign pattern37_Bd = ((B[63:0] & 64'hC0C0C0C0C0C0C0C0) == 64'hC0C0C0C0C0C0C0C0) ? -5 : 0;
244
assign pattern38_Rd = ((R[63:0] & 64'hE0E0E0E0E0E0E0E0) == 64'hE0E0E0E0E0E0E0E0) ?  7 : 0;
245
assign pattern38_Bd = ((B[63:0] & 64'hE0E0E0E0E0E0E0E0) == 64'hE0E0E0E0E0E0E0E0) ? -7 : 0;
246
assign pattern39_Rd = ((R[63:0] & 64'hF0F0F0F0F0F0F0F0) == 64'hF0F0F0F0F0F0F0F0) ?  10 : 0;
247
assign pattern39_Bd = ((B[63:0] & 64'hF0F0F0F0F0F0F0F0) == 64'hF0F0F0F0F0F0F0F0) ? -10 : 0;
248
assign pattern40_Rd = ((R[63:0] & 64'h00000000000000FF) == 64'h00000000000000FF) ?  3 : 0;
249
assign pattern40_Bd = ((B[63:0] & 64'h00000000000000FF) == 64'h00000000000000FF) ? -3 : 0;
250
assign pattern41_Rd = ((R[63:0] & 64'h000000000000FFFF) == 64'h000000000000FFFF) ?  5 : 0;
251
assign pattern41_Bd = ((B[63:0] & 64'h000000000000FFFF) == 64'h000000000000FFFF) ? -5 : 0;
252
assign pattern42_Rd = ((R[63:0] & 64'h0000000000FFFFFF) == 64'h0000000000FFFFFF) ?  7 : 0;
253
assign pattern42_Bd = ((B[63:0] & 64'h0000000000FFFFFF) == 64'h0000000000FFFFFF) ? -7 : 0;
254
assign pattern43_Rd = ((R[63:0] & 64'h00000000FFFFFFFF) == 64'h00000000FFFFFFFF) ?  10 : 0;
255
assign pattern43_Bd = ((B[63:0] & 64'h00000000FFFFFFFF) == 64'h00000000FFFFFFFF) ? -10 : 0;
256
assign pattern44_Rd = ((R[63:0] & 64'hFFFFFFFF00000000) == 64'hFFFFFFFF00000000) ?  10 : 0;
257
assign pattern44_Bd = ((B[63:0] & 64'hFFFFFFFF00000000) == 64'hFFFFFFFF00000000) ? -10 : 0;
258
assign pattern45_Rd = ((R[63:0] & 64'hFFFFFF0000000000) == 64'hFFFFFF0000000000) ?  7 : 0;
259
assign pattern45_Bd = ((B[63:0] & 64'hFFFFFF0000000000) == 64'hFFFFFF0000000000) ? -7 : 0;
260
assign pattern46_Rd = ((R[63:0] & 64'hFFFF000000000000) == 64'hFFFF000000000000) ?  5 : 0;
261
assign pattern46_Bd = ((B[63:0] & 64'hFFFF000000000000) == 64'hFFFF000000000000) ? -5 : 0;
262
assign pattern47_Rd = ((R[63:0] & 64'hFF00000000000000) == 64'hFF00000000000000) ?  3 : 0;
263
assign pattern47_Bd = ((B[63:0] & 64'hFF00000000000000) == 64'hFF00000000000000) ? -3 : 0;
264
 
265
//wire [5:0] mutability;
266
 
267
 
268
//cntB_d = cntB_p00_d + cntB_p01_d + cntB_p02_d + cntB_p03_d + cntB_p04_d + cntB_p05_d + cntB_p06_d + cntB_p07_d;
269
 
270
//assign mutability = M[0] + M[1] + M[2] + M[3] + M[4] + M[5] + M[6] + M[7] + M[8] + M[9] + M[10] + M[11] + M[12] + M[13] + M[14] + M[15] + M[16] + M[17] + M[18] + M[19] + M[20] + M[21] + M[22] + M[23] + M[24] + M[25] + M[26] + M[27] + M[28] + M[29] + M[30] + M[31] + M[32] + M[33] + M[34] + M[35] + M[36] + M[37] + M[38] + M[39] + M[40] + M[41] + M[42] + M[43] + M[44] + M[45] + M[46] + M[47] + M[48] + M[49] + M[50] + M[51] + M[52] + M[53] + M[54] + M[55] + M[56] + M[57] + M[58] + M[59] + M[60] + M[61] + M[62] + M[63];
271
 
272
 
273
reg [3:0] cntM_p00_d;
274
reg [3:0] cntM_p01_d;
275
reg [3:0] cntM_p02_d;
276
reg [3:0] cntM_p03_d;
277
reg [3:0] cntM_p04_d;
278
reg [3:0] cntM_p05_d;
279
reg [3:0] cntM_p06_d;
280
reg [3:0] cntM_p07_d;
281
 
282
reg [6:0] mutability_d;
283
 
284
 
285
always @( * ) begin
286
 
287
        cntM_p00_d = M[00] + M[01] + M[02] + M[03] + M[04] + M[05] + M[06] + M[07];
288
        cntM_p01_d = M[08] + M[09] + M[10] + M[11] + M[12] + M[13] + M[14] + M[15];
289
        cntM_p02_d = M[16] + M[17] + M[18] + M[19] + M[20] + M[21] + M[22] + M[23];
290
        cntM_p03_d = M[24] + M[25] + M[26] + M[27] + M[28] + M[29] + M[30] + M[31];
291
        cntM_p04_d = M[32] + M[33] + M[34] + M[35] + M[36] + M[37] + M[38] + M[39];
292
        cntM_p05_d = M[40] + M[41] + M[42] + M[43] + M[44] + M[45] + M[46] + M[47];
293
        cntM_p06_d = M[48] + M[49] + M[50] + M[51] + M[52] + M[53] + M[54] + M[55];
294
        cntM_p07_d = M[56] + M[57] + M[58] + M[59] + M[60] + M[61] + M[62] + M[63];
295
 
296
        mutability_d = cntM_p00_d + cntM_p01_d + cntM_p02_d + cntM_p03_d + cntM_p04_d + cntM_p05_d + cntM_p06_d + cntM_p07_d;
297
 
298
 
299
        value_Rp0_d = pattern00_Rd + pattern01_Rd + pattern02_Rd + pattern03_Rd;
300
        value_Rp1_d = pattern04_Rd + pattern05_Rd + pattern06_Rd + pattern07_Rd;
301
        value_Rp2_d = pattern08_Rd + pattern09_Rd + pattern10_Rd + pattern11_Rd;
302
        value_Rp3_d = pattern12_Rd + pattern13_Rd + pattern14_Rd + pattern15_Rd;
303
        value_Rp4_d = pattern16_Rd + pattern17_Rd + pattern18_Rd + pattern19_Rd;
304
        value_Rp5_d = pattern20_Rd + pattern21_Rd + pattern22_Rd + pattern23_Rd;
305
        value_Rp6_d = pattern24_Rd + pattern25_Rd + pattern26_Rd + pattern27_Rd;
306
        value_Rp7_d = pattern28_Rd + pattern29_Rd + pattern30_Rd + pattern31_Rd;
307
        value_Rp8_d = pattern32_Rd + pattern33_Rd + pattern34_Rd + pattern35_Rd;
308
        value_Rp9_d = pattern36_Rd + pattern37_Rd + pattern38_Rd + pattern39_Rd;
309
        value_Rp10_d = pattern40_Rd + pattern41_Rd + pattern42_Rd + pattern43_Rd;
310
        value_Rp11_d = pattern44_Rd + pattern45_Rd + pattern46_Rd + pattern47_Rd;
311
 
312
 
313
        value_Bp0_d = pattern00_Bd + pattern01_Bd + pattern02_Bd + pattern03_Bd;
314
        value_Bp1_d = pattern04_Bd + pattern05_Bd + pattern06_Bd + pattern07_Bd;
315
        value_Bp2_d = pattern08_Bd + pattern09_Bd + pattern10_Bd + pattern11_Bd;
316
        value_Bp3_d = pattern12_Bd + pattern13_Bd + pattern14_Bd + pattern15_Bd;
317
        value_Bp4_d = pattern16_Bd + pattern17_Bd + pattern18_Bd + pattern19_Bd;
318
        value_Bp5_d = pattern20_Bd + pattern21_Bd + pattern22_Bd + pattern23_Bd;
319
        value_Bp6_d = pattern24_Bd + pattern25_Bd + pattern26_Bd + pattern27_Bd;
320
        value_Bp7_d = pattern28_Bd + pattern29_Bd + pattern30_Bd + pattern31_Bd;
321
        value_Bp8_d = pattern32_Bd + pattern33_Bd + pattern34_Bd + pattern35_Bd;
322
        value_Bp9_d = pattern36_Bd + pattern37_Bd + pattern38_Bd + pattern39_Bd;
323
        value_Bp10_d = pattern40_Bd + pattern41_Bd + pattern42_Bd + pattern43_Bd;
324
        value_Bp11_d = pattern44_Bd + pattern45_Bd + pattern46_Bd + pattern47_Bd;
325
 
326
 
327
        value_pp0_d = value_Rp0_d + value_Rp1_d + value_Rp2_d + value_Rp3_d;
328
        value_pp1_d = value_Rp4_d + value_Rp5_d + value_Rp6_d + value_Rp7_d;
329
        value_pp2_d = value_Rp8_d + value_Rp9_d + value_Rp10_d + value_Rp11_d;
330
        value_pp3_d = value_Bp0_d + value_Bp1_d + value_Bp2_d + value_Bp3_d;
331
        value_pp4_d = value_Bp4_d + value_Bp5_d + value_Bp6_d + value_Bp7_d;
332
        value_pp5_d = value_Bp8_d + value_Bp9_d + value_Bp10_d + value_Bp11_d;
333
 
334
 
335
value_d = value_pp0_d + value_pp1_d + value_pp2_d + value_pp3_d + value_pp4_d + value_pp5_d;
336
//value_d = value_d*64 + mutability_d*16;
337
value_d = value_d*64 + mutability_d*32;
338
 
339
/*
340
 
341
CHAIN METHOD
342
      value_d = (pattern00_d + pattern01_d + pattern02_d + pattern03_d +
343
                                         pattern04_d + pattern05_d + pattern06_d + pattern07_d +
344
                                         pattern08_d + pattern09_d + pattern10_d + pattern11_d +
345
                                         pattern12_d + pattern13_d + pattern14_d + pattern15_d +
346
                                         pattern16_d + pattern17_d + pattern18_d + pattern19_d +
347
                                         pattern20_d + pattern21_d + pattern22_d + pattern23_d +
348
                                         pattern24_d + pattern25_d + pattern26_d + pattern27_d +
349
                                         pattern28_d + pattern29_d + pattern30_d + pattern31_d +
350
                                         pattern32_d + pattern33_d + pattern34_d + pattern35_d +
351
                                         pattern36_d + pattern37_d + pattern38_d + pattern39_d +
352
                                         pattern40_d + pattern41_d + pattern42_d + pattern43_d +
353
                                         pattern44_d + pattern45_d + pattern46_d + pattern47_d) * 16;
354
 
355
*/
356
 
357
end
358
 
359
always @(posedge clk) begin
360
    if ( RST ) begin
361
             value_q <= 20'b0;
362
         end
363
         else begin
364
        value_q <= value_d;
365
         end
366
end
367
 
368
assign value = value_q;
369
 
370
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.