blob: c7f79922037447078c6c35297be79841370e7314 [file] [log] [blame] [edit]
// ========== Copyright Header Begin ==========================================
//
// OpenSPARC T1 Processor File: pcx_dp_array.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 pcx_dp_array(/*AUTOARG*/
// Outputs
pcx_scache3_data_px_l, pcx_scache2_data_px_l,
pcx_scache1_data_px_l, pcx_scache0_data_px_l, pcx_fpio_data_px_l,
pcx_dp_array134_so_0, pcx_dp_array02_so_1,
// Inputs
spc7_pcx_data_pa, spc6_pcx_data_pa, spc5_pcx_data_pa,
spc4_pcx_data_pa, spc3_pcx_data_pa, spc2_pcx_data_pa,
spc1_pcx_data_pa, spc0_pcx_data_pa, si_1, si_0, se_buf1_top,
se_buf1_bottom, rclk, arbpc4_pcxdp_shift_px,
arbpc4_pcxdp_qsel1_pa, arbpc4_pcxdp_qsel0_pa,
arbpc4_pcxdp_q0_hold_pa, arbpc4_pcxdp_grant_pa,
arbpc3_pcxdp_shift_px, arbpc3_pcxdp_qsel1_pa,
arbpc3_pcxdp_qsel0_pa, arbpc3_pcxdp_q0_hold_pa,
arbpc3_pcxdp_grant_pa, arbpc2_pcxdp_shift_px,
arbpc2_pcxdp_qsel1_pa, arbpc2_pcxdp_qsel0_pa,
arbpc2_pcxdp_q0_hold_pa, arbpc2_pcxdp_grant_pa,
arbpc1_pcxdp_shift_px, arbpc1_pcxdp_qsel1_pa,
arbpc1_pcxdp_qsel0_pa, arbpc1_pcxdp_q0_hold_pa,
arbpc1_pcxdp_grant_pa, arbpc0_pcxdp_shift_px,
arbpc0_pcxdp_qsel1_pa, arbpc0_pcxdp_qsel0_pa,
arbpc0_pcxdp_q0_hold_pa, arbpc0_pcxdp_grant_pa
);
/*AUTOOUTPUT*/
// Beginning of automatic outputs (from unused autoinst outputs)
output pcx_dp_array02_so_1; // From pcx_dp_array02 of pcx_dp_array02.v
output pcx_dp_array134_so_0; // From pcx_dp_array134 of pcx_dp_array134.v
output [`PCX_WIDTH-1:0]pcx_fpio_data_px_l; // From pcx_dp_array134 of pcx_dp_array134.v
output [`PCX_WIDTH-1:0]pcx_scache0_data_px_l;// From pcx_dp_array02 of pcx_dp_array02.v
output [`PCX_WIDTH-1:0]pcx_scache1_data_px_l;// From pcx_dp_array134 of pcx_dp_array134.v
output [`PCX_WIDTH-1:0]pcx_scache2_data_px_l;// From pcx_dp_array02 of pcx_dp_array02.v
output [`PCX_WIDTH-1:0]pcx_scache3_data_px_l;// From pcx_dp_array134 of pcx_dp_array134.v
// End of automatics
/*AUTOINPUT*/
// Beginning of automatic inputs (from unused autoinst inputs)
input [7:0] arbpc0_pcxdp_grant_pa; // To pcx_dp_array02 of pcx_dp_array02.v
input [7:0] arbpc0_pcxdp_q0_hold_pa;// To pcx_dp_array02 of pcx_dp_array02.v
input [7:0] arbpc0_pcxdp_qsel0_pa; // To pcx_dp_array02 of pcx_dp_array02.v
input [7:0] arbpc0_pcxdp_qsel1_pa; // To pcx_dp_array02 of pcx_dp_array02.v
input [7:0] arbpc0_pcxdp_shift_px; // To pcx_dp_array02 of pcx_dp_array02.v
input [7:0] arbpc1_pcxdp_grant_pa; // To pcx_dp_array134 of pcx_dp_array134.v
input [7:0] arbpc1_pcxdp_q0_hold_pa;// To pcx_dp_array134 of pcx_dp_array134.v
input [7:0] arbpc1_pcxdp_qsel0_pa; // To pcx_dp_array134 of pcx_dp_array134.v
input [7:0] arbpc1_pcxdp_qsel1_pa; // To pcx_dp_array134 of pcx_dp_array134.v
input [7:0] arbpc1_pcxdp_shift_px; // To pcx_dp_array134 of pcx_dp_array134.v
input [7:0] arbpc2_pcxdp_grant_pa; // To pcx_dp_array02 of pcx_dp_array02.v
input [7:0] arbpc2_pcxdp_q0_hold_pa;// To pcx_dp_array02 of pcx_dp_array02.v
input [7:0] arbpc2_pcxdp_qsel0_pa; // To pcx_dp_array02 of pcx_dp_array02.v
input [7:0] arbpc2_pcxdp_qsel1_pa; // To pcx_dp_array02 of pcx_dp_array02.v
input [7:0] arbpc2_pcxdp_shift_px; // To pcx_dp_array02 of pcx_dp_array02.v
input [7:0] arbpc3_pcxdp_grant_pa; // To pcx_dp_array134 of pcx_dp_array134.v
input [7:0] arbpc3_pcxdp_q0_hold_pa;// To pcx_dp_array134 of pcx_dp_array134.v
input [7:0] arbpc3_pcxdp_qsel0_pa; // To pcx_dp_array134 of pcx_dp_array134.v
input [7:0] arbpc3_pcxdp_qsel1_pa; // To pcx_dp_array134 of pcx_dp_array134.v
input [7:0] arbpc3_pcxdp_shift_px; // To pcx_dp_array134 of pcx_dp_array134.v
input [7:0] arbpc4_pcxdp_grant_pa; // To pcx_dp_array134 of pcx_dp_array134.v
input [7:0] arbpc4_pcxdp_q0_hold_pa;// To pcx_dp_array134 of pcx_dp_array134.v
input [7:0] arbpc4_pcxdp_qsel0_pa; // To pcx_dp_array134 of pcx_dp_array134.v
input [7:0] arbpc4_pcxdp_qsel1_pa; // To pcx_dp_array134 of pcx_dp_array134.v
input [7:0] arbpc4_pcxdp_shift_px; // To pcx_dp_array134 of pcx_dp_array134.v
input rclk; // To pcx_dp_array02 of pcx_dp_array02.v, ...
input se_buf1_bottom; // To pcx_dp_array134 of pcx_dp_array134.v
input se_buf1_top; // To pcx_dp_array02 of pcx_dp_array02.v
input si_0; // To pcx_dp_array134 of pcx_dp_array134.v
input si_1; // To pcx_dp_array02 of pcx_dp_array02.v
input [`PCX_WIDTH-1:0]spc0_pcx_data_pa; // To pcx_dp_array02 of pcx_dp_array02.v, ...
input [`PCX_WIDTH-1:0]spc1_pcx_data_pa; // To pcx_dp_array02 of pcx_dp_array02.v, ...
input [`PCX_WIDTH-1:0]spc2_pcx_data_pa; // To pcx_dp_array02 of pcx_dp_array02.v, ...
input [`PCX_WIDTH-1:0]spc3_pcx_data_pa; // To pcx_dp_array02 of pcx_dp_array02.v, ...
input [`PCX_WIDTH-1:0]spc4_pcx_data_pa; // To pcx_dp_array02 of pcx_dp_array02.v, ...
input [`PCX_WIDTH-1:0]spc5_pcx_data_pa; // To pcx_dp_array02 of pcx_dp_array02.v, ...
input [`PCX_WIDTH-1:0]spc6_pcx_data_pa; // To pcx_dp_array02 of pcx_dp_array02.v, ...
input [`PCX_WIDTH-1:0]spc7_pcx_data_pa; // To pcx_dp_array02 of pcx_dp_array02.v, ...
// End of automatics
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
// End of automatics
//input scan_in;
//output scan_out;
/*
pcx_dp_array02 AUTO_TEMPLATE(
.shiftenable(se_buf1_top),
.scan_out (pcx_dp_array02_so_1),
.scan_in (si_1));
*/
pcx_dp_array02 pcx_dp_array02(/*AUTOINST*/
// Outputs
.pcx_scache0_data_px_l(pcx_scache0_data_px_l[`PCX_WIDTH-1:0]),
.pcx_scache2_data_px_l(pcx_scache2_data_px_l[`PCX_WIDTH-1:0]),
.scan_out(pcx_dp_array02_so_1), // Templated
// Inputs
.arbpc0_pcxdp_grant_pa(arbpc0_pcxdp_grant_pa[7:0]),
.arbpc0_pcxdp_q0_hold_pa(arbpc0_pcxdp_q0_hold_pa[7:0]),
.arbpc0_pcxdp_qsel0_pa(arbpc0_pcxdp_qsel0_pa[7:0]),
.arbpc0_pcxdp_qsel1_pa(arbpc0_pcxdp_qsel1_pa[7:0]),
.arbpc0_pcxdp_shift_px(arbpc0_pcxdp_shift_px[7:0]),
.arbpc2_pcxdp_grant_pa(arbpc2_pcxdp_grant_pa[7:0]),
.arbpc2_pcxdp_q0_hold_pa(arbpc2_pcxdp_q0_hold_pa[7:0]),
.arbpc2_pcxdp_qsel0_pa(arbpc2_pcxdp_qsel0_pa[7:0]),
.arbpc2_pcxdp_qsel1_pa(arbpc2_pcxdp_qsel1_pa[7:0]),
.arbpc2_pcxdp_shift_px(arbpc2_pcxdp_shift_px[7:0]),
.rclk (rclk),
.shiftenable(se_buf1_top), // Templated
.spc0_pcx_data_pa(spc0_pcx_data_pa[`PCX_WIDTH-1:0]),
.spc1_pcx_data_pa(spc1_pcx_data_pa[`PCX_WIDTH-1:0]),
.spc2_pcx_data_pa(spc2_pcx_data_pa[`PCX_WIDTH-1:0]),
.spc3_pcx_data_pa(spc3_pcx_data_pa[`PCX_WIDTH-1:0]),
.spc4_pcx_data_pa(spc4_pcx_data_pa[`PCX_WIDTH-1:0]),
.spc5_pcx_data_pa(spc5_pcx_data_pa[`PCX_WIDTH-1:0]),
.spc6_pcx_data_pa(spc6_pcx_data_pa[`PCX_WIDTH-1:0]),
.spc7_pcx_data_pa(spc7_pcx_data_pa[`PCX_WIDTH-1:0]),
.scan_in(si_1)); // Templated
/*
pcx_dp_array134 AUTO_TEMPLATE(
.shiftenable(se_buf1_bottom),
.scan_out (pcx_dp_array134_so_0),
.scan_in (si_0));
*/
pcx_dp_array134 pcx_dp_array134(/*AUTOINST*/
// Outputs
.pcx_fpio_data_px_l(pcx_fpio_data_px_l[`PCX_WIDTH-1:0]),
.pcx_scache1_data_px_l(pcx_scache1_data_px_l[`PCX_WIDTH-1:0]),
.pcx_scache3_data_px_l(pcx_scache3_data_px_l[`PCX_WIDTH-1:0]),
.scan_out(pcx_dp_array134_so_0), // Templated
// Inputs
.arbpc1_pcxdp_grant_pa(arbpc1_pcxdp_grant_pa[7:0]),
.arbpc1_pcxdp_q0_hold_pa(arbpc1_pcxdp_q0_hold_pa[7:0]),
.arbpc1_pcxdp_qsel0_pa(arbpc1_pcxdp_qsel0_pa[7:0]),
.arbpc1_pcxdp_qsel1_pa(arbpc1_pcxdp_qsel1_pa[7:0]),
.arbpc1_pcxdp_shift_px(arbpc1_pcxdp_shift_px[7:0]),
.arbpc3_pcxdp_grant_pa(arbpc3_pcxdp_grant_pa[7:0]),
.arbpc3_pcxdp_q0_hold_pa(arbpc3_pcxdp_q0_hold_pa[7:0]),
.arbpc3_pcxdp_qsel0_pa(arbpc3_pcxdp_qsel0_pa[7:0]),
.arbpc3_pcxdp_qsel1_pa(arbpc3_pcxdp_qsel1_pa[7:0]),
.arbpc3_pcxdp_shift_px(arbpc3_pcxdp_shift_px[7:0]),
.arbpc4_pcxdp_grant_pa(arbpc4_pcxdp_grant_pa[7:0]),
.arbpc4_pcxdp_q0_hold_pa(arbpc4_pcxdp_q0_hold_pa[7:0]),
.arbpc4_pcxdp_qsel0_pa(arbpc4_pcxdp_qsel0_pa[7:0]),
.arbpc4_pcxdp_qsel1_pa(arbpc4_pcxdp_qsel1_pa[7:0]),
.arbpc4_pcxdp_shift_px(arbpc4_pcxdp_shift_px[7:0]),
.rclk(rclk),
.shiftenable(se_buf1_bottom), // Templated
.spc0_pcx_data_pa(spc0_pcx_data_pa[`PCX_WIDTH-1:0]),
.spc1_pcx_data_pa(spc1_pcx_data_pa[`PCX_WIDTH-1:0]),
.spc2_pcx_data_pa(spc2_pcx_data_pa[`PCX_WIDTH-1:0]),
.spc3_pcx_data_pa(spc3_pcx_data_pa[`PCX_WIDTH-1:0]),
.spc4_pcx_data_pa(spc4_pcx_data_pa[`PCX_WIDTH-1:0]),
.spc5_pcx_data_pa(spc5_pcx_data_pa[`PCX_WIDTH-1:0]),
.spc6_pcx_data_pa(spc6_pcx_data_pa[`PCX_WIDTH-1:0]),
.spc7_pcx_data_pa(spc7_pcx_data_pa[`PCX_WIDTH-1:0]),
.scan_in(si_0)); // Templated
endmodule // pcx_dp_array