Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | // ========== Copyright Header Begin ========================================== |
2 | // | |
3 | // OpenSPARC T2 Processor File: crc.v | |
4 | // Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved | |
5 | // 4150 Network Circle, Santa Clara, California 95054, U.S.A. | |
6 | // | |
7 | // * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | |
8 | // | |
9 | // This program is free software; you can redistribute it and/or modify | |
10 | // it under the terms of the GNU General Public License as published by | |
11 | // the Free Software Foundation; version 2 of the License. | |
12 | // | |
13 | // This program is distributed in the hope that it will be useful, | |
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | // GNU General Public License for more details. | |
17 | // | |
18 | // You should have received a copy of the GNU General Public License | |
19 | // along with this program; if not, write to the Free Software | |
20 | // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
21 | // | |
22 | // For the avoidance of doubt, and except that if any non-GPL license | |
23 | // choice is available it will apply instead, Sun elects to use only | |
24 | // the General Public License version 2 (GPLv2) at this time for any | |
25 | // software where a choice of GPL license versions is made | |
26 | // available with the language indicating that GPLv2 or any later version | |
27 | // may be used, or where a choice of which version of the GPL is applied is | |
28 | // otherwise unspecified. | |
29 | // | |
30 | // Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, | |
31 | // CA 95054 USA or visit www.sun.com if you need additional information or | |
32 | // have any questions. | |
33 | // | |
34 | // ========== Copyright Header End ============================================ | |
35 | module crc(b,E_out,failover); | |
36 | // interface signals | |
37 | input [71:0] b; | |
38 | input failover; | |
39 | output [11:0] E_out; | |
40 | ||
41 | reg failover_nb_14, failover_nb_13,nb_12; | |
42 | wire [11:0] E_nb_13 , E ; | |
43 | ||
44 | assign E_out = (failover ) ? E_nb_13 : E; | |
45 | ||
46 | ||
47 | initial begin | |
48 | ||
49 | if($test$plusargs("fbdimm_nb_failover_14bit")) | |
50 | failover_nb_14=1; | |
51 | else | |
52 | failover_nb_14=0; | |
53 | ||
54 | if($test$plusargs("fbdimm_nb_failover_13bit")) | |
55 | failover_nb_13=1; | |
56 | else | |
57 | failover_nb_13=0; | |
58 | ||
59 | ||
60 | if($test$plusargs("fbdimm_nb_12bit")) | |
61 | nb_12=1; | |
62 | else | |
63 | nb_12=0; | |
64 | ||
65 | end | |
66 | ||
67 | // 13bit lane northbound data frame | |
68 | ||
69 | ||
70 | ||
71 | assign E_nb_13[0] = b[69] ^ b[66] ^ b[65] ^ b[64] ^ b[63] ^ b[57] ^ | |
72 | b[56] ^ b[54] ^ b[53] ^ b[52] ^ b[49] ^ b[48] ^ | |
73 | b[44] ^ b[43] ^ b[42] ^ b[40] ^ b[38] ^ b[37] ^ | |
74 | b[36] ^ b[35] ^ b[34] ^ b[33] ^ b[31] ^ b[30] ^ | |
75 | b[28] ^ b[24] ^ b[19] ^ b[17] ^ b[16] ^ b[13] ^ | |
76 | b[11] ^ b[09] ^ b[06] ^ b[03] ^ b[02] ^ b[01] ^ | |
77 | b[00] ; | |
78 | ||
79 | assign E_nb_13[1] = b[70] ^ b[69] ^ b[67] ^ b[63] ^ b[58] ^ b[56] ^ | |
80 | b[55] ^ b[52] ^ b[50] ^ b[48] ^ b[45] ^ b[42] ^ | |
81 | b[41] ^ b[40] ^ b[39] ^ b[33] ^ b[32] ^ b[30] ^ | |
82 | b[29] ^ b[28] ^ b[25] ^ b[24] ^ b[20] ^ b[19] ^ | |
83 | b[18] ^ b[16] ^ b[14] ^ b[13] ^ b[12] ^ b[11] ^ | |
84 | b[10] ^ b[09] ^ b[07] ^ b[06] ^ b[04] ^ b[00] ; | |
85 | ||
86 | assign E_nb_13[2] = b[71] ^ b[70] ^ b[69] ^ b[68] ^ b[66] ^ b[65] ^ | |
87 | b[63] ^ b[59] ^ b[54] ^ b[52] ^ b[51] ^ b[48] ^ | |
88 | b[46] ^ b[44] ^ b[41] ^ b[38] ^ b[37] ^ b[36] ^ | |
89 | b[35] ^ b[29] ^ b[28] ^ b[26] ^ b[25] ^ b[24] ^ | |
90 | b[21] ^ b[20] ^ b[16] ^ b[15] ^ b[14] ^ b[12] ^ | |
91 | b[10] ^ b[09] ^ b[08] ^ b[07] ^ b[06] ^ b[05] ^ | |
92 | b[03] ^ b[02] ^ b[00] ; | |
93 | ||
94 | assign E_nb_13[3] = b[71] ^ b[70] ^ b[69] ^ b[67] ^ b[66] ^ b[64] ^ | |
95 | b[60] ^ b[55] ^ b[53] ^ b[52] ^ b[49] ^ b[47] ^ | |
96 | b[45] ^ b[42] ^ b[39] ^ b[38] ^ b[37] ^ b[36] ^ | |
97 | b[30] ^ b[29] ^ b[27] ^ b[26] ^ b[25] ^ b[22] ^ | |
98 | b[21] ^ b[17] ^ b[16] ^ b[15] ^ b[13] ^ b[11] ^ | |
99 | b[10] ^ b[09] ^ b[08] ^ b[07] ^ b[06] ^ b[04] ^ | |
100 | b[03] ^ b[01] ; | |
101 | ||
102 | assign E_nb_13[4] = b[71] ^ b[70] ^ b[68] ^ b[67] ^ b[65] ^ b[61] ^ | |
103 | b[56] ^ b[54] ^ b[53] ^ b[50] ^ b[48] ^ b[46] ^ | |
104 | b[43] ^ b[40] ^ b[39] ^ b[38] ^ b[37] ^ b[31] ^ | |
105 | b[30] ^ b[28] ^ b[27] ^ b[26] ^ b[23] ^ b[22] ^ | |
106 | b[18] ^ b[17] ^ b[16] ^ b[14] ^ b[12] ^ b[11] ^ | |
107 | b[10] ^ b[09] ^ b[08] ^ b[07] ^ b[05] ^ b[04] ^ | |
108 | b[02] ; | |
109 | ||
110 | ||
111 | assign E_nb_13[5] = b[71] ^ b[68] ^ b[65] ^ b[64] ^ b[63] ^ b[62] ^ | |
112 | b[56] ^ b[55] ^ b[53] ^ b[52] ^ b[51] ^ b[48] ^ | |
113 | b[47] ^ b[43] ^ b[42] ^ b[41] ^ b[39] ^ b[37] ^ | |
114 | b[36] ^ b[35] ^ b[34] ^ b[33] ^ b[32] ^ b[30] ^ | |
115 | b[29] ^ b[27] ^ b[23] ^ b[18] ^ b[16] ^ b[15] ^ | |
116 | b[12] ^ b[10] ^ b[08] ^ b[05] ^ b[02] ^ b[01] ^ | |
117 | b[00] ; | |
118 | ||
119 | ||
120 | // 14bit lane north bound data frame | |
121 | ||
122 | assign E[0] = b[71] ^ b[70] ^ b[68] ^ b[67] ^ b[66] ^ b[63] ^ | |
123 | b[58] ^ b[56] ^ b[55] ^ b[54] ^ b[53] ^ b[52] ^ | |
124 | b[49] ^ b[48] ^ b[46] ^ b[44] ^ b[42] ^ b[41] ^ | |
125 | b[40] ^ b[39] ^ b[38] ^ b[37] ^ b[36] ^ b[35] ^ | |
126 | b[34] ^ b[29] ^ b[26] ^ b[25] ^ b[22] ^ b[21] ^ | |
127 | b[19] ^ b[18] ^ b[16] ^ b[12] ^ b[09] ^ b[08] ^ | |
128 | b[07] ^ b[06] ^ b[03] ^ b[01] ^ b[0] ; | |
129 | ||
130 | assign E[1] = b[70] ^ b[69] ^ b[66] ^ b[64] ^ b[63] ^ b[59] ^ | |
131 | b[58] ^ b[57] ^ b[52] ^ b[50] ^ b[48] ^ b[47] ^ | |
132 | b[46] ^ b[45] ^ b[44] ^ b[43] ^ b[34] ^ b[30] ^ | |
133 | b[29] ^ b[27] ^ b[25] ^ b[23] ^ b[21] ^ b[20] ^ | |
134 | b[18] ^ b[17] ^ b[16] ^ b[13] ^ b[12] ^ b[10] ^ | |
135 | b[06] ^ b[04] ^ b[03] ^ b[02] ^ b[00]; | |
136 | ||
137 | assign E[2] = b[71] ^ b[70] ^ b[67] ^ b[65] ^ b[64] ^ b[60] ^ | |
138 | b[59] ^ b[58] ^ b[53] ^ b[51] ^ b[49] ^ b[48] ^ | |
139 | b[47] ^ b[46] ^ b[45] ^ b[44] ^ b[35] ^ b[31] ^ | |
140 | b[30] ^ b[28] ^ b[26] ^ b[24] ^ b[22] ^ b[21] ^ | |
141 | b[19] ^ b[18] ^ b[17] ^ b[14] ^ b[13] ^ b[11] ^ | |
142 | b[07] ^ b[05] ^ b[04] ^ b[03] ^ b[01] ; | |
143 | ||
144 | assign E[3] = b[70] ^ b[67] ^ b[65] ^ b[63] ^ b[61] ^ b[60] ^ | |
145 | b[59] ^ b[58] ^ b[56] ^ b[55] ^ b[53] ^ b[50] ^ | |
146 | b[47] ^ b[45] ^ b[44] ^ b[42] ^ b[41] ^ b[40] ^ | |
147 | b[39] ^ b[38] ^ b[37] ^ b[35] ^ b[34] ^ b[32] ^ | |
148 | b[31] ^ b[27] ^ b[26] ^ b[23] ^ b[21] ^ b[20] ^ | |
149 | b[16] ^ b[15] ^ b[14] ^ b[09] ^ b[07] ^ b[05] ^ | |
150 | b[04] ^ b[03] ^ b[02] ^ b[01] ^ b[00]; | |
151 | ||
152 | assign E[4] = b[70] ^ b[67] ^ b[64] ^ b[63] ^ b[62] ^ b[61] ^ | |
153 | b[60] ^ b[59] ^ b[58] ^ b[57] ^ b[55] ^ b[53] ^ | |
154 | b[52] ^ b[51] ^ b[49] ^ b[45] ^ b[44] ^ b[43] ^ | |
155 | b[37] ^ b[34] ^ b[33] ^ b[32] ^ b[29] ^ b[28] ^ | |
156 | b[27] ^ b[26] ^ b[25] ^ b[24] ^ b[19] ^ b[18] ^ | |
157 | b[17] ^ b[15] ^ b[12] ^ b[10] ^ b[09] ^ b[07] ^ | |
158 | b[05] ^ b[04] ^ b[02] ^ b[00] ; | |
159 | ||
160 | ||
161 | assign E[5] = b[71] ^ b[68] ^ b[65] ^ b[64] ^ b[63] ^ b[62] ^ | |
162 | b[61] ^ b[60] ^ b[59] ^ b[58] ^ b[56] ^ b[54] ^ | |
163 | b[53] ^ b[52] ^ b[50] ^ b[46] ^ b[45] ^ b[44] ^ | |
164 | b[38] ^ b[35] ^ b[34] ^ b[33] ^ b[30] ^ b[29] ^ | |
165 | b[28] ^ b[27] ^ b[26] ^ b[25] ^ b[20] ^ b[19] ^ | |
166 | b[18] ^ b[16] ^ b[13] ^ b[11] ^ b[10] ^ b[08] ^ | |
167 | b[06] ^ b[05] ^ b[03] ^ b[01] ; | |
168 | ||
169 | assign E[6] = b[71] ^ b[70] ^ b[69] ^ b[68] ^ b[67] ^ b[65] ^ | |
170 | b[64] ^ b[62] ^ b[61] ^ b[60] ^ b[59] ^ b[58] ^ | |
171 | b[57] ^ b[56] ^ b[52] ^ b[51] ^ b[49] ^ b[48] ^ | |
172 | b[47] ^ b[45] ^ b[44] ^ b[42] ^ b[41] ^ b[40] ^ | |
173 | b[38] ^ b[37] ^ b[31] ^ b[30] ^ b[28] ^ b[27] ^ | |
174 | b[25] ^ b[22] ^ b[20] ^ b[18] ^ b[17] ^ b[16] ^ | |
175 | b[14] ^ b[11] ^ b[08] ^ b[04] ^ b[03] ^ b[02] ^ | |
176 | b[01] ^ b[00] ; | |
177 | ||
178 | assign E[7] = b[71] ^ b[70] ^ b[69] ^ b[68] ^ b[66] ^ b[65] ^ | |
179 | b[63] ^ b[62] ^ b[61] ^ b[60] ^ b[59] ^ b[58] ^ | |
180 | b[57] ^ b[53] ^ b[52] ^ b[50] ^ b[49] ^ b[48] ^ | |
181 | b[46] ^ b[45] ^ b[43] ^ b[42] ^ b[41] ^ b[39] ^ | |
182 | b[38] ^ b[32] ^ b[31] ^ b[29] ^ b[28] ^ b[26] ^ | |
183 | b[23] ^ b[21] ^ b[19] ^ b[18] ^ b[17] ^ b[15] ^ | |
184 | b[12] ^ b[09] ^ b[05] ^ b[04] ^ b[03] ^ b[02] ^ | |
185 | b[1] ; | |
186 | ||
187 | assign E[8] = b[69] ^ b[68] ^ b[64] ^ b[62] ^ b[61] ^ b[60] ^ | |
188 | b[59] ^ b[56] ^ b[55] ^ b[52] ^ b[51] ^ b[50] ^ | |
189 | b[48] ^ b[47] ^ b[43] ^ b[41] ^ b[38] ^ b[37] ^ | |
190 | b[36] ^ b[35] ^ b[34] ^ b[33] ^ b[32] ^ b[30] ^ | |
191 | b[27] ^ b[26] ^ b[25] ^ b[24] ^ b[21] ^ b[20] ^ | |
192 | b[13] ^ b[12] ^ b[10] ^ b[09] ^ b[08] ^ b[07] ^ | |
193 | b[05] ^ b[04] ^ b[02] ^ b[01] ^ b[0]; | |
194 | ||
195 | assign E[9] = b[70] ^ b[69] ^ b[65] ^ b[63] ^ b[62] ^ b[61] ^ | |
196 | b[60] ^ b[57] ^ b[56] ^ b[53] ^ b[52] ^ b[51] ^ | |
197 | b[49] ^ b[48] ^ b[44] ^ b[42] ^ b[39] ^ b[38] ^ | |
198 | b[37] ^ b[36] ^ b[35] ^ b[34] ^ b[33] ^ b[31] ^ | |
199 | b[28] ^ b[27] ^ b[26] ^ b[25] ^ b[22] ^ b[21] ^ | |
200 | b[14] ^ b[13] ^ b[11] ^ b[10] ^ b[09] ^ b[08] ^ | |
201 | b[06] ^ b[05] ^ b[03] ^ b[02] ^ b[01]; | |
202 | ||
203 | assign E[10] = b[68] ^ b[67] ^ b[64] ^ b[62] ^ b[61] ^ b[57] ^ | |
204 | b[56] ^ b[55] ^ b[50] ^ b[48] ^ b[46] ^ b[45] ^ | |
205 | b[44] ^ b[43] ^ b[42] ^ b[41] ^ b[32] ^ b[28] ^ | |
206 | b[27] ^ b[25] ^ b[23] ^ b[21] ^ b[19] ^ b[18] ^ | |
207 | b[16] ^ b[15] ^ b[14] ^ b[11] ^ b[10] ^ b[08] ^ | |
208 | b[04] ^ b[02] ^ b[01] ^ b[00]; | |
209 | ||
210 | ||
211 | assign E[11] = b[71] ^ b[70] ^ b[69] ^ b[67] ^ b[66] ^ b[65] ^ | |
212 | b[62] ^ b[57] ^ b[55] ^ b[54] ^ b[53] ^ b[52] ^ | |
213 | b[51] ^ b[48] ^ b[47] ^ b[45] ^ b[43] ^ b[41] ^ | |
214 | b[40] ^ b[39] ^ b[38] ^ b[37] ^ b[36] ^ b[35] ^ | |
215 | b[34] ^ b[33] ^ b[28] ^ b[25] ^ b[24] ^ b[21] ^ | |
216 | b[20] ^ b[18] ^ b[17] ^ b[15] ^ b[11] ^ b[08] ^ | |
217 | b[07] ^ b[06] ^ b[05] ^ b[02] ^ b[00]; | |
218 | ||
219 | ||
220 | endmodule | |
221 | ||
222 | module crc_aE(B,E); | |
223 | // interface signals | |
224 | input [25:0] B; | |
225 | output [13:0] E; | |
226 | ||
227 | assign E[0] = B[24] ^ B[22] ^ B[21] ^ B[18] ^ B[17] ^ B[15] ^ | |
228 | B[14] ^ B[9] ^ B[8] ^ B[7] ^ B[6] ^ B[4] ^ | |
229 | B[1] ^ B[0]; | |
230 | ||
231 | assign E[1] = B[25] ^ B[24] ^ B[23] ^ B[21] ^ B[19] ^ B[17] ^ | |
232 | B[16] ^ B[14] ^ B[10] ^ B[6] ^ B[5] ^ B[4] ^ | |
233 | B[2] ^ B[0] ; | |
234 | ||
235 | ||
236 | assign E[2] = B[25] ^ B[21] ^ B[20] ^ B[14] ^ B[11] ^ B[9] ^ | |
237 | B[8] ^ B[5] ^ B[4] ^ B[3] ^ B[0]; | |
238 | ||
239 | assign E[3] = B[24] ^ B[18] ^ B[17] ^ B[14] ^ B[12] ^ B[10] ^ | |
240 | B[8] ^ B[7] ^ B[5] ^ B[0]; | |
241 | ||
242 | assign E[4] = B[25] ^ B[19] ^ B[18] ^ B[15] ^ B[13] ^ B[11] ^ | |
243 | B[9] ^ B[8] ^ B[6] ^ B[1]; | |
244 | ||
245 | assign E[5] = B[20] ^ B[19] ^ B[16] ^ B[14] ^ B[12] ^ B[10] ^ | |
246 | B[9] ^ B[7] ^ B[2]; | |
247 | ||
248 | assign E[6] = B[24] ^ B[22] ^ B[20] ^ B[18] ^ B[14] ^ B[13] ^ | |
249 | B[11] ^ B[10] ^ B[9] ^ B[7] ^ B[6] ^ B[4] ^ | |
250 | B[3] ^ B[1] ^ B[0]; | |
251 | ||
252 | assign E[7] = B[25] ^ B[23] ^ B[21] ^ B[19] ^ B[15] ^ B[14] ^ | |
253 | B[12] ^ B[11] ^ B[10] ^ B[8] ^ B[7] ^ B[5] ^ | |
254 | B[4] ^ B[2] ^ B[1]; | |
255 | ||
256 | assign E[8] = B[21] ^ B[20] ^ B[18] ^ B[17] ^ B[16] ^ B[14] ^ | |
257 | B[13] ^ B[12] ^ B[11] ^ B[7] ^ B[5] ^ B[4] ^ | |
258 | B[3] ^ B[2] ^ B[1] ^ B[0]; | |
259 | ||
260 | assign E[9] = B[24] ^ B[19] ^ B[13] ^ B[12] ^ B[9] ^ B[7] ^ | |
261 | B[5] ^ B[3] ^ B[2] ^ B[0]; | |
262 | ||
263 | assign E[10] = B[25] ^ B[20] ^ B[14] ^ B[13] ^ B[10] ^ B[8] ^ | |
264 | B[6] ^ B[4] ^ B[3] ^ B[1]; | |
265 | ||
266 | assign E[11] = B[24] ^ B[22] ^ B[18] ^ B[17] ^ B[11] ^ B[8] ^ | |
267 | B[6] ^ B[5] ^ B[2] ^ B[1] ^ B[0]; | |
268 | ||
269 | assign E[12] = B[25] ^ B[24] ^ B[23] ^ B[22] ^ B[21] ^ B[19] ^ | |
270 | B[17] ^ B[15] ^ B[14] ^ B[12] ^ B[8] ^ B[4] ^ B[3] ^ B[2] ^ B[0]; | |
271 | ||
272 | assign E[13] = B[25] ^ B[23] ^ B[21] ^ B[20] ^ B[17] ^ B[16] ^ | |
273 | B[14] ^ B[13] ^ B[8] ^ B[7] ^ B[6] ^ B[5] ^ B[3] ^ B[0]; | |
274 | ||
275 | ||
276 | endmodule | |
277 | ||
278 | ||
279 | module crc_FE(B,E); | |
280 | // interface signals | |
281 | input [71:0] B; | |
282 | output [21:0] E; | |
283 | ||
284 | assign E[0] = B[70] ^ B[69] ^ B[66] ^ B[62] ^ B[61] ^ B[59] ^ | |
285 | B[58] ^ B[55] ^ B[54] ^ B[53] ^ B[50] ^ B[49] ^ | |
286 | B[42] ^ B[39] ^ B[33] ^ B[32] ^ B[31] ^ B[29] ^ | |
287 | B[27] ^ B[25] ^ B[24] ^ B[22] ^ B[21] ^ B[19] ^ | |
288 | B[18] ^ B[16] ^ B[15] ^ B[10] ^ B[9] ^ B[8] ^ | |
289 | B[0]; | |
290 | ||
291 | assign E[1] = B[71] ^ B[69] ^ B[67] ^ B[66] ^ B[63] ^ B[61] ^ | |
292 | B[60] ^ B[58] ^ B[56] ^ B[53] ^ B[51] ^ B[49] ^ | |
293 | B[43] ^ B[42] ^ B[40] ^ B[39] ^ B[34] ^ B[31] ^ | |
294 | B[30] ^ B[29] ^ B[28] ^ B[27] ^ B[26] ^ B[24] ^ | |
295 | B[23] ^ B[21] ^ B[20] ^ B[18] ^ B[17] ^ B[15] ^ | |
296 | B[11] ^ B[8] ^ B[1] ^ B[0]; | |
297 | ||
298 | assign E[2] = B[69] ^ B[68] ^ B[67] ^ B[66] ^ B[64] ^ B[58] ^ | |
299 | B[57] ^ B[55] ^ B[53] ^ B[52] ^ B[49] ^ B[44] ^ | |
300 | B[43] ^ B[42] ^ B[41] ^ B[40] ^ B[39] ^ B[35] ^ | |
301 | B[33] ^ B[30] ^ B[28] ^ B[15] ^ B[12] ^ B[10] ^ | |
302 | B[8] ^ B[2] ^ B[1] ^ B[0]; | |
303 | ||
304 | assign E[3] = B[68] ^ B[67] ^ B[66] ^ B[65] ^ B[62] ^ B[61] ^ | |
305 | B[56] ^ B[55] ^ B[49] ^ B[45] ^ B[44] ^ B[43] ^ | |
306 | B[41] ^ B[40] ^ B[39] ^ B[36] ^ B[34] ^ B[33] ^ | |
307 | B[32] ^ B[27] ^ B[25] ^ B[24] ^ B[22] ^ B[21] ^ | |
308 | B[19] ^ B[18] ^ B[15] ^ B[13] ^ B[11] ^ B[10] ^ | |
309 | B[8] ^ B[3] ^ B[2] ^ B[1] ^ B[0]; | |
310 | ||
311 | assign E[4] = B[69] ^ B[68] ^ B[67] ^ B[66] ^ B[63] ^ B[62] ^ | |
312 | B[57] ^ B[56] ^ B[50] ^ B[46] ^ B[45] ^ B[44] ^ | |
313 | B[42] ^ B[41] ^ B[40] ^ B[37] ^ B[35] ^ B[34] ^ | |
314 | B[33] ^ B[28] ^ B[26] ^ B[25] ^ B[23] ^ B[22] ^ | |
315 | B[20] ^ B[19] ^ B[16] ^ B[14] ^ B[12] ^ B[11] ^ | |
316 | B[9] ^ B[4] ^ B[3] ^ B[2] ^ B[1]; | |
317 | ||
318 | assign E[5] = B[70] ^ B[69] ^ B[68] ^ B[67] ^ B[64] ^ B[63] ^ | |
319 | B[58] ^ B[57] ^ B[51] ^ B[47] ^ B[46] ^ B[45] ^ | |
320 | B[43] ^ B[42] ^ B[41] ^ B[38] ^ B[36] ^ B[35] ^ | |
321 | B[34] ^ B[29] ^ B[27] ^ B[26] ^ B[24] ^ B[23] ^ | |
322 | B[21] ^ B[20] ^ B[17] ^ B[15] ^ B[13] ^ B[12] ^ | |
323 | B[10] ^ B[5] ^ B[4] ^ B[3] ^ B[2]; | |
324 | ||
325 | assign E[6] = B[71] ^ B[70] ^ B[69] ^ B[68] ^ B[65] ^ B[64] ^ | |
326 | B[59] ^ B[58] ^ B[52] ^ B[48] ^ B[47] ^ B[46] ^ | |
327 | B[44] ^ B[43] ^ B[42] ^ B[39] ^ B[37] ^ B[36] ^ | |
328 | B[35] ^ B[30] ^ B[28] ^ B[27] ^ B[25] ^ B[24] ^ | |
329 | B[22] ^ B[21] ^ B[18] ^ B[16] ^ B[14] ^ B[13] ^ | |
330 | B[11] ^ B[6] ^ B[5] ^ B[4] ^ B[3]; | |
331 | ||
332 | assign E[7] = B[71] ^ B[65] ^ B[62] ^ B[61] ^ B[60] ^ B[58] ^ | |
333 | B[55] ^ B[54] ^ B[50] ^ B[48] ^ B[47] ^ B[45] ^ | |
334 | B[44] ^ B[43] ^ B[42] ^ B[40] ^ B[39] ^ B[38] ^ | |
335 | B[37] ^ B[36] ^ B[33] ^ B[32] ^ B[28] ^ B[27] ^ | |
336 | B[26] ^ B[24] ^ B[23] ^ B[21] ^ B[18] ^ B[17] ^ | |
337 | B[16] ^ B[14] ^ B[12] ^ B[10] ^ B[9] ^ B[8] ^ | |
338 | B[7] ^ B[6] ^ B[5] ^ B[4] ^ B[0]; | |
339 | ||
340 | assign E[8] = B[66] ^ B[63] ^ B[62] ^ B[61] ^ B[59] ^ B[56] ^ | |
341 | B[55] ^ B[51] ^ B[49] ^ B[48] ^ B[46] ^ B[45] ^ | |
342 | B[44] ^ B[43] ^ B[41] ^ B[40] ^ B[39] ^ B[38] ^ | |
343 | B[37] ^ B[34] ^ B[33] ^ B[29] ^ B[28] ^ B[27] ^ | |
344 | B[25] ^ B[24] ^ B[22] ^ B[19] ^ B[18] ^ B[17] ^ | |
345 | B[15] ^ B[13] ^ B[11] ^ B[10] ^ B[9] ^ B[8] ^ | |
346 | B[7] ^ B[6] ^ B[5] ^ B[1]; | |
347 | ||
348 | assign E[9] = B[67] ^ B[64] ^ B[63] ^ B[62] ^ B[60] ^ B[57] ^ | |
349 | B[56] ^ B[52] ^ B[50] ^ B[49] ^ B[47] ^ B[46] ^ | |
350 | B[45] ^ B[44] ^ B[42] ^ B[41] ^ B[40] ^ B[39] ^ | |
351 | B[38] ^ B[35] ^ B[34] ^ B[30] ^ B[29] ^ B[28] ^ | |
352 | B[26] ^ B[25] ^ B[23] ^ B[20] ^ B[19] ^ B[18] ^ | |
353 | B[16] ^ B[14] ^ B[12] ^ B[11] ^ B[10] ^ B[9] ^ | |
354 | B[8] ^ B[7] ^ B[6] ^ B[2]; | |
355 | ||
356 | assign E[10] = B[68] ^ B[65] ^ B[64] ^ B[63] ^ B[61] ^ B[58] ^ | |
357 | B[57] ^ B[53] ^ B[51] ^ B[50] ^ B[48] ^ B[47] ^ | |
358 | B[46] ^ B[45] ^ B[43] ^ B[42] ^ B[41] ^ B[40] ^ | |
359 | B[39] ^ B[36] ^ B[35] ^ B[31] ^ B[30] ^ B[29] ^ | |
360 | B[27] ^ B[26] ^ B[24] ^ B[21] ^ B[20] ^ B[19] ^ | |
361 | B[17] ^ B[15] ^ B[13] ^ B[12] ^ B[11] ^ B[10] ^ | |
362 | B[9] ^ B[8] ^ B[7] ^ B[3]; | |
363 | ||
364 | assign E[11] = B[69] ^ B[66] ^ B[65] ^ B[64] ^ B[62] ^ B[59] ^ | |
365 | B[58] ^ B[54] ^ B[52] ^ B[51] ^ B[49] ^ B[48] ^ | |
366 | B[47] ^ B[46] ^ B[44] ^ B[43] ^ B[42] ^ B[41] ^ | |
367 | B[40] ^ B[37] ^ B[36] ^ B[32] ^ B[31] ^ B[30] ^ | |
368 | B[28] ^ B[27] ^ B[25] ^ B[22] ^ B[21] ^ B[20] ^ | |
369 | B[18] ^ B[16] ^ B[14] ^ B[13] ^ B[12] ^ B[11] ^ | |
370 | B[10] ^ B[9] ^ B[8] ^ B[4]; | |
371 | ||
372 | assign E[12] = B[69] ^ B[67] ^ B[65] ^ B[63] ^ B[62] ^ B[61] ^ | |
373 | B[60] ^ B[58] ^ B[54] ^ B[52] ^ B[48] ^ B[47] ^ | |
374 | B[45] ^ B[44] ^ B[43] ^ B[41] ^ B[39] ^ B[38] ^ | |
375 | B[37] ^ B[28] ^ B[27] ^ B[26] ^ B[25] ^ B[24] ^ | |
376 | B[23] ^ B[18] ^ B[17] ^ B[16] ^ B[14] ^ B[13] ^ | |
377 | B[12] ^ B[11] ^ B[8] ^ B[5] ^ B[0]; | |
378 | ||
379 | ||
380 | assign E[13] = B[69] ^ B[68] ^ B[64] ^ B[63] ^ B[58] ^ B[54] ^ | |
381 | B[50] ^ B[48] ^ B[46] ^ B[45] ^ B[44] ^ B[40] ^ | |
382 | B[38] ^ B[33] ^ B[32] ^ B[31] ^ B[28] ^ B[26] ^ | |
383 | B[22] ^ B[21] ^ B[17] ^ B[16] ^ B[14] ^ B[13] ^ | |
384 | B[12] ^ B[10] ^ B[8] ^ B[6] ^ B[1] ^ B[0]; | |
385 | ||
386 | assign E[14] = B[66] ^ B[65] ^ B[64] ^ B[62] ^ B[61] ^ B[58] ^ | |
387 | B[54] ^ B[53] ^ B[51] ^ B[50] ^ B[47] ^ B[46] ^ | |
388 | B[45] ^ B[42] ^ B[41] ^ B[34] ^ B[31] ^ B[25] ^ | |
389 | B[24] ^ B[23] ^ B[21] ^ B[19] ^ B[17] ^ B[16] ^ | |
390 | B[14] ^ B[13] ^ B[11] ^ B[10] ^ B[8] ^ B[7] ^ | |
391 | B[2] ^ B[1] ^ B[0]; | |
392 | ||
393 | assign E[15] = B[67] ^ B[66] ^ B[65] ^ B[63] ^ B[62] ^ B[59] ^ | |
394 | B[55] ^ B[54] ^ B[52] ^ B[51] ^ B[48] ^ B[47] ^ | |
395 | B[46] ^ B[43] ^ B[42] ^ B[35] ^ B[32] ^ B[26] ^ | |
396 | B[25] ^ B[24] ^ B[22] ^ B[20] ^ B[18] ^ B[17] ^ | |
397 | B[15] ^ B[14] ^ B[12] ^ B[11] ^ B[9] ^ B[8] ^ | |
398 | B[3] ^ B[2] ^ B[1]; | |
399 | ||
400 | assign E[16] = B[68] ^ B[67] ^ B[66] ^ B[64] ^ B[63] ^ B[60] ^ | |
401 | B[56] ^ B[55] ^ B[53] ^ B[52] ^ B[49] ^ B[48] ^ | |
402 | B[47] ^ B[44] ^ B[43] ^ B[36] ^ B[33] ^ B[27] ^ | |
403 | B[26] ^ B[25] ^ B[23] ^ B[21] ^ B[19] ^ B[18] ^ | |
404 | B[16] ^ B[15] ^ B[13] ^ B[12] ^ B[10] ^ B[9] ^ | |
405 | B[4] ^ B[3] ^ B[2]; | |
406 | ||
407 | assign E[17] = B[69] ^ B[68] ^ B[67] ^ B[65] ^ B[64] ^ B[61] ^ | |
408 | B[57] ^ B[56] ^ B[54] ^ B[53] ^ B[50] ^ B[49] ^ | |
409 | B[48] ^ B[45] ^ B[44] ^ B[37] ^ B[34] ^ B[28] ^ | |
410 | B[27] ^ B[26] ^ B[24] ^ B[22] ^ B[20] ^ B[19] ^ | |
411 | B[17] ^ B[16] ^ B[14] ^ B[13] ^ B[11] ^ B[10] ^ | |
412 | B[5] ^ B[4] ^ B[3]; | |
413 | ||
414 | assign E[18] = B[70] ^ B[69] ^ B[68] ^ B[66] ^ B[65] ^ B[62] ^ | |
415 | B[58] ^ B[57] ^ B[55] ^ B[54] ^ B[51] ^ B[50] ^ | |
416 | B[49] ^ B[46] ^ B[45] ^ B[38] ^ B[35] ^ B[29] ^ | |
417 | B[28] ^ B[27] ^ B[25] ^ B[23] ^ B[21] ^ B[20] ^ | |
418 | B[18] ^ B[17] ^ B[15] ^ B[14] ^ B[12] ^ B[11] ^ | |
419 | B[6] ^ B[5] ^ B[4]; | |
420 | ||
421 | assign E[19] = B[71] ^ B[70] ^ B[69] ^ B[67] ^ B[66] ^ B[63] ^ | |
422 | B[59] ^ B[58] ^ B[56] ^ B[55] ^ B[52] ^ B[51] ^ | |
423 | B[50] ^ B[47] ^ B[46] ^ B[39] ^ B[36] ^ B[30] ^ | |
424 | B[29] ^ B[28] ^ B[26] ^ B[24] ^ B[22] ^ B[21] ^ | |
425 | B[19] ^ B[18] ^ B[16] ^ B[15] ^ B[13] ^ B[12] ^ | |
426 | B[7] ^ B[6] ^ B[5]; | |
427 | ||
428 | assign E[20] = B[71] ^ B[70] ^ B[68] ^ B[67] ^ B[64] ^ B[60] ^ | |
429 | B[59] ^ B[57] ^ B[56] ^ B[53] ^ B[52] ^ B[51] ^ | |
430 | B[48] ^ B[47] ^ B[40] ^ B[37] ^ B[31] ^ B[30] ^ | |
431 | B[29] ^ B[27] ^ B[25] ^ B[23] ^ B[22] ^ B[20] ^ | |
432 | B[19] ^ B[17] ^ B[16] ^ B[14] ^ B[13] ^ B[8] ^ | |
433 | B[7] ^ B[6]; | |
434 | ||
435 | assign E[21] = B[71] ^ B[69] ^ B[68] ^ B[65] ^ B[61] ^ B[60] ^ | |
436 | B[58] ^ B[57] ^ B[54] ^ B[53] ^ B[52] ^ B[49] ^ | |
437 | B[48] ^ B[41] ^ B[38] ^ B[32] ^ B[31] ^ B[30] ^ | |
438 | B[28] ^ B[26] ^ B[24] ^ B[23] ^ B[21] ^ B[20] ^ | |
439 | B[18] ^ B[17] ^ B[15] ^ B[14] ^ B[9] ^ B[8] ^ | |
440 | B[7]; | |
441 | ||
442 | endmodule | |
443 | ||
444 | ||
445 | module crc_aE_failover(B,E); | |
446 | // interface signals | |
447 | input [25:0] B; | |
448 | output [9:0] E; | |
449 | ||
450 | ||
451 | assign E[0] = B[25] ^ B[22] ^ B[21] ^ B[19] ^ B[17] ^ | |
452 | B[16] ^ B[14] ^ B[13] ^ B[10] ^ B[8] ^ B[2] | |
453 | ^ B[1] ^ B[0]; | |
454 | ||
455 | assign E[1] = B[25] ^ B[23] ^ B[21] ^ B[20] ^ B[19] | |
456 | ^ B[18] ^ B[16] ^ B[15] ^ B[13] ^ B[11] | |
457 | ^ B[10] ^ B[9] ^ B[8] ^ B[3] ^ B[0]; | |
458 | ||
459 | assign E[2] = B[25] ^ B[24] ^ B[20] ^ B[13] ^ B[12] ^ B[11] ^ B[9] | |
460 | ^ B[8] ^ B[4] ^ B[2] ^ B[0]; | |
461 | ||
462 | assign E[3] = B[22] ^ B[19] ^ B[17] ^ B[16] ^ B[12] ^ B[9] ^ B[8] ^ B[5] ^ B[3] ^ B[2] ^ B[0]; | |
463 | ||
464 | assign E[4] = B[25] ^ B[23] ^ B[22] ^ B[21] ^ B[20] ^ B[19] ^ B[18] ^ B[16] ^ B[14] ^ B[9] ^ B[8] ^ B[6] ^ B[4] ^ B[3] ^ B[2] ^ B[0]; | |
465 | ||
466 | assign E[5] = B[24] ^ B[23] ^ B[22] ^ B[21] ^ B[20] ^ B[19] ^ B[17] ^ B[15] ^ B[10] ^ B[9] ^ B[7] ^ B[5] ^ B[4] ^ B[3] ^ B[1]; | |
467 | ||
468 | assign E[6] = B[24] ^ B[23] ^ B[20] ^ B[19] ^ B[18] ^ B[17] ^ B[14] ^ B[13] ^ B[11] ^ B[6] ^ B[5] ^ B[4] ^ B[1] ^ B[0]; | |
469 | ||
470 | assign E[7] = B[24] ^ B[22] ^ B[20] ^ B[18] ^ B[17] ^ B[16] ^ B[15] ^ B[13] ^ B[12] ^ B[10] ^ B[8] ^ B[7] ^ B[6] ^ B[5] ^ B[0]; | |
471 | ||
472 | assign E[8] = B[25] ^ B[23] ^ B[21] ^ B[19] ^ B[18] ^ B[17] ^ B[16] ^ B[14] ^ B[13] ^ B[11] ^ B[9] ^ B[8] ^ B[7] ^ B[6] ^ B[1]; | |
473 | ||
474 | assign E[9] = B[25] ^ B[24] ^ B[21] ^ B[20] ^ B[18] ^ B[16] ^ B[15] ^ B[13] ^ B[12] ^ B[9] ^ B[7] ^ B[1] ^ B[0]; | |
475 | ||
476 | ||
477 | ||
478 | ||
479 | endmodule | |
480 | ||
481 | ||
482 | module crc_FE_failover(B,E); | |
483 | // interface signals | |
484 | input [71:0] B; | |
485 | output [9:0] E; | |
486 | ||
487 | assign E[0] = B[71] ^ B[65] ^ B[63] ^ B[62] ^ B[59] ^ B[58] ^ B[57] ^ B[55] ^ B[53] ^ B[52] ^ B[51] ^ B[50] ^ B[49] ^ B[48] ^ B[45] ^ | |
488 | B[44] ^ B[41] ^ B[36] ^ B[34] ^ B[32] ^ B[31] ^ B[29] ^ B[26] ^ B[25] ^ B[22] ^ B[21] ^ B[19] ^ B[17] ^ B[16] ^ B[14] ^ B[13] ^ B[10] ^ B[8] ^ B[2] ^ B[1] ^ B[0]; | |
489 | ||
490 | assign E[1] = B[71] ^ B[66] ^ B[65] ^ B[64] ^ B[62] ^ B[60] ^ B[57] ^ B[56] ^ B[55] ^ B[54] ^ B[48] ^ B[46] ^ B[44] ^ B[42] ^ B[41] ^ | |
491 | B[37] ^ B[36] ^ B[35] ^ B[34] ^ B[33] ^ B[31] ^ B[30] ^ B[29] ^ B[27] ^ B[25] ^ B[23] ^ B[21] ^ B[20] ^ B[19] ^ B[18] ^ B[16] ^ B[15] ^ B[13] ^ B[11] ^ B[10] ^ B[9] ^ B[8] ^ B[3] ^ B[0]; | |
492 | ||
493 | assign E[2] = B[71] ^ B[67] ^ B[66] ^ B[62] ^ B[61] ^ B[59] ^ B[56] ^ B[53] ^ B[52] ^ B[51] ^ B[50] ^ B[48] ^ B[47] ^ B[44] ^ B[43] ^ | |
494 | B[42] ^ B[41] ^ B[38] ^ B[37] ^ B[35] ^ B[30] ^ B[29] ^ B[28] ^ B[25] ^ B[24] ^ B[20] ^ B[13] ^ B[12] ^ B[11] ^ B[9] ^ B[8] ^ B[4] ^ B[2] ^ B[0]; | |
495 | ||
496 | assign E[3] = B[71] ^ B[68] ^ B[67] ^ B[65] ^ B[60] ^ B[59] ^ B[58] ^ B[55] ^ B[54] ^ B[50] ^ B[43] ^ B[42] ^ B[41] ^ B[39] ^ B[38] ^ | |
497 | B[34] ^ B[32] ^ B[30] ^ B[22] ^ B[19] ^ B[17] ^ B[16] ^ B[12] ^ B[9] ^ B[8] ^ B[5] ^ B[3] ^ B[2] ^ B[0]; | |
498 | ||
499 | assign E[4] = B[71] ^ B[69] ^ B[68] ^ B[66] ^ B[65] ^ B[63] ^ B[62] ^ B[61] ^ B[60] ^ B[58] ^ B[57] ^ B[56] ^ B[53] ^ B[52] ^ B[50] ^ | |
500 | B[49] ^ B[48] ^ B[45] ^ B[43] ^ B[42] ^ B[41] ^ B[40] ^ B[39] ^ B[36] ^ B[35] ^ B[34] ^ B[33] ^ B[32] ^ B[29] ^ B[26] ^ B[25] ^ B[23] ^ B[22] ^ B[21] ^ B[20] ^ B[19] ^ B[18] ^ B[16] ^ B[14] ^ B[9] ^ B[8] ^ B[6] ^ B[4] ^ B[3] ^ B[2] ^ B[0]; | |
501 | ||
502 | assign E[5] = B[70] ^ B[69] ^ B[67] ^ B[66] ^ B[64] ^ B[63] ^ B[62] ^ B[61] ^ B[59] ^ B[58] ^ B[57] ^ B[54] ^ B[53] ^ B[51] ^ B[50] ^ | |
503 | B[49] ^ B[46] ^ B[44] ^ B[43] ^ B[42] ^ B[41] ^ B[40] ^ B[37] ^ B[36] ^ B[35] ^ B[34] ^ B[33] ^ B[30] ^ B[27] ^ B[26] ^ B[24] ^ B[23] ^ B[22] ^ B[21] ^ B[20] ^ B[19] ^ B[17] ^ B[15] ^ B[10] ^ B[9] ^ B[7] ^ B[5] ^ B[4] ^ B[3] ^ B[1]; | |
504 | ||
505 | assign E[6] = B[70] ^ B[68] ^ B[67] ^ B[64] ^ B[60] ^ B[57] ^ B[54] ^ B[53] ^ B[49] ^ B[48] ^ B[47] ^ B[43] ^ B[42] ^ B[38] ^ B[37] ^ | |
506 | B[35] ^ B[32] ^ B[29] ^ B[28] ^ B[27] ^ B[26] ^ B[24] ^ B[23] ^ B[20] ^ B[19] ^ B[18] ^ B[17] ^ B[14] ^ B[13] ^ B[11] ^ B[6] ^ B[5] ^ B[4] ^ B[1] ^ B[0]; | |
507 | ||
508 | assign E[7] = B[69] ^ B[68] ^ B[63] ^ B[62] ^ B[61] ^ B[59] ^ B[57] ^ B[54] ^ B[53] ^ B[52] ^ B[51] ^ B[45] ^ B[43] ^ B[41] ^ B[39] ^ | |
509 | B[38] ^ B[34] ^ B[33] ^ B[32] ^ B[31] ^ B[30] ^ B[28] ^ B[27] ^ B[26] ^ B[24] ^ B[22] ^ B[20] ^ B[18] ^ B[17] ^ B[16] ^ B[15] ^ B[13] ^ B[12] ^ B[10] ^ B[8] ^ B[7] ^ B[6] ^ B[5] ^ B[0]; | |
510 | ||
511 | assign E[8] = B[70] ^ B[69] ^ B[64] ^ B[63] ^ B[62] ^ B[60] ^ B[58] ^ B[55] ^ B[54] ^ B[53] ^ B[52] ^ B[46] ^ B[44] ^ B[42] ^ B[40] ^ | |
512 | B[39] ^ B[35] ^ B[34] ^ B[33] ^ B[32] ^ B[31] ^ B[29] ^ B[28] ^ B[27] ^ B[25] ^ B[23] ^ B[21] ^ B[19] ^ B[18] ^ B[17] ^ B[16] ^ B[14] ^ B[13] ^ B[11] ^ B[9] ^ B[8] ^ B[7] ^ B[6] ^ B[1]; | |
513 | ||
514 | assign E[9] = B[70] ^ B[64] ^ B[62] ^ B[61] ^ B[58] ^ B[57] ^ B[56] ^ B[54] ^ B[52] ^ B[51] ^ B[50] ^ B[49] ^ B[48] ^ B[47] ^ B[44] ^ | |
515 | B[43] ^ B[40] ^ B[35] ^ B[33] ^ B[31] ^ B[30] ^ B[28] ^ B[25] ^ B[24] ^ B[21] ^ B[20] ^ B[18] ^ B[16] ^ B[15] ^ B[13] ^ B[12] ^ B[9] ^ B[7] ^ B[1] ^ B[0]; | |
516 | ||
517 | endmodule | |
518 | ||
519 |