blob: 1c21fadef17a34fdebbe7e98eee5acea790ae97a [file] [log] [blame] [edit]
// ========== Copyright Header Begin ==========================================
//
// OpenSPARC T1 Processor File: cpx_dp_halfarray.v
// Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
//
// The above named program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public
// License version 2 as published by the Free Software Foundation.
//
// The above named 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 work; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
//
// ========== Copyright Header End ============================================
////////////////////////////////////////////////////////////////////////
/*
// Description: datapath portion of CPX
*/
////////////////////////////////////////////////////////////////////////
// Global header file includes
////////////////////////////////////////////////////////////////////////
`include "sys.h" // system level definition file which contains the
// time scale definition
`include "iop.h"
////////////////////////////////////////////////////////////////////////
// Local header file includes / local defines
////////////////////////////////////////////////////////////////////////
module cpx_dp_halfarray(/*AUTOARG*/
// Outputs
cpx_spc6_data_cx_l, cpx_spc4_data_cx_l, cpx_spc2_data_cx_l,
cpx_spc0_data_cx_l, scan_out,
// Inputs
shiftenable, scache3_cpx_data_ca, scache2_cpx_data_ca,
scache1_cpx_data_ca, scache0_cpx_data_ca, rclk, io_cpx_data_ca,
fp_cpx_data_ca, arbcp6_cpxdp_shift_cx, arbcp6_cpxdp_qsel1_ca,
arbcp6_cpxdp_qsel0_ca, arbcp6_cpxdp_q0_hold_ca,
arbcp6_cpxdp_grant_ca, arbcp4_cpxdp_shift_cx,
arbcp4_cpxdp_qsel1_ca, arbcp4_cpxdp_qsel0_ca,
arbcp4_cpxdp_q0_hold_ca, arbcp4_cpxdp_grant_ca,
arbcp2_cpxdp_shift_cx, arbcp2_cpxdp_qsel1_ca,
arbcp2_cpxdp_qsel0_ca, arbcp2_cpxdp_q0_hold_ca,
arbcp2_cpxdp_grant_ca, arbcp0_cpxdp_shift_cx,
arbcp0_cpxdp_qsel1_ca, arbcp0_cpxdp_qsel0_ca,
arbcp0_cpxdp_q0_hold_ca, arbcp0_cpxdp_grant_ca, scan_in
);
/*AUTOOUTPUT*/
// Beginning of automatic outputs (from unused autoinst outputs)
output [`CPX_WIDTH-1:0]cpx_spc0_data_cx_l; // From cpx_dp0 of cpx_dp0.v
output [`CPX_WIDTH-1:0]cpx_spc2_data_cx_l; // From cpx_dp2 of cpx_dp2.v
output [`CPX_WIDTH-1:0]cpx_spc4_data_cx_l; // From cpx_dp4 of cpx_dp4.v
output [`CPX_WIDTH-1:0]cpx_spc6_data_cx_l; // From cpx_dp6 of cpx_dp6.v
// End of automatics
/*AUTOINPUT*/
// Beginning of automatic inputs (from unused autoinst inputs)
input [5:0] arbcp0_cpxdp_grant_ca; // To cpx_dp0 of cpx_dp0.v
input [5:0] arbcp0_cpxdp_q0_hold_ca;// To cpx_dp0 of cpx_dp0.v
input [5:0] arbcp0_cpxdp_qsel0_ca; // To cpx_dp0 of cpx_dp0.v
input [5:0] arbcp0_cpxdp_qsel1_ca; // To cpx_dp0 of cpx_dp0.v
input [5:0] arbcp0_cpxdp_shift_cx; // To cpx_dp0 of cpx_dp0.v
input [5:0] arbcp2_cpxdp_grant_ca; // To cpx_dp2 of cpx_dp2.v
input [5:0] arbcp2_cpxdp_q0_hold_ca;// To cpx_dp2 of cpx_dp2.v
input [5:0] arbcp2_cpxdp_qsel0_ca; // To cpx_dp2 of cpx_dp2.v
input [5:0] arbcp2_cpxdp_qsel1_ca; // To cpx_dp2 of cpx_dp2.v
input [5:0] arbcp2_cpxdp_shift_cx; // To cpx_dp2 of cpx_dp2.v
input [5:0] arbcp4_cpxdp_grant_ca; // To cpx_dp4 of cpx_dp4.v
input [5:0] arbcp4_cpxdp_q0_hold_ca;// To cpx_dp4 of cpx_dp4.v
input [5:0] arbcp4_cpxdp_qsel0_ca; // To cpx_dp4 of cpx_dp4.v
input [5:0] arbcp4_cpxdp_qsel1_ca; // To cpx_dp4 of cpx_dp4.v
input [5:0] arbcp4_cpxdp_shift_cx; // To cpx_dp4 of cpx_dp4.v
input [5:0] arbcp6_cpxdp_grant_ca; // To cpx_dp6 of cpx_dp6.v
input [5:0] arbcp6_cpxdp_q0_hold_ca;// To cpx_dp6 of cpx_dp6.v
input [5:0] arbcp6_cpxdp_qsel0_ca; // To cpx_dp6 of cpx_dp6.v
input [5:0] arbcp6_cpxdp_qsel1_ca; // To cpx_dp6 of cpx_dp6.v
input [5:0] arbcp6_cpxdp_shift_cx; // To cpx_dp6 of cpx_dp6.v
input [`CPX_WIDTH-1:0]fp_cpx_data_ca; // To cpx_dp0 of cpx_dp0.v, ...
input [`CPX_WIDTH-1:0]io_cpx_data_ca; // To cpx_dp0 of cpx_dp0.v, ...
input rclk; // To cpx_dp0 of cpx_dp0.v, ...
input [`CPX_WIDTH-1:0]scache0_cpx_data_ca; // To cpx_dp0 of cpx_dp0.v, ...
input [`CPX_WIDTH-1:0]scache1_cpx_data_ca; // To cpx_dp0 of cpx_dp0.v, ...
input [`CPX_WIDTH-1:0]scache2_cpx_data_ca; // To cpx_dp0 of cpx_dp0.v, ...
input [`CPX_WIDTH-1:0]scache3_cpx_data_ca; // To cpx_dp0 of cpx_dp0.v, ...
input shiftenable; // To cpx_dp0 of cpx_dp0.v, ...
// End of automatics
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
// End of automatics
input scan_in;
output scan_out;
/*
cpx_dp0 AUTO_TEMPLATE(
.scan_out (),
.scan_in ());
*/
cpx_dp0 cpx_dp0(/*AUTOINST*/
// Outputs
.scan_out (), // Templated
.cpx_spc0_data_cx_l (cpx_spc0_data_cx_l[`CPX_WIDTH-1:0]),
// Inputs
.arbcp0_cpxdp_grant_ca(arbcp0_cpxdp_grant_ca[5:0]),
.arbcp0_cpxdp_q0_hold_ca(arbcp0_cpxdp_q0_hold_ca[5:0]),
.arbcp0_cpxdp_qsel0_ca(arbcp0_cpxdp_qsel0_ca[5:0]),
.arbcp0_cpxdp_qsel1_ca(arbcp0_cpxdp_qsel1_ca[5:0]),
.arbcp0_cpxdp_shift_cx(arbcp0_cpxdp_shift_cx[5:0]),
.rclk (rclk),
.scan_in (), // Templated
.shiftenable (shiftenable),
.scache0_cpx_data_ca (scache0_cpx_data_ca[`CPX_WIDTH-1:0]),
.scache1_cpx_data_ca (scache1_cpx_data_ca[`CPX_WIDTH-1:0]),
.scache2_cpx_data_ca (scache2_cpx_data_ca[`CPX_WIDTH-1:0]),
.scache3_cpx_data_ca (scache3_cpx_data_ca[`CPX_WIDTH-1:0]),
.io_cpx_data_ca (io_cpx_data_ca[`CPX_WIDTH-1:0]),
.fp_cpx_data_ca (fp_cpx_data_ca[`CPX_WIDTH-1:0]));
/*
cpx_dp2 AUTO_TEMPLATE(
.scan_out (),
.scan_in ());
*/
cpx_dp2 cpx_dp2(/*AUTOINST*/
// Outputs
.scan_out (), // Templated
.cpx_spc2_data_cx_l (cpx_spc2_data_cx_l[`CPX_WIDTH-1:0]),
// Inputs
.arbcp2_cpxdp_grant_ca(arbcp2_cpxdp_grant_ca[5:0]),
.arbcp2_cpxdp_q0_hold_ca(arbcp2_cpxdp_q0_hold_ca[5:0]),
.arbcp2_cpxdp_qsel0_ca(arbcp2_cpxdp_qsel0_ca[5:0]),
.arbcp2_cpxdp_qsel1_ca(arbcp2_cpxdp_qsel1_ca[5:0]),
.arbcp2_cpxdp_shift_cx(arbcp2_cpxdp_shift_cx[5:0]),
.rclk (rclk),
.scan_in (), // Templated
.shiftenable (shiftenable),
.scache0_cpx_data_ca (scache0_cpx_data_ca[`CPX_WIDTH-1:0]),
.scache1_cpx_data_ca (scache1_cpx_data_ca[`CPX_WIDTH-1:0]),
.scache2_cpx_data_ca (scache2_cpx_data_ca[`CPX_WIDTH-1:0]),
.scache3_cpx_data_ca (scache3_cpx_data_ca[`CPX_WIDTH-1:0]),
.io_cpx_data_ca (io_cpx_data_ca[`CPX_WIDTH-1:0]),
.fp_cpx_data_ca (fp_cpx_data_ca[`CPX_WIDTH-1:0]));
/*
cpx_dp4 AUTO_TEMPLATE(
.scan_out (),
.scan_in ());
*/
cpx_dp4 cpx_dp4(/*AUTOINST*/
// Outputs
.scan_out (), // Templated
.cpx_spc4_data_cx_l (cpx_spc4_data_cx_l[`CPX_WIDTH-1:0]),
// Inputs
.arbcp4_cpxdp_grant_ca(arbcp4_cpxdp_grant_ca[5:0]),
.arbcp4_cpxdp_q0_hold_ca(arbcp4_cpxdp_q0_hold_ca[5:0]),
.arbcp4_cpxdp_qsel0_ca(arbcp4_cpxdp_qsel0_ca[5:0]),
.arbcp4_cpxdp_qsel1_ca(arbcp4_cpxdp_qsel1_ca[5:0]),
.arbcp4_cpxdp_shift_cx(arbcp4_cpxdp_shift_cx[5:0]),
.rclk (rclk),
.scan_in (), // Templated
.shiftenable (shiftenable),
.scache0_cpx_data_ca (scache0_cpx_data_ca[`CPX_WIDTH-1:0]),
.scache1_cpx_data_ca (scache1_cpx_data_ca[`CPX_WIDTH-1:0]),
.scache2_cpx_data_ca (scache2_cpx_data_ca[`CPX_WIDTH-1:0]),
.scache3_cpx_data_ca (scache3_cpx_data_ca[`CPX_WIDTH-1:0]),
.io_cpx_data_ca (io_cpx_data_ca[`CPX_WIDTH-1:0]),
.fp_cpx_data_ca (fp_cpx_data_ca[`CPX_WIDTH-1:0]));
/*
cpx_dp6 AUTO_TEMPLATE(
.scan_out (),
.scan_in ());
*/
cpx_dp6 cpx_dp6(/*AUTOINST*/
// Outputs
.scan_out (), // Templated
.cpx_spc6_data_cx_l (cpx_spc6_data_cx_l[`CPX_WIDTH-1:0]),
// Inputs
.arbcp6_cpxdp_grant_ca(arbcp6_cpxdp_grant_ca[5:0]),
.arbcp6_cpxdp_q0_hold_ca(arbcp6_cpxdp_q0_hold_ca[5:0]),
.arbcp6_cpxdp_qsel0_ca(arbcp6_cpxdp_qsel0_ca[5:0]),
.arbcp6_cpxdp_qsel1_ca(arbcp6_cpxdp_qsel1_ca[5:0]),
.arbcp6_cpxdp_shift_cx(arbcp6_cpxdp_shift_cx[5:0]),
.rclk (rclk),
.scan_in (), // Templated
.shiftenable (shiftenable),
.scache0_cpx_data_ca (scache0_cpx_data_ca[`CPX_WIDTH-1:0]),
.scache1_cpx_data_ca (scache1_cpx_data_ca[`CPX_WIDTH-1:0]),
.scache2_cpx_data_ca (scache2_cpx_data_ca[`CPX_WIDTH-1:0]),
.scache3_cpx_data_ca (scache3_cpx_data_ca[`CPX_WIDTH-1:0]),
.io_cpx_data_ca (io_cpx_data_ca[`CPX_WIDTH-1:0]),
.fp_cpx_data_ca (fp_cpx_data_ca[`CPX_WIDTH-1:0]));
endmodule // cpx_dp_array