// ========== Copyright Header Begin ==========================================
// OpenSPARC T2 Processor File: cpx_mal_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 ============================================
output [149:0] data_out_x_;
input [149:0] src_cpx_data_a;
input tcu_pce_ov; // scan signals
// buffer the high fanout nets
assign pce_ov = tcu_pce_ov_out;
assign siclk_in = ccx_aclk_out;
assign soclk_in = ccx_bclk_out;
assign se = tcu_scan_en_out ;
assign src_data_a[149:0] = src_cpx_data_a[149:0];
//cl_dp1_l1hdr_24x gkt_hdr (
//.siclk_out(siclk_out_unused),
//.soclk_out(soclk_out_unused),
//l1clkhdr_dp_macro gkt_hdra
// .siclk_out (sia_unused),
// .soclk_out (soa_unused),
//l1clkhdr_dp_macro gkt_hdrb
// .siclk_out (sib_unused),
// .soclk_out (sob_unused),
cpx_mal_dp_buff_macro__dbuff_8x__stack_none__vertical_1__width_4 buf_hfn (
.din ({ccx_aclk,ccx_bclk, tcu_pce_ov, tcu_scan_en}),
.dout ({ccx_aclk_out,ccx_bclk_out,tcu_pce_ov_out,tcu_scan_en_out})
cpx_mal_dp_ccx_l1clkhdr_ctl_macro__dl1hdr_24x gkt_hdra
cpx_mal_dp_ccx_l1clkhdr_ctl_macro__dl1hdr_24x gkt_hdrb
// ccx_new_macro_a AUTO_TEMPLATE
//.scan_in(AUTO_TEMPLATE_scanin),
//.scan_out(AUTO_TEMPLATE_scanout),
//.pce0 (arb_q0_holdbar_a),
//.grant_a (arb_grant_a),
//.data_a (src_data_a[@"(+ 9 (* 10 @))":@"(* 10 @)"]),
//.data_x_l (data_out_x_[@"(+ 9 (* 10 @))":@"(* 10 @)"]),
cpx_mal_dp_ccx_new_macro__type_a i0 (
.data_x_l (data_out_x_[9:0]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clka), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[9:0]),
cpx_mal_dp_ccx_new_macro__type_a i1 (
.data_x_l (data_out_x_[19:10]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clka), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[19:10]),
cpx_mal_dp_ccx_new_macro__type_a i2 (
.data_x_l (data_out_x_[29:20]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clka), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[29:20]),
cpx_mal_dp_ccx_new_macro__type_a i3 (
.data_x_l (data_out_x_[39:30]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clka), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[39:30]),
cpx_mal_dp_ccx_new_macro__type_a i4 (
.data_x_l (data_out_x_[49:40]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clka), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[49:40]),
cpx_mal_dp_ccx_new_macro__type_a i5 (
.data_x_l (data_out_x_[59:50]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clka), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[59:50]),
cpx_mal_dp_ccx_new_macro__type_a i6 (
.data_x_l (data_out_x_[69:60]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clka), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[69:60]),
cpx_mal_dp_ccx_new_macro__type_a i7 (
.data_x_l (data_out_x_[79:70]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clka), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[79:70]),
cpx_mal_dp_ccx_new_macro__type_a i8 (
.data_x_l (data_out_x_[89:80]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clkb), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[89:80]),
cpx_mal_dp_ccx_new_macro__type_a i9 (
.data_x_l (data_out_x_[99:90]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clkb), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[99:90]),
cpx_mal_dp_ccx_new_macro__type_a i10 (
.data_x_l (data_out_x_[109:100]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clkb), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[109:100]),
cpx_mal_dp_ccx_new_macro__type_a i11 (
.data_x_l (data_out_x_[119:110]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clkb), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[119:110]),
cpx_mal_dp_ccx_new_macro__type_a i12 (
.data_x_l (data_out_x_[129:120]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clkb), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[129:120]),
cpx_mal_dp_ccx_new_macro__type_a i13 (
.data_x_l (data_out_x_[139:130]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clkb), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[139:130]),
cpx_mal_dp_ccx_new_macro__type_a i14 (
.data_x_l (data_out_x_[149:140]), // Templated
.l2clk (l2clk), // Templated
.l1clk (l1clkb), // Templated
.pce0 (arb_q0_holdbar_a), // Templated
.pce1 (arb_qsel1_a), // Templated
.pce_ov (pce_ov), // Templated
.stop (stop), // Templated
.siclk_in (siclk_in), // Templated
.soclk_in (soclk_in), // Templated
.grant_a (arb_grant_a), // Templated
.qsel0 (arb_qsel0_a), // Templated
.shift (arb_shift_a), // Templated
.data_a (src_data_a[149:140]),
assign i14_scanin = scan_in ;
assign i13_scanin = i14_scanout ;
assign i12_scanin = i13_scanout ;
assign i11_scanin = i12_scanout ;
assign i10_scanin = i11_scanout ;
assign i9_scanin = i10_scanout ;
assign i8_scanin = i9_scanout ;
assign i7_scanin = i8_scanout ;
assign i6_scanin = i7_scanout ;
assign i5_scanin = i6_scanout ;
assign i4_scanin = i5_scanout ;
assign i3_scanin = i4_scanout ;
assign i2_scanin = i3_scanout ;
assign i1_scanin = i2_scanout ;
assign i0_scanin = i1_scanout ;
assign scan_out = i0_scanout ;
//assign pce_ov = tcu_pce_ov;
//assign stop = tcu_clk_stop;
//assign siclk = tcu_aclk;
//assign soclk = tcu_bclk;
//// buffer the grant signal
//buff_macro i_buf_grant (width=1, stack=50c)
//msff_macro i_dff_grant_x (width=12, stack=50c)
// .scan_in(i_dff_grant_x_scanin),
// .scan_out(i_dff_grant_x_scanout),
// .dout (grant_x[11:0]),
//msff_macro i_dff_q1_2 (width=50, stack=50c)
// .scan_in(i_dff_q1_2_scanin),
// .scan_out(i_dff_q1_2_scanout),
// .din (src_cpx_data_a[149:100]),
// .dout (q1_dataout[149:100]),
//msff_macro i_dff_q1_1 (width=50, stack=50c)
// .scan_in(i_dff_q1_1_scanin),
// .scan_out(i_dff_q1_1_scanout),
// .din (src_cpx_data_a[99:50]),
// .dout (q1_dataout[99:50]),
//msff_macro i_dff_q1_0 (width=50, stack=50c)
// .scan_in(i_dff_q1_0_scanin),
// .scan_out(i_dff_q1_0_scanout),
// .din (src_cpx_data_a[49:0]),
// .dout (q1_dataout[49:0]),
////assign q0_datain_ca[149:0] =
//// (arb_cpxdp_qsel0_ca ? src_cpx_data_ca[149:0] : 150'd0) |
//// (arb_cpxdp_shift_cx ? q1_dataout[149:0] : 150'd0) ;
//mux_macro i_mux_q0_2 (width=50, mux=aonpe, ports=2, stack=50c)
// .din0 (src_cpx_data_a[149:100]),
// .din1 (q1_dataout[149:100]),
// .dout (q0_datain_a[149:100]),
//mux_macro i_mux_q0_1 (width=50, mux=aonpe, ports=2, stack=50c)
// .din0 (src_cpx_data_a[99:50]),
// .din1 (q1_dataout[99:50]),
// .dout (q0_datain_a[99:50]),
//mux_macro i_mux_q0_0 (width=50, mux=aonpe, ports=2, stack=50c)
// .din0 (src_cpx_data_a[49:0]),
// .din1 (q1_dataout[49:0]),
// .dout (q0_datain_a[49:0]),
//msff_macro i_dff_q0_2 (width=50, stack=50c)
// .scan_in(i_dff_q0_2_scanin),
// .scan_out(i_dff_q0_2_scanout),
// .din (q0_datain_a[149:100]),
// .dout (q0_dataout[149:100]),
// .en (arb_q0_holdbar_a),
//msff_macro i_dff_q0_1 (width=50, stack=50c)
// .scan_in(i_dff_q0_1_scanin),
// .scan_out(i_dff_q0_1_scanout),
// .din (q0_datain_a[99:50]),
// .dout (q0_dataout[99:50]),
// .en (arb_q0_holdbar_a),
//msff_macro i_dff_q0_0 (width=50, stack=50c)
// .scan_in(i_dff_q0_0_scanin),
// .scan_out(i_dff_q0_0_scanout),
// .din (q0_datain_a[49:0]),
// .dout (q0_dataout[49:0]),
// .en (arb_q0_holdbar_a),
//nand_macro i_nand_data_g_2 (width=50, ports=2, stack=50c)
// .din0 (q0_dataout[149:100]),
// .din1 ({{10{grant_x[11]}},{15{grant_x[10]}},{15{grant_x[9]}},{10{grant_x[8]}}}),
// .dout (data_out_x_[149:100]),
//nand_macro i_nand_data_g_1 (width=50, ports=2, stack=50c)
// .din0 (q0_dataout[99:50]),
// .din1 ({{10{grant_x[7]}},{15{grant_x[6]}},{15{grant_x[5]}},{10{grant_x[4]}}}),
// .dout (data_out_x_[99:50]),
//nand_macro i_nand_data_g_0 (width=50, ports=2, stack=50c)
// .din0 (q0_dataout[49:0]),
// .din1 ({{10{grant_x[3]}},{15{grant_x[2]}},{15{grant_x[1]}},{10{grant_x[0]}}}),
// .dout (data_out_x_[49:0]),
//assign i_dff_grant_x_scanin = scan_in ;
//assign i_dff_q1_2_scanin = i_dff_grant_x_scanout ;
//assign i_dff_q1_1_scanin = i_dff_q1_2_scanout ;
//assign i_dff_q1_0_scanin = i_dff_q1_1_scanout ;
//assign i_dff_q0_2_scanin = i_dff_q1_0_scanout ;
//assign i_dff_q0_1_scanin = i_dff_q0_2_scanout ;
//assign i_dff_q0_0_scanin = i_dff_q0_1_scanout ;
//assign scan_out = i_dff_q0_0_scanout ;
module cpx_mal_dp_buff_macro__dbuff_8x__stack_none__vertical_1__width_4 (
// any PARAMS parms go into naming of macro
module cpx_mal_dp_ccx_l1clkhdr_ctl_macro__dl1hdr_24x (
module cpx_mal_dp_ccx_new_macro__type_a (
.data_x_l(data_x_l[9:0]),
module cpx_mal_dp(data_out_x_, arb_grant_a, arb_qsel0_a, arb_qsel1_a,
arb_q0_holdbar_a, arb_shift_a, src_cpx_data_a, l2clk, scan_in,
tcu_pce_ov, ccx_aclk, ccx_bclk, tcu_scan_en, scan_out, ccx_aclk_out,
ccx_bclk_out, tcu_pce_ov_out, tcu_scan_en_out);
output [149:0] data_out_x_;
input [149:0] src_cpx_data_a;
assign pce_ov = tcu_pce_ov_out;
assign siclk_in = ccx_aclk_out;
assign soclk_in = ccx_bclk_out;
assign se = tcu_scan_en_out;
assign src_data_a[149:0] = src_cpx_data_a[149:0];
assign i14_scanin = scan_in;
assign i13_scanin = i14_scanout;
assign i12_scanin = i13_scanout;
assign i11_scanin = i12_scanout;
assign i10_scanin = i11_scanout;
assign i9_scanin = i10_scanout;
assign i8_scanin = i9_scanout;
assign i7_scanin = i8_scanout;
assign i6_scanin = i7_scanout;
assign i5_scanin = i6_scanout;
assign i4_scanin = i5_scanout;
assign i3_scanin = i4_scanout;
assign i2_scanin = i3_scanout;
assign i1_scanin = i2_scanout;
assign i0_scanin = i1_scanout;
assign scan_out = i0_scanout;
buff_macro__dbuff_8x__stack_none__vertical_1__width_4 buf_hfn(
.din ({ccx_aclk, ccx_bclk,
tcu_pce_ov, tcu_scan_en}),
.dout ({ccx_aclk_out, ccx_bclk_out,
tcu_pce_ov_out, tcu_scan_en_out}));
ccx_l1clkhdr_ctl_macro__dl1hdr_24x gkt_hdra(
ccx_l1clkhdr_ctl_macro__dl1hdr_24x gkt_hdrb(
ccx_new_macro__type_a i0(
.data_x_l (data_out_x_[9:0]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[9:0]),
ccx_new_macro__type_a i1(
.data_x_l (data_out_x_[19:10]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[19:10]),
ccx_new_macro__type_a i2(
.data_x_l (data_out_x_[29:20]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[29:20]),
ccx_new_macro__type_a i3(
.data_x_l (data_out_x_[39:30]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[39:30]),
ccx_new_macro__type_a i4(
.data_x_l (data_out_x_[49:40]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[49:40]),
ccx_new_macro__type_a i5(
.data_x_l (data_out_x_[59:50]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[59:50]),
ccx_new_macro__type_a i6(
.data_x_l (data_out_x_[69:60]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[69:60]),
ccx_new_macro__type_a i7(
.data_x_l (data_out_x_[79:70]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[79:70]),
ccx_new_macro__type_a i8(
.data_x_l (data_out_x_[89:80]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[89:80]),
ccx_new_macro__type_a i9(
.data_x_l (data_out_x_[99:90]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[99:90]),
ccx_new_macro__type_a i10(
.data_x_l (data_out_x_[109:100]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[109:100]),
ccx_new_macro__type_a i11(
.data_x_l (data_out_x_[119:110]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[119:110]),
ccx_new_macro__type_a i12(
.data_x_l (data_out_x_[129:120]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[129:120]),
ccx_new_macro__type_a i13(
.data_x_l (data_out_x_[139:130]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[139:130]),
ccx_new_macro__type_a i14(
.data_x_l (data_out_x_[149:140]),
.pce0 (arb_q0_holdbar_a),
.data_a (src_data_a[149:140]),
module buff_macro__dbuff_8x__stack_none__vertical_1__width_4(din, dout);