// ========== Copyright Header Begin ==========================================
// OpenSPARC T2 Processor File: l2t_ecc24b_dp.v
// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
// For the avoidance of doubt, and except that if any non-GPL license
// choice is available it will apply instead, Sun elects to use only
// the General Public License version 2 (GPLv2) at this time for any
// software where a choice of GPL license versions is made
// available with the language indicating that GPLv2 or any later version
// may be used, or where a choice of which version of the GPL is applied is
// otherwise unspecified.
// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
// CA 95054 USA or visit www.sun.com if you need additional information or
// ========== Copyright Header End ============================================
//----|--|--|--|--|--|--|--|--|--|--|--|--|--|--|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
// |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 |
// |P1|P2|D0|P4|D1|D2|D3|P8|D4|D5|D6|D7|D8|D9|D10|P16|D11|D12|D13|D14|D15|D16|D17|D18|D19|D20|D21|D22|D23|P30|
//----|--|--|--|--|--|--|--|--|--|--|--|--|--|--|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
//P1 | | |* | |* | |* | |* | |* | |* | | * | | * | | * | | * | | * | | * | | * | | * | |
//P2 | | |* | | |* |* | | |* |* | | |* | * | | | * | * | | | * | * | | | * | * | | | |
//P4 | | | | |* |* |* | | | | |* |* |* | * | | | | | * | * | * | * | | | | | * | * | |
//P8 | | | | | | | | |* |* |* |* |* |* | * | | | | | | | | | * | * | * | * | * | * | |
//P16 | | | | | | | | | | | | | | | | | * | * | * | * | * | * | * | * | * | * | * | * | * | |
//----|--|--|--|--|--|--|--|--|--|--|--|--|--|--|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
//p30 | | |* | |* |* | | |* |* | |* | | | * | | * | * | | * | | | * | * | | | * | | * | |
//----|--|--|--|--|--|--|--|--|--|--|--|--|--|--|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
//assign p1 = din[0] ^ din[1] ^ din[3] ^ din[4] ^ din[6] ^ din[8] ^
// din[10] ^ din[11] ^ din[13] ^ din[15] ^ din[17] ^ din[19] ^
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p1_slice_10 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p1_slice_11 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p1_slice_12 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p1_slice_13 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_2__width_1 p1_slice_14 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p1_slice_20 (
l2t_ecc24b_dp_xor_macro__dxor_16x__ports_3__width_1 p1_slice (
//assign p2 = din[0] ^ din[2] ^ din[3] ^ din[5] ^ din[6] ^ din[9] ^
// din[10] ^ din[12] ^ din[13] ^ din[16] ^ din[17] ^ din[20] ^
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p2_slice_10 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p2_slice_11 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p2_slice_12 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p2_slice_13 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p2_slice_20 (
l2t_ecc24b_dp_xor_macro__dxor_16x__ports_3__width_1 p2_slice (
//assign p4 = din[1] ^ din[2] ^ din[3] ^ din[7] ^ din[8] ^ din[9] ^
// din[10] ^ din[14] ^ din[15] ^ din[16] ^ din[17] ^ din[22] ^
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p4_slice_10 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p4_slice_11 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p4_slice_12 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p4_slice_13 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p4_slice_20 (
l2t_ecc24b_dp_xor_macro__dxor_16x__ports_3__width_1 p4_slice (
//assign p8 = din[4] ^ din[5] ^ din[6] ^ din[7] ^ din[8] ^ din[9] ^
// din[10] ^ din[18] ^ din[19] ^ din[20] ^ din[21] ^ din[22] ^
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p8_slice_10 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p8_slice_11 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p8_slice_12 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p8_slice_13 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p8_slice_20 (
l2t_ecc24b_dp_xor_macro__dxor_16x__ports_3__width_1 p8_slice (
//assign p16 = din[11] ^ din[12] ^ din[13] ^ din[14] ^ din[15] ^ din[16] ^
// din[17] ^ din[18] ^ din[19] ^ din[20] ^ din[21] ^ din[22] ^
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p16_slice_10 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p16_slice_11 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p16_slice_12 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p16_slice_13 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p16_slice_20 (
l2t_ecc24b_dp_xor_macro__dxor_16x__ports_3__width_1 p16_slice (
//assign p30 = din[0] ^ din[1] ^ din[2] ^ din[4] ^ din[5] ^
// din[7] ^ din[10] ^ din[11] ^ din[12] ^ din[14] ^
// din[17] ^ din[18] ^ din[21] ^ din[23] ;
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p30_slice_10 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p30_slice_11 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p30_slice_12 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p30_slice_13 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_2__width_1 p30_slice_14 (
l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 p30_slice_20 (
l2t_ecc24b_dp_xor_macro__dxor_16x__ports_3__width_1 p30_slice (
assign dout = din[23:0] ;
//buff_macro buff_dout (width=24,stack=24r)
assign parity = {p30, p16, p8, p4, p2, p1} ;
//buff_macro buff_parity (width=6,stack=6c)
// .din ({p30, p16, p8, p4, p2, p1})
// xor macro for ports = 2,3
module l2t_ecc24b_dp_xor_macro__dxor_8x__ports_3__width_1 (
// xor macro for ports = 2,3
module l2t_ecc24b_dp_xor_macro__dxor_8x__ports_2__width_1 (
// xor macro for ports = 2,3
module l2t_ecc24b_dp_xor_macro__dxor_16x__ports_3__width_1 (