// ========== Copyright Header Begin ==========================================
// OpenSPARC T2 Processor File: niu_ipp_sum_data.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 ============================================
/**********************************************************
***********************************************************
File name : niu_ipp_sum_data.v
Module(s) name : niu_ipp_sum_data
Original: : sum_data.v main.2, label:
Parent modules : niu_ipp_sum.v
Child modules : niu_ipp_sum_lib.v, niu_ipp_sum_lib.h,
Author's name : George Chu
Description : Data logic of the ipp checksum.
************************************************************
***********************************************************/
module niu_ipp_sum_data (din_wrd, hdr_off,
sum_prt_cksum, c_dsum_fail);
output [15:0] sum_prt_cksum;
wire [15:0] sum_prt_cksum;
wire sel_add_q = sel_add || add_uln;
ipp_sum_dev_01_0q su_dev_01_0q_0 (
.inp_wd3 (sum_wrd4[15:0]),
.inp_wd2 (sum_wrd2[15:0]),
.inp_wd1 (sum_wrd1[15:0]),
.inp_wrd (din_wrd[15:00]),
.byt_ena (byt_ena[01:00]),
.prt_cksum (sum_prt_cksum[15:0]),
.cksum_fail (c_dsum_fail)
ipp_sum_dev_01_ut su_dev_01_ut_1 (
.inp_uln (inp_uln[15:00]),
.inp_wrd (din_wrd[31:16]),
.hdr_off (hdr_off[03:0]),
.byt_ena (byt_ena[03:02]),
.sum_wrd (sum_wrd1[15:0])
ipp_sum_dev_01_0s su_dev_01_0s_2 (
.inp_wd1 (sum_wrd3[15:0]),
.inp_wrd (din_wrd[47:32]),
.byt_ena (byt_ena[05:04]),
.sum_wrd (sum_wrd2[15:0])
ipp_sum_dev_01_0t su_dev_01_0t_3 (
.inp_wrd (din_wrd[63:48]),
.hdr_off (hdr_off[03:0]),
.byt_ena (byt_ena[07:06]),
.sum_wrd (sum_wrd3[15:0])
ipp_sum_dev_01_0r su_dev_01_0r_4 (
.inp_wd2 (sum_wrd6[15:0]),
.inp_wd1 (sum_wrd5[15:0]),
.inp_wrd (din_wrd[79:64]),
.hdr_off (hdr_off[03:0]),
.byt_ena (byt_ena[09:08]),
.sum_wrd (sum_wrd4[15:0])
ipp_sum_dev_01_0t su_dev_01_0t_5 (
.inp_wrd (din_wrd[95:80]),
.hdr_off (hdr_off[03:0]),
.byt_ena (byt_ena[11:10]),
.sum_wrd (sum_wrd5[15:0])
ipp_sum_dev_01_0s su_dev_01_0s_6 (
.inp_wd1 (sum_wrd7[15:0]),
.inp_wrd (din_wrd[111:96]),
.byt_ena (byt_ena[13:12]),
.sum_wrd (sum_wrd6[15:0])
ipp_sum_dev_01_0t su_dev_01_0t_7 (
.inp_wrd (din_wrd[127:112]),
.hdr_off (hdr_off[03:0]),
.byt_ena (byt_ena[15:14]),
.sum_wrd (sum_wrd7[15:0])