Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / l2t / rtl / l2t_ecc39_dp.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: l2t_ecc39_dp.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 ============================================
35module l2t_ecc39_dp (
36 dout,
37 cflag,
38 pflag,
39 din,
40 parity);
41wire c0_10;
42wire c0_11;
43wire c0_12;
44wire c0_13;
45wire c0_14;
46wire c0_15;
47wire c0_20;
48wire c0_21;
49wire c0_1;
50wire c0_2;
51wire c0_3;
52wire c1_10;
53wire c1_11;
54wire c1_12;
55wire c1_13;
56wire c1_14;
57wire c1_15;
58wire c1_20;
59wire c1_21;
60wire c1_1;
61wire c1_2;
62wire c2_10;
63wire c2_11;
64wire c2_12;
65wire c2_13;
66wire c2_14;
67wire c2_15;
68wire c2_20;
69wire c2_21;
70wire c2_1;
71wire c2_2;
72wire c3_10;
73wire c3_11;
74wire c3_12;
75wire c3_13;
76wire c3_14;
77wire c3_20;
78wire c3_21;
79wire c3_1;
80wire c3_2;
81wire c4_10;
82wire c4_11;
83wire c4_12;
84wire c4_13;
85wire c4_14;
86wire c4_20;
87wire c4_21;
88wire c4_1;
89wire c4_2;
90wire c5_10;
91wire c5_11;
92wire pflag_10;
93wire pflag_11;
94wire pflag_12;
95wire pflag_13;
96wire pflag_14;
97wire pflag_15;
98wire pflag_20;
99wire pflag_21;
100wire pflag_30;
101wire nc0_1;
102wire nc0_2;
103wire nc1_1;
104wire nc1_2;
105wire nc2_1;
106wire nc2_2;
107wire nc3_1;
108wire nc3_2;
109wire nc4_1;
110wire nc4_2;
111wire nc5_1;
112wire nc5_2;
113wire err_bit0_pos_10a;
114wire err_bit0_pos_10b;
115wire err_bit1_pos_10a;
116wire err_bit1_pos_10b;
117wire err_bit2_pos_10a;
118wire err_bit2_pos_10b;
119wire err_bit3_pos_10a;
120wire err_bit3_pos_10b;
121wire err_bit4_pos_10a;
122wire err_bit4_pos_10b;
123wire err_bit5_pos_10a;
124wire err_bit5_pos_10b;
125wire err_bit6_pos_10a;
126wire err_bit6_pos_10b;
127wire err_bit7_pos_10a;
128wire err_bit7_pos_10b;
129wire err_bit8_pos_10a;
130wire err_bit8_pos_10b;
131wire err_bit9_pos_10a;
132wire err_bit9_pos_10b;
133wire err_bit10_pos_10a;
134wire err_bit10_pos_10b;
135wire err_bit11_pos_10a;
136wire err_bit11_pos_10b;
137wire err_bit12_pos_10a;
138wire err_bit12_pos_10b;
139wire err_bit13_pos_10a;
140wire err_bit13_pos_10b;
141wire err_bit14_pos_10a;
142wire err_bit14_pos_10b;
143wire err_bit15_pos_10a;
144wire err_bit15_pos_10b;
145wire err_bit16_pos_10a;
146wire err_bit16_pos_10b;
147wire err_bit17_pos_10a;
148wire err_bit17_pos_10b;
149wire err_bit18_pos_10a;
150wire err_bit18_pos_10b;
151wire err_bit19_pos_10a;
152wire err_bit19_pos_10b;
153wire err_bit20_pos_10a;
154wire err_bit20_pos_10b;
155wire err_bit21_pos_10a;
156wire err_bit21_pos_10b;
157wire err_bit22_pos_10a;
158wire err_bit22_pos_10b;
159wire err_bit23_pos_10a;
160wire err_bit23_pos_10b;
161wire err_bit24_pos_10a;
162wire err_bit24_pos_10b;
163wire err_bit25_pos_10a;
164wire err_bit25_pos_10b;
165wire err_bit26_pos_10a;
166wire err_bit26_pos_10b;
167wire err_bit27_pos_10a;
168wire err_bit27_pos_10b;
169wire err_bit28_pos_10a;
170wire err_bit28_pos_10b;
171wire err_bit29_pos_10a;
172wire err_bit29_pos_10b;
173wire err_bit30_pos_10a;
174wire err_bit30_pos_10b;
175wire err_bit31_pos_10a;
176wire err_bit31_pos_10b;
177
178
179 //Output: 32bit corrected data
180 output[31:0] dout;
181 output [5:0] cflag;
182 output pflag;
183
184 //Input: 32bit data din
185 input [31:0] din;
186 input [6:0] parity;
187
188 wire c0,c1,c2,c3,c4,c5;
189 wire [31:0] err_bit_pos;
190
191 //refer to the comments in parity_gen_32b.v for the position description
192//
193// assign c0= parity[0]^(din[0]^din[1])^(din[3]^din[4])^(din[6]^din[8])
194// ^(din[10]^din[11])^(din[13]^din[15])^(din[17]^din[19])
195// ^(din[21]^din[23])^(din[25]^din[26])^(din[28]^din[30]);
196
197
198l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c0_slice_10 (
199 .dout (c0_10),
200 .din0 (din[0]),
201 .din1 (din[1]),
202 .din2 (din[3])
203 );
204l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c0_slice_11 (
205 .dout (c0_11),
206 .din0 (din[4]),
207 .din1 (din[6]),
208 .din2 (din[8])
209 );
210l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c0_slice_12 (
211 .dout (c0_12),
212 .din0 (din[10]),
213 .din1 (din[11]),
214 .din2 (din[13])
215 );
216l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c0_slice_13 (
217 .dout (c0_13),
218 .din0 (din[15]),
219 .din1 (din[17]),
220 .din2 (din[19])
221 );
222l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c0_slice_14 (
223 .dout (c0_14),
224 .din0 (din[21]),
225 .din1 (din[23]),
226 .din2 (din[25])
227 );
228l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c0_slice_15 (
229 .dout (c0_15),
230 .din0 (din[26]),
231 .din1 (din[28]),
232 .din2 (din[30])
233 );
234l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c0_slice_20 (
235 .dout (c0_20),
236 .din0 (c0_10),
237 .din1 (c0_11),
238 .din2 (c0_12)
239 );
240l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c0_slice_21 (
241 .dout (c0_21),
242 .din0 (c0_13),
243 .din1 (c0_14),
244 .din2 (c0_15)
245 );
246l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c0_slice_22a (
247 .dout (c0_1),
248 .din0 (c0_20),
249 .din1 (c0_21),
250 .din2 (parity[0])
251 );
252
253l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c0_slice_22b (
254 .dout (c0_2),
255 .din0 (c0_20),
256 .din1 (c0_21),
257 .din2 (parity[0])
258 );
259
260l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c0_slice_22c (
261 .dout (c0_3),
262 .din0 (c0_20),
263 .din1 (c0_21),
264 .din2 (parity[0])
265 );
266
267
268
269// assign c1= parity[1]^(din[0]^din[2])^(din[3]^din[5])^(din[6]^din[9])
270// ^(din[10]^din[12])^(din[13]^din[16])^(din[17]^din[20])
271// ^(din[21]^din[24])^(din[25]^din[27])^(din[28]^din[31]);
272
273l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c1_slice_10 (
274 .dout (c1_10),
275 .din0 (din[0]),
276 .din1 (din[2]),
277 .din2 (din[3])
278 );
279l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c1_slice_11 (
280 .dout (c1_11),
281 .din0 (din[5]),
282 .din1 (din[6]),
283 .din2 (din[9])
284 );
285l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c1_slice_12 (
286 .dout (c1_12),
287 .din0 (din[10]),
288 .din1 (din[12]),
289 .din2 (din[13])
290 );
291l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c1_slice_13 (
292 .dout (c1_13),
293 .din0 (din[16]),
294 .din1 (din[17]),
295 .din2 (din[20])
296 );
297l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c1_slice_14 (
298 .dout (c1_14),
299 .din0 (din[21]),
300 .din1 (din[24]),
301 .din2 (din[25])
302 );
303l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c1_slice_15 (
304 .dout (c1_15),
305 .din0 (din[27]),
306 .din1 (din[28]),
307 .din2 (din[31])
308 );
309l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c1_slice_20 (
310 .dout (c1_20),
311 .din0 (c1_10),
312 .din1 (c1_11),
313 .din2 (c1_12)
314 );
315l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c1_slice_21 (
316 .dout (c1_21),
317 .din0 (c1_13),
318 .din1 (c1_14),
319 .din2 (c1_15)
320 );
321l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c1_slice_22a (
322 .dout (c1_1),
323 .din0 (c1_20),
324 .din1 (c1_21),
325 .din2 (parity[1])
326 );
327l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c1_slice_22b (
328 .dout (c1_2),
329 .din0 (c1_20),
330 .din1 (c1_21),
331 .din2 (parity[1])
332 );
333
334
335// assign c2= parity[2]^(din[1]^din[2])^(din[3]^din[7])^(din[8]^din[9])
336// ^(din[10]^din[14])^(din[15]^din[16])^(din[17]^din[22])
337// ^(din[23]^din[24])^(din[25]^din[29])^(din[30]^din[31]);
338
339
340l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c2_slice_10 (
341 .dout (c2_10),
342 .din0 (din[1]),
343 .din1 (din[2]),
344 .din2 (din[3])
345 );
346l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c2_slice_11 (
347 .dout (c2_11),
348 .din0 (din[7]),
349 .din1 (din[8]),
350 .din2 (din[9])
351 );
352l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c2_slice_12 (
353 .dout (c2_12),
354 .din0 (din[10]),
355 .din1 (din[14]),
356 .din2 (din[15])
357 );
358l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c2_slice_13 (
359 .dout (c2_13),
360 .din0 (din[16]),
361 .din1 (din[17]),
362 .din2 (din[22])
363 );
364l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c2_slice_14 (
365 .dout (c2_14),
366 .din0 (din[23]),
367 .din1 (din[24]),
368 .din2 (din[25])
369 );
370l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c2_slice_15 (
371 .dout (c2_15),
372 .din0 (din[29]),
373 .din1 (din[30]),
374 .din2 (din[31])
375 );
376l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c2_slice_20 (
377 .dout (c2_20),
378 .din0 (c2_10),
379 .din1 (c2_11),
380 .din2 (c2_12)
381 );
382l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c2_slice_21 (
383 .dout (c2_21),
384 .din0 (c2_13),
385 .din1 (c2_14),
386 .din2 (c2_15)
387 );
388l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c2_slice_22a (
389 .dout (c2_1),
390 .din0 (c2_20),
391 .din1 (c2_21),
392 .din2 (parity[2])
393 );
394l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c2_slice_22b (
395 .dout (c2_2),
396 .din0 (c2_20),
397 .din1 (c2_21),
398 .din2 (parity[2])
399 );
400
401
402
403
404// assign c3= parity[3]^(din[4]^din[5])^(din[6]^din[7])^(din[8]^din[9])
405// ^(din[10]^din[18])^(din[19]^din[20])^(din[21]^din[22])
406// ^(din[23]^din[24])^din[25];
407
408
409l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c3_slice_10 (
410 .dout (c3_10),
411 .din0 (din[4]),
412 .din1 (din[5]),
413 .din2 (din[6])
414 );
415l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c3_slice_11 (
416 .dout (c3_11),
417 .din0 (din[7]),
418 .din1 (din[8]),
419 .din2 (din[9])
420 );
421l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c3_slice_12 (
422 .dout (c3_12),
423 .din0 (din[10]),
424 .din1 (din[18]),
425 .din2 (din[19])
426 );
427l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c3_slice_13 (
428 .dout (c3_13),
429 .din0 (din[20]),
430 .din1 (din[21]),
431 .din2 (din[22])
432 );
433l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c3_slice_14 (
434 .dout (c3_14),
435 .din0 (din[23]),
436 .din1 (din[24]),
437 .din2 (din[25])
438 );
439l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c3_slice_20 (
440 .dout (c3_20),
441 .din0 (c3_10),
442 .din1 (c3_11),
443 .din2 (c3_12)
444 );
445l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c3_slice_21 (
446 .dout (c3_21),
447 .din0 (c3_13),
448 .din1 (c3_14),
449 .din2 (parity[3])
450 );
451l2t_ecc39_dp_xor_macro__dxor_16x__ports_2__width_1 c3_slice_22a (
452 .dout (c3_1),
453 .din0 (c3_20),
454 .din1 (c3_21)
455 );
456
457l2t_ecc39_dp_xor_macro__dxor_16x__ports_2__width_1 c3_slice_22b (
458 .dout (c3_2),
459 .din0 (c3_20),
460 .din1 (c3_21)
461 );
462
463
464// assign c4= parity[4]^(din[11]^din[12])^(din[13]^din[14])^
465// (din[15]^din[16])^(din[17]^din[18])^(din[19]^din[20])^
466// (din[21]^din[22])^(din[23]^din[24])^din[25];
467
468
469
470l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c4_slice_10 (
471 .dout (c4_10),
472 .din0 (din[11]),
473 .din1 (din[12]),
474 .din2 (din[13])
475 );
476l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c4_slice_11 (
477 .dout (c4_11),
478 .din0 (din[14]),
479 .din1 (din[15]),
480 .din2 (din[16])
481 );
482l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c4_slice_12 (
483 .dout (c4_12),
484 .din0 (din[17]),
485 .din1 (din[18]),
486 .din2 (din[19])
487 );
488l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c4_slice_13 (
489 .dout (c4_13),
490 .din0 (din[20]),
491 .din1 (din[21]),
492 .din2 (din[22])
493 );
494l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c4_slice_14 (
495 .dout (c4_14),
496 .din0 (din[23]),
497 .din1 (din[24]),
498 .din2 (din[25])
499 );
500l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c4_slice_20 (
501 .dout (c4_20),
502 .din0 (c4_10),
503 .din1 (c4_11),
504 .din2 (c4_12)
505 );
506l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c4_slice_21 (
507 .dout (c4_21),
508 .din0 (c4_13),
509 .din1 (c4_14),
510 .din2 (parity[4])
511 );
512l2t_ecc39_dp_xor_macro__dxor_16x__ports_2__width_1 c4_slice_22a (
513 .dout (c4_1),
514 .din0 (c4_20),
515 .din1 (c4_21)
516 );
517
518l2t_ecc39_dp_xor_macro__dxor_16x__ports_2__width_1 c4_slice_22b (
519 .dout (c4_2),
520 .din0 (c4_20),
521 .din1 (c4_21)
522 );
523
524
525
526// assign c5= parity[5]^(din[26]^din[27])^(din[28]^din[29])^
527// (din[30]^din[31]);
528
529
530
531l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c5_slice_10 (
532 .dout (c5_10),
533 .din0 (din[26]),
534 .din1 (din[27]),
535 .din2 (din[28])
536 );
537l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 c5_slice_11 (
538 .dout (c5_11),
539 .din0 (din[29]),
540 .din1 (din[30]),
541 .din2 (din[31])
542 );
543l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 c5_slice_20 (
544 .dout (c5),
545 .din0 (c5_10),
546 .din1 (c5_11),
547 .din2 (parity[5])
548 );
549
550
551// //generate total parity flag
552// assign pflag= c0 ^
553// (( (((parity[1]^parity[2])^(parity[3]^parity[4])) ^
554// ((parity[5]^parity[6])^(din[2]^din[5]))) ^
555// (((din[7]^din[9])^(din[12]^din[14])) ^
556// ((din[16]^din[18])^(din[20]^din[22]))) ) ^
557// ((din[24]^din[27])^(din[29]^din[31])) );
558
559l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 pflag_slice_10 (
560 .dout (pflag_10),
561 .din0 (parity[1]),
562 .din1 (parity[2]),
563 .din2 (parity[3])
564 );
565l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 pflag_slice_11 (
566 .dout (pflag_11),
567 .din0 (parity[4]),
568 .din1 (parity[5]),
569 .din2 (parity[6])
570 );
571l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 pflag_slice_12 (
572 .dout (pflag_12),
573 .din0 (din[2]),
574 .din1 (din[5]),
575 .din2 (din[7])
576 );
577
578l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 pflag_slice_13 (
579 .dout (pflag_13),
580 .din0 (din[9]),
581 .din1 (din[12]),
582 .din2 (din[14])
583 );
584
585l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 pflag_slice_14 (
586 .dout (pflag_14),
587 .din0 (din[16]),
588 .din1 (din[18]),
589 .din2 (din[20])
590 );
591
592l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 pflag_slice_15 (
593 .dout (pflag_15),
594 .din0 (din[22]),
595 .din1 (din[24]),
596 .din2 (din[27])
597 );
598
599l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 pflag_slice_20 (
600 .dout (pflag_20),
601 .din0 (din[29]),
602 .din1 (din[31]),
603 .din2 (pflag_10)
604 );
605
606
607l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 pflag_slice_21 (
608 .dout (pflag_21),
609 .din0 (pflag_11),
610 .din1 (pflag_12),
611 .din2 (pflag_13)
612 );
613
614
615l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 pflag_slice_30 (
616 .dout (pflag_30),
617 .din0 (pflag_14),
618 .din1 (pflag_15),
619 .din2 (pflag_20)
620 );
621
622
623l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 pflag_slice_31 (
624 .dout (pflag),
625 .din0 (pflag_30),
626 .din1 (pflag_21),
627 .din2 (c0_1)
628 );
629
630
631assign cflag= {c5,c4_1,c3_1,c2_1,c1_1,c0_1};
632
633
634 //6 to 32 decoder
635
636l2t_ecc39_dp_inv_macro__dinv_32x__width_1 c0_inv_slice_1
637 (
638 .din (c0_1),
639 .dout (nc0_1)
640 );
641
642l2t_ecc39_dp_inv_macro__dinv_32x__width_1 c0_inv_slice_2
643 (
644 .din (c0_3),
645 .dout (nc0_2)
646 );
647
648l2t_ecc39_dp_inv_macro__dinv_32x__width_1 c1_inv_slice_1
649 (
650 .din (c1_1),
651 .dout (nc1_1)
652 );
653
654
655l2t_ecc39_dp_inv_macro__dinv_32x__width_1 c1_inv_slice_2
656 (
657 .din (c1_2),
658 .dout (nc1_2)
659 );
660
661
662
663l2t_ecc39_dp_inv_macro__dinv_32x__width_1 c2_inv_slice_1
664 (
665 .din (c2_1),
666 .dout (nc2_1)
667 );
668
669
670l2t_ecc39_dp_inv_macro__dinv_32x__width_1 c2_inv_slice_2
671 (
672 .din (c2_2),
673 .dout (nc2_2)
674 );
675
676l2t_ecc39_dp_inv_macro__dinv_32x__width_1 c3_inv_slice_1
677 (
678 .din (c3_1),
679 .dout (nc3_1)
680 );
681l2t_ecc39_dp_inv_macro__dinv_32x__width_1 c3_inv_slice_2
682 (
683 .din (c3_1),
684 .dout (nc3_2)
685 );
686
687
688
689l2t_ecc39_dp_inv_macro__dinv_32x__width_1 c4_inv_slice_1
690 (
691 .din (c4_1),
692 .dout (nc4_1)
693 );
694
695l2t_ecc39_dp_inv_macro__dinv_32x__width_1 c4_inv_slice_2
696 (
697 .din (c4_2),
698 .dout (nc4_2)
699 );
700
701
702
703l2t_ecc39_dp_inv_macro__dinv_32x__width_1 c5_inv_slice_1
704 (
705 .din (c5),
706 .dout (nc5_1)
707 );
708
709
710l2t_ecc39_dp_inv_macro__dinv_32x__width_1 c5_inv_slice_2
711 (
712 .din (c5),
713 .dout (nc5_2)
714 );
715
716
717// bit 0
718
719l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit0_pos_slice_10a (
720.dout (err_bit0_pos_10a),
721.din0 (c0_2),
722.din1 (c1_1),
723.din2 (nc2_1)
724);
725
726
727l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit0_pos_slice_10b (
728.dout (err_bit0_pos_10b),
729.din0 (nc3_1),
730.din1 (nc4_1),
731.din2 (nc5_1)
732);
733
734l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit0_pos_slice_10c (
735.dout (err_bit_pos[0]),
736.din0 (err_bit0_pos_10a),
737.din1 (err_bit0_pos_10b)
738);
739
740// bit 1
741
742l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit1_pos_slice_10a (
743.dout (err_bit1_pos_10a),
744.din0 (c0_2),
745.din1 (nc1_1),
746.din2 (c2_1)
747);
748
749
750l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit1_pos_slice_10b (
751.dout (err_bit1_pos_10b),
752.din0 (nc3_1),
753.din1 (nc4_1),
754.din2 (nc5_1)
755);
756
757l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit1_pos_slice_10c (
758.dout (err_bit_pos[1]),
759.din0 (err_bit1_pos_10a),
760.din1 (err_bit1_pos_10b)
761);
762
763// bit 2
764
765l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit2_pos_slice_10a (
766.dout (err_bit2_pos_10a),
767.din0 (nc0_1),
768.din1 (c1_1),
769.din2 (c2_1)
770);
771
772
773l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit2_pos_slice_10b (
774.dout (err_bit2_pos_10b),
775.din0 (nc3_1),
776.din1 (nc4_1),
777.din2 (nc5_1)
778);
779
780l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit2_pos_slice_10c (
781.dout (err_bit_pos[2]),
782.din0 (err_bit2_pos_10a),
783.din1 (err_bit2_pos_10b)
784);
785
786
787// bit 3
788
789l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit3_pos_slice_10a (
790.dout (err_bit3_pos_10a),
791.din0 (c0_2),
792.din1 (c1_1),
793.din2 (c2_1)
794);
795
796
797l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit3_pos_slice_10b (
798.dout (err_bit3_pos_10b),
799.din0 (nc3_1),
800.din1 (nc4_1),
801.din2 (nc5_1)
802);
803
804l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit3_pos_slice_10c (
805.dout (err_bit_pos[3]),
806.din0 (err_bit3_pos_10a),
807.din1 (err_bit3_pos_10b)
808);
809
810
811// bit 4
812
813l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit4_pos_slice_10a (
814.dout (err_bit4_pos_10a),
815.din0 (c0_2),
816.din1 (nc1_1),
817.din2 (nc2_1)
818);
819
820
821l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit4_pos_slice_10b (
822.dout (err_bit4_pos_10b),
823.din0 (c3_1),
824.din1 (nc4_1),
825.din2 (nc5_1)
826);
827
828l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit4_pos_slice_10c (
829.dout (err_bit_pos[4]),
830.din0 (err_bit4_pos_10a),
831.din1 (err_bit4_pos_10b)
832);
833
834// bit 5
835
836l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit5_pos_slice_10a (
837.dout (err_bit5_pos_10a),
838.din0 (nc0_1),
839.din1 (c1_1),
840.din2 (nc2_1)
841);
842
843
844l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit5_pos_slice_10b (
845.dout (err_bit5_pos_10b),
846.din0 (c3_1),
847.din1 (nc4_2),
848.din2 (nc5_1)
849);
850
851l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit5_pos_slice_10c (
852.dout (err_bit_pos[5]),
853.din0 (err_bit5_pos_10a),
854.din1 (err_bit5_pos_10b)
855);
856
857// bit 6
858
859l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit6_pos_slice_10a (
860.dout (err_bit6_pos_10a),
861.din0 (c0_1),
862.din1 (c1_1),
863.din2 (nc2_1)
864);
865
866
867l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit6_pos_slice_10b (
868.dout (err_bit6_pos_10b),
869.din0 (c3_1),
870.din1 (nc4_2),
871.din2 (nc5_1)
872);
873
874l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit6_pos_slice_10c (
875.dout (err_bit_pos[6]),
876.din0 (err_bit6_pos_10a),
877.din1 (err_bit6_pos_10b)
878);
879
880// bit 7
881
882l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit7_pos_slice_10a (
883.dout (err_bit7_pos_10a),
884.din0 (nc0_1),
885.din1 (nc1_1),
886.din2 (c2_1)
887);
888
889
890l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit7_pos_slice_10b (
891.dout (err_bit7_pos_10b),
892.din0 (c3_1),
893.din1 (nc4_2),
894.din2 (nc5_1)
895);
896
897l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit7_pos_slice_10c (
898.dout (err_bit_pos[7]),
899.din0 (err_bit7_pos_10a),
900.din1 (err_bit7_pos_10b)
901);
902
903// bit 8
904
905l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit8_pos_slice_10a (
906.dout (err_bit8_pos_10a),
907.din0 (c0_2),
908.din1 (nc1_1),
909.din2 (c2_1)
910);
911
912
913l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit8_pos_slice_10b (
914.dout (err_bit8_pos_10b),
915.din0 (c3_1),
916.din1 (nc4_2),
917.din2 (nc5_2)
918);
919
920l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit8_pos_slice_10c (
921.dout (err_bit_pos[8]),
922.din0 (err_bit8_pos_10a),
923.din1 (err_bit8_pos_10b)
924);
925
926// bit 9
927
928l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit9_pos_slice_10a (
929.dout (err_bit9_pos_10a),
930.din0 (nc0_1),
931.din1 (c1_1),
932.din2 (c2_1)
933);
934
935
936l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit9_pos_slice_10b (
937.dout (err_bit9_pos_10b),
938.din0 (c3_1),
939.din1 (nc4_2),
940.din2 (nc5_2)
941);
942
943l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit9_pos_slice_10c (
944.dout (err_bit_pos[9]),
945.din0 (err_bit9_pos_10a),
946.din1 (err_bit9_pos_10b)
947);
948
949// bit 10
950
951l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit10_pos_slice_10a (
952.dout (err_bit10_pos_10a),
953.din0 (c0_1),
954.din1 (c1_1),
955.din2 (c2_2)
956);
957
958
959l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit10_pos_slice_10b (
960.dout (err_bit10_pos_10b),
961.din0 (c3_1),
962.din1 (nc4_1),
963.din2 (nc5_2)
964);
965
966l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit10_pos_slice_10c (
967.dout (err_bit_pos[10]),
968.din0 (err_bit10_pos_10a),
969.din1 (err_bit10_pos_10b)
970);
971
972// bit 11
973
974l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit11_pos_slice_10a (
975.dout (err_bit11_pos_10a),
976.din0 (c0_2),
977.din1 (nc1_1),
978.din2 (nc2_1)
979);
980
981
982l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit11_pos_slice_10b (
983.dout (err_bit11_pos_10b),
984.din0 (nc3_1),
985.din1 (c4_1),
986.din2 (nc5_2)
987);
988
989l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit11_pos_slice_10c (
990.dout (err_bit_pos[11]),
991.din0 (err_bit11_pos_10a),
992.din1 (err_bit11_pos_10b)
993);
994
995// bit 12
996
997l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit12_pos_slice_10a (
998.dout (err_bit12_pos_10a),
999.din0 (nc0_1),
1000.din1 (c1_1),
1001.din2 (nc2_2)
1002);
1003
1004
1005l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit12_pos_slice_10b (
1006.dout (err_bit12_pos_10b),
1007.din0 (nc3_2),
1008.din1 (c4_1),
1009.din2 (nc5_2)
1010);
1011
1012l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit12_pos_slice_10c (
1013.dout (err_bit_pos[12]),
1014.din0 (err_bit12_pos_10a),
1015.din1 (err_bit12_pos_10b)
1016);
1017
1018// bit 13
1019
1020l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit13_pos_slice_10a (
1021.dout (err_bit13_pos_10a),
1022.din0 (c0_2),
1023.din1 (c1_1),
1024.din2 (nc2_2)
1025);
1026
1027
1028l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit13_pos_slice_10b (
1029.dout (err_bit13_pos_10b),
1030.din0 (nc3_2),
1031.din1 (c4_1),
1032.din2 (nc5_2)
1033);
1034
1035l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit13_pos_slice_10c (
1036.dout (err_bit_pos[13]),
1037.din0 (err_bit13_pos_10a),
1038.din1 (err_bit13_pos_10b)
1039);
1040
1041// bit 14
1042
1043l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit14_pos_slice_10a (
1044.dout (err_bit14_pos_10a),
1045.din0 (nc0_1),
1046.din1 (nc1_2),
1047.din2 (c2_2)
1048);
1049
1050
1051l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit14_pos_slice_10b (
1052.dout (err_bit14_pos_10b),
1053.din0 (nc3_2),
1054.din1 (c4_1),
1055.din2 (nc5_2)
1056);
1057
1058l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit14_pos_slice_10c (
1059.dout (err_bit_pos[14]),
1060.din0 (err_bit14_pos_10a),
1061.din1 (err_bit14_pos_10b)
1062);
1063
1064// bit 15
1065
1066l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit15_pos_slice_10a (
1067.dout (err_bit15_pos_10a),
1068.din0 (c0_2),
1069.din1 (nc1_2),
1070.din2 (c2_2)
1071);
1072
1073
1074l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit15_pos_slice_10b (
1075.dout (err_bit15_pos_10b),
1076.din0 (nc3_2),
1077.din1 (c4_2),
1078.din2 (nc5_2)
1079);
1080
1081l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit15_pos_slice_10c (
1082.dout (err_bit_pos[15]),
1083.din0 (err_bit15_pos_10a),
1084.din1 (err_bit15_pos_10b)
1085);
1086
1087// bit 16
1088
1089l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit16_pos_slice_10a (
1090.dout (err_bit16_pos_10a),
1091.din0 (nc0_2),
1092.din1 (c1_2),
1093.din2 (c2_2)
1094);
1095
1096
1097l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit16_pos_slice_10b (
1098.dout (err_bit16_pos_10b),
1099.din0 (nc3_2),
1100.din1 (c4_2),
1101.din2 (nc5_2)
1102);
1103
1104l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit16_pos_slice_10c (
1105.dout (err_bit_pos[16]),
1106.din0 (err_bit16_pos_10a),
1107.din1 (err_bit16_pos_10b)
1108);
1109
1110// bit 17
1111
1112l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit17_pos_slice_10a (
1113.dout (err_bit17_pos_10a),
1114.din0 (c0_3),
1115.din1 (c1_2),
1116.din2 (c2_2)
1117);
1118
1119
1120l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit17_pos_slice_10b (
1121.dout (err_bit17_pos_10b),
1122.din0 (nc3_2),
1123.din1 (c4_2),
1124.din2 (nc5_2)
1125);
1126
1127l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit17_pos_slice_10c (
1128.dout (err_bit_pos[17]),
1129.din0 (err_bit17_pos_10a),
1130.din1 (err_bit17_pos_10b)
1131);
1132
1133// bit 18
1134
1135l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit18_pos_slice_10a (
1136.dout (err_bit18_pos_10a),
1137.din0 (nc0_2),
1138.din1 (nc1_2),
1139.din2 (nc2_2)
1140);
1141
1142
1143l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit18_pos_slice_10b (
1144.dout (err_bit18_pos_10b),
1145.din0 (c3_2),
1146.din1 (c4_2),
1147.din2 (nc5_1)
1148);
1149
1150l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit18_pos_slice_10c (
1151.dout (err_bit_pos[18]),
1152.din0 (err_bit18_pos_10a),
1153.din1 (err_bit18_pos_10b)
1154);
1155
1156// bit 19
1157
1158l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit19_pos_slice_10a (
1159.dout (err_bit19_pos_10a),
1160.din0 (c0_3),
1161.din1 (nc1_2),
1162.din2 (nc2_2)
1163);
1164
1165
1166l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit19_pos_slice_10b (
1167.dout (err_bit19_pos_10b),
1168.din0 (c3_2),
1169.din1 (c4_1),
1170.din2 (nc5_1)
1171);
1172
1173l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit19_pos_slice_10c (
1174.dout (err_bit_pos[19]),
1175.din0 (err_bit19_pos_10a),
1176.din1 (err_bit19_pos_10b)
1177);
1178
1179// bit 20
1180
1181l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit20_pos_slice_10a (
1182.dout (err_bit20_pos_10a),
1183.din0 (nc0_2),
1184.din1 (c1_2),
1185.din2 (nc2_2)
1186);
1187
1188
1189l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit20_pos_slice_10b (
1190.dout (err_bit20_pos_10b),
1191.din0 (c3_2),
1192.din1 (c4_2),
1193.din2 (nc5_1)
1194);
1195
1196l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit20_pos_slice_10c (
1197.dout (err_bit_pos[20]),
1198.din0 (err_bit20_pos_10a),
1199.din1 (err_bit20_pos_10b)
1200);
1201
1202// bit 21
1203
1204l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit21_pos_slice_10a (
1205.dout (err_bit21_pos_10a),
1206.din0 (c0_3),
1207.din1 (c1_2),
1208.din2 (nc2_2)
1209);
1210
1211
1212l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit21_pos_slice_10b (
1213.dout (err_bit21_pos_10b),
1214.din0 (c3_2),
1215.din1 (c4_1),
1216.din2 (nc5_2)
1217);
1218
1219l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit21_pos_slice_10c (
1220.dout (err_bit_pos[21]),
1221.din0 (err_bit21_pos_10a),
1222.din1 (err_bit21_pos_10b)
1223);
1224
1225// bit 22
1226
1227l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit22_pos_slice_10a (
1228.dout (err_bit22_pos_10a),
1229.din0 (nc0_2),
1230.din1 (nc1_2),
1231.din2 (c2_2)
1232);
1233
1234
1235l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit22_pos_slice_10b (
1236.dout (err_bit22_pos_10b),
1237.din0 (c3_2),
1238.din1 (c4_2),
1239.din2 (nc5_2)
1240);
1241
1242l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit22_pos_slice_10c (
1243.dout (err_bit_pos[22]),
1244.din0 (err_bit22_pos_10a),
1245.din1 (err_bit22_pos_10b)
1246);
1247
1248// bit 23
1249
1250l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit23_pos_slice_10a (
1251.dout (err_bit23_pos_10a),
1252.din0 (c0_3),
1253.din1 (nc1_2),
1254.din2 (c2_2)
1255);
1256
1257
1258l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit23_pos_slice_10b (
1259.dout (err_bit23_pos_10b),
1260.din0 (c3_2),
1261.din1 (c4_1),
1262.din2 (nc5_2)
1263);
1264
1265l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit23_pos_slice_10c (
1266.dout (err_bit_pos[23]),
1267.din0 (err_bit23_pos_10a),
1268.din1 (err_bit23_pos_10b)
1269);
1270
1271// bit 24
1272
1273l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit24_pos_slice_10a (
1274.dout (err_bit24_pos_10a),
1275.din0 (nc0_2),
1276.din1 (c1_2),
1277.din2 (c2_2)
1278);
1279
1280
1281l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit24_pos_slice_10b (
1282.dout (err_bit24_pos_10b),
1283.din0 (c3_2),
1284.din1 (c4_2),
1285.din2 (nc5_2)
1286);
1287
1288l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit24_pos_slice_10c (
1289.dout (err_bit_pos[24]),
1290.din0 (err_bit24_pos_10a),
1291.din1 (err_bit24_pos_10b)
1292);
1293
1294// bit 25
1295
1296l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit25_pos_slice_10a (
1297.dout (err_bit25_pos_10a),
1298.din0 (c0_3),
1299.din1 (c1_2),
1300.din2 (c2_2)
1301);
1302
1303
1304l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit25_pos_slice_10b (
1305.dout (err_bit25_pos_10b),
1306.din0 (c3_2),
1307.din1 (c4_2),
1308.din2 (nc5_1)
1309);
1310
1311l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit25_pos_slice_10c (
1312.dout (err_bit_pos[25]),
1313.din0 (err_bit25_pos_10a),
1314.din1 (err_bit25_pos_10b)
1315);
1316
1317// bit 26
1318
1319l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit26_pos_slice_10a (
1320.dout (err_bit26_pos_10a),
1321.din0 (c0_3),
1322.din1 (nc1_1),
1323.din2 (nc2_1)
1324);
1325
1326
1327l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit26_pos_slice_10b (
1328.dout (err_bit26_pos_10b),
1329.din0 (nc3_2),
1330.din1 (nc4_1),
1331.din2 (c5)
1332);
1333
1334l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit26_pos_slice_10c (
1335.dout (err_bit_pos[26]),
1336.din0 (err_bit26_pos_10a),
1337.din1 (err_bit26_pos_10b)
1338);
1339
1340// bit 27
1341
1342l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit27_pos_slice_10a (
1343.dout (err_bit27_pos_10a),
1344.din0 (nc0_2),
1345.din1 (c1_2),
1346.din2 (nc2_1)
1347);
1348
1349
1350l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit27_pos_slice_10b (
1351.dout (err_bit27_pos_10b),
1352.din0 (nc3_2),
1353.din1 (nc4_1),
1354.din2 (c5)
1355);
1356
1357l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit27_pos_slice_10c (
1358.dout (err_bit_pos[27]),
1359.din0 (err_bit27_pos_10a),
1360.din1 (err_bit27_pos_10b)
1361);
1362
1363// bit 28
1364
1365l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit28_pos_slice_10a (
1366.dout (err_bit28_pos_10a),
1367.din0 (c0_3),
1368.din1 (c1_2),
1369.din2 (nc2_1)
1370);
1371
1372
1373l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit28_pos_slice_10b (
1374.dout (err_bit28_pos_10b),
1375.din0 (nc3_1),
1376.din1 (nc4_1),
1377.din2 (c5)
1378);
1379
1380l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit28_pos_slice_10c (
1381.dout (err_bit_pos[28]),
1382.din0 (err_bit28_pos_10a),
1383.din1 (err_bit28_pos_10b)
1384);
1385
1386// bit 29
1387
1388l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit29_pos_slice_10a (
1389.dout (err_bit29_pos_10a),
1390.din0 (nc0_2),
1391.din1 (nc1_1),
1392.din2 (c2_2)
1393);
1394
1395
1396l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit29_pos_slice_10b (
1397.dout (err_bit29_pos_10b),
1398.din0 (nc3_1),
1399.din1 (nc4_1),
1400.din2 (c5)
1401);
1402
1403l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit29_pos_slice_10c (
1404.dout (err_bit_pos[29]),
1405.din0 (err_bit29_pos_10a),
1406.din1 (err_bit29_pos_10b)
1407);
1408
1409// bit 30
1410
1411l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit30_pos_slice_10a (
1412.dout (err_bit30_pos_10a),
1413.din0 (c0_3),
1414.din1 (nc1_1),
1415.din2 (c2_1)
1416);
1417
1418
1419l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit30_pos_slice_10b (
1420.dout (err_bit30_pos_10b),
1421.din0 (nc3_1),
1422.din1 (nc4_2),
1423.din2 (c5)
1424);
1425
1426l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit30_pos_slice_10c (
1427.dout (err_bit_pos[30]),
1428.din0 (err_bit30_pos_10a),
1429.din1 (err_bit30_pos_10b)
1430);
1431
1432// bit 31
1433
1434l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit31_pos_slice_10a (
1435.dout (err_bit31_pos_10a),
1436.din0 (nc0_2),
1437.din1 (c1_2),
1438.din2 (c2_1)
1439);
1440
1441
1442l2t_ecc39_dp_nand_macro__ports_3__width_1 err_bit31_pos_slice_10b (
1443.dout (err_bit31_pos_10b),
1444.din0 (nc3_1),
1445.din1 (nc4_2),
1446.din2 (c5)
1447);
1448
1449l2t_ecc39_dp_nor_macro__ports_2__width_1 err_bit31_pos_slice_10c (
1450.dout (err_bit_pos[31]),
1451.din0 (err_bit31_pos_10a),
1452.din1 (err_bit31_pos_10b)
1453);
1454
1455
1456// correct the error bit, it can only correct one error bit.
1457// assign dout = din ^ err_bit_pos;
1458
1459l2t_ecc39_dp_xor_macro__width_32 dout_slice
1460 (
1461 .dout (dout[31:0]),
1462 .din0 (din[31:0]),
1463 .din1 (err_bit_pos[31:0])
1464 );
1465
1466
1467endmodule
1468
1469
1470//
1471// xor macro for ports = 2,3
1472//
1473//
1474
1475
1476
1477
1478
1479module l2t_ecc39_dp_xor_macro__dxor_8x__ports_3__width_1 (
1480 din0,
1481 din1,
1482 din2,
1483 dout);
1484 input [0:0] din0;
1485 input [0:0] din1;
1486 input [0:0] din2;
1487 output [0:0] dout;
1488
1489
1490
1491
1492
1493xor3 #(1) d0_0 (
1494.in0(din0[0:0]),
1495.in1(din1[0:0]),
1496.in2(din2[0:0]),
1497.out(dout[0:0])
1498);
1499
1500
1501
1502
1503
1504
1505
1506
1507endmodule
1508
1509
1510
1511
1512
1513//
1514// xor macro for ports = 2,3
1515//
1516//
1517
1518
1519
1520
1521
1522module l2t_ecc39_dp_xor_macro__dxor_16x__ports_3__width_1 (
1523 din0,
1524 din1,
1525 din2,
1526 dout);
1527 input [0:0] din0;
1528 input [0:0] din1;
1529 input [0:0] din2;
1530 output [0:0] dout;
1531
1532
1533
1534
1535
1536xor3 #(1) d0_0 (
1537.in0(din0[0:0]),
1538.in1(din1[0:0]),
1539.in2(din2[0:0]),
1540.out(dout[0:0])
1541);
1542
1543
1544
1545
1546
1547
1548
1549
1550endmodule
1551
1552
1553
1554
1555
1556//
1557// xor macro for ports = 2,3
1558//
1559//
1560
1561
1562
1563
1564
1565module l2t_ecc39_dp_xor_macro__dxor_16x__ports_2__width_1 (
1566 din0,
1567 din1,
1568 dout);
1569 input [0:0] din0;
1570 input [0:0] din1;
1571 output [0:0] dout;
1572
1573
1574
1575
1576
1577xor2 #(1) d0_0 (
1578.in0(din0[0:0]),
1579.in1(din1[0:0]),
1580.out(dout[0:0])
1581);
1582
1583
1584
1585
1586
1587
1588
1589
1590endmodule
1591
1592
1593
1594
1595
1596//
1597// invert macro
1598//
1599//
1600
1601
1602
1603
1604
1605module l2t_ecc39_dp_inv_macro__dinv_32x__width_1 (
1606 din,
1607 dout);
1608 input [0:0] din;
1609 output [0:0] dout;
1610
1611
1612
1613
1614
1615
1616inv #(1) d0_0 (
1617.in(din[0:0]),
1618.out(dout[0:0])
1619);
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629endmodule
1630
1631
1632
1633
1634
1635//
1636// nand macro for ports = 2,3,4
1637//
1638//
1639
1640
1641
1642
1643
1644module l2t_ecc39_dp_nand_macro__ports_3__width_1 (
1645 din0,
1646 din1,
1647 din2,
1648 dout);
1649 input [0:0] din0;
1650 input [0:0] din1;
1651 input [0:0] din2;
1652 output [0:0] dout;
1653
1654
1655
1656
1657
1658
1659nand3 #(1) d0_0 (
1660.in0(din0[0:0]),
1661.in1(din1[0:0]),
1662.in2(din2[0:0]),
1663.out(dout[0:0])
1664);
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674endmodule
1675
1676
1677
1678
1679
1680//
1681// nor macro for ports = 2,3
1682//
1683//
1684
1685
1686
1687
1688
1689module l2t_ecc39_dp_nor_macro__ports_2__width_1 (
1690 din0,
1691 din1,
1692 dout);
1693 input [0:0] din0;
1694 input [0:0] din1;
1695 output [0:0] dout;
1696
1697
1698
1699
1700
1701
1702nor2 #(1) d0_0 (
1703.in0(din0[0:0]),
1704.in1(din1[0:0]),
1705.out(dout[0:0])
1706);
1707
1708
1709
1710
1711
1712
1713
1714endmodule
1715
1716
1717
1718
1719
1720//
1721// xor macro for ports = 2,3
1722//
1723//
1724
1725
1726
1727
1728
1729module l2t_ecc39_dp_xor_macro__width_32 (
1730 din0,
1731 din1,
1732 dout);
1733 input [31:0] din0;
1734 input [31:0] din1;
1735 output [31:0] dout;
1736
1737
1738
1739
1740
1741xor2 #(32) d0_0 (
1742.in0(din0[31:0]),
1743.in1(din1[31:0]),
1744.out(dout[31:0])
1745);
1746
1747
1748
1749
1750
1751
1752
1753
1754endmodule
1755
1756
1757
1758